Solaris安全FAQ

网络整理 - 06-30

  ) 参考资料The Solaris Security FAQ by Peter Baer Galvin
  
  ) 怎样将Solaris配置得更加强壮?
  
  ) 哪些文件的许可权限需要改变?
  
  有个叫fixmodes的软件(ftp://ftpfwiuvanl/pub/solaris/fixmodestargz)可以在
  Solaris 和上运行并改变系统文件及目录的存取权限这样会使非ROOT的用户更难
  于更改系统文件或者取得ROOT权限
  
  ) 如何对ROOT的环境加以配置?
  
  将umask设为或者
  
  查看你的环境中路径设置情况不要有/
  
  ) 我该更改哪些启动文件?
  
  通常情况下你要检查所有在/etc/rcd和/etc/rcd以S开头的文件所有并非必要的设备
  或者服务都可以重命名(不要再以S开头)然后你可以重新启动从/var/adm/messages中来
  观察自启动的情况并且从ps elf的输出中加以检查
  
  ) 如何将ROOT的远程登陆取消?
  
  在/etc/default/login里加上 CONSOLE行在/etc/ftpusers里加上root
  
  ) 如何取消rlogin/rsh服务?
  
  移去/etc/hostsequiv和/rhosts以及各home目录下的rhosts并且在/etc/nf中
  把r系列服务都杀掉然后找出inetd的进程号重启它
  
  ) 哪些帐号是不必须的?
  
  移去或者锁定那些不是必须的帐号比如sys\uucp\nuucp\listen等等简单的办法是在
  /etc/shadow的password域中放上NP字符
  
  ) 怎样保护我的设备?
  
  在文件/etc/logindevperm中包含了对系统设备的许可权限配置信息应该检视里面的各项
  设定并且手动赋予你所想要的许可权限
  
  对于抽取式的BSM设备需要设定只有single user允许进入
  
  ) 我应该将/etc的存取权限改为什么才安全?
  
  用chmod R gw /etc命令来移去组用户对/etc的写权限
  
  ) Solaris机器充当路由器?
  
  默认情况下如果Solaris机器有超过一块的网卡的话它将会在不同网卡间转发数据包这一行为可
  以在/etc/initd/inetinit中得到控制要在Solaris 或者更低版本机器下关闭它可以将
  ndd set /dev/ip ip_forwarding 添加于/etc/initd/inetinit的未尾在Solaris
  中只要touch /etc/notrouter
  
  ) 如何取消automounter?
  
  Automounter是由/etc/auto_*这些配置文件控制的要取消它只要简单地移去这些文件
  并且/或者将/etc/rcd/Sautofs改名
  
  ) 如何取消NFS服务?
  
  NFS的共享输出是由/etc/dfs/dfstab文件管理的可以删除它要将NFS服务器的守护进程关闭
  则可以重命名/etc/rcd/Snfsserver要防止一台机器成为NFS客户机可以重命名文件
  /etc/rcd/Snfsclient——当重命名这些自启动文件时要注意不要将文件的首字母设为
  S
  
  ) 对cron任务我该注意些什么?
  
  你得查看所有的cron任务——在/var/spool/cron/crontabs文件中你可以找到它们还必须在
  /etc/default/cron里设置了CRONLOG=yes 来记录corn的动作
  
  ) 使用动态路由有什么风险吗?
  
  使用动态路由守护进程的机器用inrouted及inrdisc来维护路由这可能会大大增加路由协议的复杂程
  度而且路由更新会消耗相当大比便的可用带宽因此在可能的情况下还是建议你使用静态路由
  
  ) 何时及如何运用静态ARP?
  
  ARP是联系IP地址和以太网的协议(地址转换协议) 默认地Solaris机器动态地确定ARP地址arp命令
  可以用来静态地设定ARP表并且刷新它如果你的系统里仅有少量无需更改的机器那么这是一个很好的工具
  为了防止ARP欺骗最好将受托机器的硬件地址作为永久条目保存在ARP的高速缓存中
  
  ) 运行rpcbind是不安全的吗?
  
  rpcbind是允许rpc请求和rpc服务之间相互连接的程序但标准的rpc是不安全的:(它使用的是AUTH_UNIX
  验证 也就是说它依靠的是远程系统的IP地址和远程用户的UID来验证一般的系统可能需要某些rpc存在但
  对各种服务器如Web servers ftp servers mail servers etc)最好将rpc服务关闭你也可以通过
  一些安全工具来确定rpc服务是否会影响到你系统的安全性可以通过将/etc/rcd/SRPC改名来禁止rpc
  
  ) /etc/utmp的权限应该如何设定?
  
  # chmod /etc/utmp
  
  ) 哪些程序可以去掉SUID位?
  
  许多setgid和setuid程序都只是由root运行的或者是由某些特定用户或组运行那就可以将其setuid位
  移去下面是一个Solaris 上setuid程序的列表你应该根据自己的情况进行增减
  
  # find / perm print
  /usr/lib/lp/bin/netpr
  /usr/lib/fs/ufs/quota
  /usr/lib/fs/ufs/ufsdump
  /usr/lib/fs/ufs/ufsrestore
  /usr/lib/fs/vxfs/vxdump
  /usr/lib/fs/vxfs/vxquota
  /usr/lib/fs/vxfs/vxrestore
  /usr/lib/exrecover
  /usr/lib/pt_chmod
  /usr/lib/sendmail
  /usr/lib/utmp_update
  /usr/lib/acct/accton
  /usr/lib/uucp/remoteunknown
  /usr/lib/uucp/uucico
  /usr/lib/uucp/uusched
  /usr/lib/uucp/uuxqt
  /usr/lib/sendmailorig
  /usr/openwin/lib/mkcookie
  /usr/openwin/bin/xlock
  /usr/openwin/bin/re
  /usr/openwin/bin/kcms_configure
  /usr/openwin/bin/kcms_calibrate
  /usr/openwin/bin/syssuspend
  /usr/dt/bin/dtaction
  /usr/dt/bin/dtappgather
  /usr/dt/bin/sdtcm_convert
  /usr/dt/bin/dtprintinfo
  /usr/dt/bin/dtsession
  /usr/bin/at
  /usr/bin/atq
  /usr/bin/atrm
  /usr/bin/crontab
  /usr/bin/eject
  /usr/bin/fdformat
  /usr/bin/login
  /usr/bin/newgrp
  /usr/bin/passwd
  /usr/bin/ps
  /usr/bin/rcp
  /usr/bin/rdist
  /usr/bin/rlogin
  /usr/bin/rsh
  /usr/bin/su
  /usr/bin/tip
  /usr/bin/uptime
  /usr/bin/w
  /usr/bin/yppasswd
  /usr/bin/admintool
  /usr/bin/ct
  /usr/bin/cu
  /usr/bin/uucp
  /usr/bin/uuglist
  /usr/bin/uuname
  /usr/bin/uustat
  /usr/bin/uux
  /usr/bin/chkey
  /usr/bin/nispasswd
  /usr/bin/cancel
  /usr/bin/lp
  /usr/bin/lpset
  /usr/bin/lpstat
  /usr/bin/volcheck
  /usr/bin/volrmmount
  /usr/bin/pppconn
  /usr/bin/pppdisc
  /usr/bin/ppptool
  /usr/sbin/allocate
  /usr/sbin/mkdevalloc
  /usr/sbin/mkdevmaps
  /usr/sbin/ping
  /usr/sbin/sacadm
  /usr/sbin/whodo
  /usr/sbin/deallocate
  /usr/sbin/list_devices
  /usr/sbin/mconfig
  /usr/sbin/lpmove
  /usr/sbin/pmconfig
  /usr/sbin/static/rcp
  /usr/sbin/vxprint
  /usr/sbin/vxmkcdev
  /usr/ucb/ps
  /usr/vmsys/bin/chkperm
  /etc/lp/alerts/printer
  
  而且还应该建立一个setuid/setgid程序的列表日后可以对比是否有新的setuid程序出现这可能是
  入侵者光临过的征兆
  
  ) 哪些系统工具我可以去掉它?
  
  所有的网络工具你都应该检查并且确定它在你的系统环境里是否是必需的如果答案为否的话就
  干掉它下面这些工具有些可以在开始文件中找到它有些则上在/etc/nf中被启动的注
  释掉那些不必要的服务并且kill HUP inetd守护进程——类似的东西有
  
  tftp systat rexd ypupdated netstat
  rstatd rusersd sprayd walld exec
  comsat rquotad name uucp
  
  最好把常规的nf替换掉——改成只开telnet和ftp服务——如果你真的需要它们的话(建议再
  用防火墙建立阻塞)
  
  ) 我应该运行infingerd吗?
  
  infingerd在过去有一些安全问题如果你想提供finger工具用nobody来运行它
  
  ) 如何让syslog有更大作用?
  
  默认情况下syslog仅提供最精简的记录你可以通过编辑/etc/nf文件来让syslog记
  录更多的信息然后你需要重启syslog以使它读取配置文件
  
  你还可以通过
  
  touch /var/adm/loginlog
  chmod /var/adm/loginlog
  chgrp sys /var/adm/loginlog
  
  来建立login的记录
  
  ) 对EEPROM如何做才能更安全?
  
  将EEPROM设于安全的模式通过设定对ok setenv securitymode=command的密码保护来实现
  当然这并不能真正地防止入侵如果某人可以物理接触某控制台的话它就能打开机器并替换掉EEPROM
  更改hostid