1) 參考資料:The Solaris Security FAQ by Peter Baer Galvin
2) 怎樣將Solaris配置得更加強壯?
2.1) 哪些文件的許可權限需要改變?
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服務?
把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/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/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) 哪些系統工具我可以去掉它?
所有的網絡工具你都應該檢查並且確定它在你的系統環境裡是否是必需的,如果答案為否的話,就
釋掉那些不必要的服務,並且kill -HUP inetd守護進程——類似的東西有:
tftp systat rexd ypupdated netstat
rstatd rusersd sprayd walld exec
comsat rquotad name uucp
用防火牆建立阻塞)。
2.19) 我應該運行in.fingerd嗎?
in.fingerd在過去有一些安全問題,如果你想提供finger工具,用nobody來運行它。
2.20) 如何讓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.