1) 参考资料:The Solaris Security FAQ by Peter Baer Galvin
2) 怎样将Solaris配置得更加强壮?
2.1) 哪些文件的许可权限需要改变?
有个叫fix-modes的软件(ftp://ftp.fwi.uva.nl/pub/solaris/fix-modes.tar.gz)可以在
Solaris 2.4和2.5上运行并改变系统文件及目录的存取权限,这样会使非ROOT的用户更难
于更改系统文件或者取得ROOT权限。
2.2) 如何对ROOT的环境加以配置?
将umask设为077或者027.
查看你的环境中路径设置情况,不要有./
2.3) 我该更改哪些启动文件?
通常情况下,你要检查所有在/etc/rc2.d和/etc/rc3.d以S开头的文件,所有并非必要的设备
或者服务都可以重命名(不要再以S开头),然后你可以重新启动,从/var/adm/messages中来
观察自启动的情况,并且从ps -elf的输出中加以检查。
2.4) 如何将ROOT的远程登陆取消?
在/etc/default/login里加上 "CONSOLE"行,在/etc/ftpusers里加上root。
2.5) 如何取消rlogin/rsh服务?
移去/etc/hosts.equiv和/.rhosts以及各home目录下的.rhosts,并且在/etc/inetd.conf中
把r系列服务都杀掉,然后找出inetd的进程号,重启它。
2.6) 哪些帐号是不必须的?
移去或者锁定那些不是必须的帐号,比如sys\uucp\nuucp\listen等等,简单的办法是在
/etc/shadow的password域中放上NP字符。
2.7) 怎样保护我的设备?
在文件/etc/logindevperm中包含了对系统设备的许可权限配置信息,应该检视里面的各项
设定并且手动赋予你所想要的许可权限。
对于抽取式的BSM设备需要设定只有single user允许进入。
2.8) 我应该将/etc的存取权限改为什么才安全?
用chmod -R g-w /etc命令来移去组用户对/etc的写权限。
2.9) Solaris机器充当路由器?
默认情况下,如果Solaris机器有超过一块的网卡的话,它将会在不同网卡间转发数据包,这一行为可
以在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或者更低版本机器下关闭它,可以将
ndd -set /dev/ip ip_forwarding 0添加于/etc/init.d/inetinit的未尾。在Solaris 2.5
中,只要touch /etc/notrouter.
2.10) 如何取消automounter?
Automounter是由/etc/auto_*这些配置文件控制的,要取消它,只要简单地移去这些文件,
并且/或者将/etc/rc2.d/S74autofs改名。
2.11) 如何取消NFS服务?
NFS的共享输出是由/etc/dfs/dfstab文件管理的.可以删除它。要将NFS服务器的守护进程关闭
则可以重命名/etc/rc3.d/S15nfs.server。要防止一台机器成为NFS客户机,可以重命名文件
/etc/rc2.d/S73nfs.client――当重命名这些自启动文件时,要注意不要将文件的首字母设为
“S”。
2.12) 对cron任务我该注意些什么?
你得查看所有的cron任务――在/var/spool/cron/crontabs文件中你可以找到它们。还必须在
/etc/default/cron里设置了"CRONLOG=yes" 来记录corn的动作。
2.13) 使用动态路由有什么风险吗?
使用动态路由守护进程的机器用in.routed及in.rdisc来维护路由,这可能会大大增加路由协议的复杂程
度,而且路由更新会消耗相当大比便的可用带宽,因此在可能的情况下,还是建议你使用静态路由。
2.14) 何时及如何运用静态ARP?
ARP是联系IP地址和以太网的协议(地址转换协议) 。默认地,Solaris机器动态地确定ARP地址,arp命令
可以用来静态地设定ARP表并且刷新它,如果你的系统里仅有少量无需更改的机器,那么这是一个很好的工具。
为了防止ARP欺骗,最好将受托机器的硬件地址作为永久条目保存在ARP的高速缓存中。
2.15) 运行rpcbind是不安全的吗?
rpcbind是允许rpc请求和rpc服务之间相互连接的程序,但标准的rpc是不安全的:(,它使用的是"AUTH_UNIX"
验证, 也就是说它依靠的是远程系统的IP地址和远程用户的UID来验证。一般的系统可能需要某些rpc存在,但
对各种服务器如Web servers, ftp servers, mail servers, etc)最好将rpc服务关闭,你也可以通过
一些安全工具来确定rpc服务是否会影响到你系统的安全性。可以通过将/etc/rc2.d/S71RPC改名来禁止rpc。
2.16) /etc/utmp的权限应该如何设定?
# chmod 644 /etc/utmp
2.17) 哪些程序可以去掉SUID位?
许多setgid和setuid程序都只是由root运行的,或者是由某些特定用户或组运行,那就可以将其setuid位
移去,下面是一个Solaris 2.6上setuid程序的列表,你应该根据自己的情况进行增减。
# find / -perm -4000 -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/remote.unknown
/usr/lib/uucp/uucico
/usr/lib/uucp/uusched
/usr/lib/uucp/uuxqt
/usr/lib/sendmail.orig
/usr/openwin/lib/mkcookie
/usr/openwin/bin/xlock
/usr/openwin/bin/ff.core
/usr/openwin/bin/kcms_configure
/usr/openwin/bin/kcms_calibrate
/usr/openwin/bin/sys-suspend
/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/m64config
/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程序出现--这可能是
入侵者光临过的征兆。
2.18) 哪些系统工具我可以去掉它?
所有的网络工具你都应该检查并且确定它在你的系统环境里是否是必需的,如果答案为否的话,就
干掉它,下面这些工具有些可以在开始文件中找到它,有些则上在/etc/inetd.conf中被启动的,注
释掉那些不必要的服务,并且kill -HUP inetd守护进程――类似的东西有:
tftp systat rexd ypupdated netstat
rstatd rusersd sprayd walld exec
comsat rquotad name uucp
最好把常规的inetd.conf替换掉――改成只开telnet和ftp服务――如果你真的需要它们的话(建议再
用防火墙建立阻塞)。
2.19) 我应该运行in.fingerd吗?
in.fingerd在过去有一些安全问题,如果你想提供finger工具,用nobody来运行它。
2.20) 如何让syslog有更大作用?
默认情况下,syslog仅提供最精简的记录,你可以通过编辑/etc/syslog.conf文件来让syslog记
录更多的信息,然后你需要重启syslog以使它读取配置文件。
你还可以通过
touch /var/adm/loginlog
chmod 600 /var/adm/loginlog
chgrp sys /var/adm/loginlog
来建立login的记录。
2.21) 对EEPROM如何做才能更安全?
将EEPROM设于安全的模式:通过设定对"ok setenv security-mode=command"的密码保护来实现。
当然这并不能真正地防止入侵,如果某人可以物理接触某控制台的话,它就能打开机器并替换掉EEPROM,
更改hostid........