UNIX安全構(gòu)架經(jīng)驗
下面是一些個人的經(jīng)驗的總結(jié),我相信對于是否受到入侵的UNIX或者UNIX-clone(freebsd,openbsd,netbsd, linux,etc)都是有用的:
首先大家可以通過下面的系統(tǒng)命令和配置文件來跟蹤入侵者的來源路徑:
1.who------(查看誰登陸到系統(tǒng)中)
2.w--------(查看誰登陸到系統(tǒng)中,且在做什么)
3.last-----(顯示系統(tǒng)曾經(jīng)被登陸的用戶和TTYS)
4.lastcomm-(顯示系統(tǒng)過去被運行的命令)
5.netstat--(可以查看現(xiàn)在的網(wǎng)絡(luò)狀態(tài),如telnet到你機器上來的用戶的IP地址,還有一些其它的網(wǎng)絡(luò)狀態(tài)。)
6.查看router的信息。
7./var/log/messages查看外部用戶的登陸狀況
8.用finger 查看所有的登陸用戶。
9.查看用戶目錄下/home/username下的登陸歷史文件(.history.rchist,etc).后注:'who','w','last',和'lastcomm'這些命令依靠的是/var/log/pacct, /var/log/wtmp,/etc/utmp來報告信息給你。許多精明的系統(tǒng)管理員對于入侵者都會屏蔽這些日志信息(/var/log/*,/var/log/wtmp,etc)建議大家安裝tcp_wrapper非法登陸到你機器的所有連接)
接下來系統(tǒng)管理員要關(guān)閉所有可能的后門,一定要防止入侵者從外部訪問內(nèi)部網(wǎng)絡(luò)的可能。(對FREEBSD感興趣的文章,可以看一下我在綠色兵團中安全文獻中的FreeBSD網(wǎng)站的安全構(gòu)架(1) ).如果入侵者發(fā)現(xiàn)系統(tǒng)管理員發(fā)現(xiàn)他已經(jīng)進入系統(tǒng),他可能會通過rm -rf /*試著隱蔽自己的痕跡.
第三,我們要保護下面的系統(tǒng)命令和系統(tǒng)配置文件以防止入侵者替換獲得修改系統(tǒng)的權(quán)利。
1. /bin/login
2. /usr/etc/in.*文件(例如:in.telnetd)
3.inetd超級守護進程(監(jiān)聽端口,等待請求,派生相應(yīng)服務(wù)器進程)喚醒的服務(wù).(下列的服務(wù)器進程通常由inetd啟動:
fingerd(79),ftpd(21),
rlogind(klogin,eklogin,etc),rshd,talkd,telnetd(23),tftpd. inetd還可以啟動其它內(nèi)部服務(wù),/etc/ inetd.conf中定義的服務(wù).
4.不允非常ROOT用戶使用netstat,ps,ifconfig,su
第四,系統(tǒng)管理員要定期去觀察系統(tǒng)的變化(如:文件,系統(tǒng)時間,等)
1. #ls -lac去查看文件真正的修改時間。
2. #cmp file1 file2來比較文件大小的變化。
第五,我們一定要防止非法用戶使用suid(set-user-id)程序來得到ROOT 的權(quán)限。
1.首先我們要發(fā)現(xiàn)系統(tǒng)中所有的SUID程序。
#find / -type f -perm -4000 -ls
2.然后我們要分析整個系統(tǒng),以保證系統(tǒng)沒有后門。
第六,系統(tǒng)管理員要定時的檢查用戶的.rhosts,.forward文件,
1.#find / -name .rhosts -ls -o -name .forward -ls
來檢查.rhosts文件是否包含'++',有則用戶可以遠程修改這個文件而不需要任何口令。
2.#find / -ctime -2 -ctime +1 -ls
來查看不到兩天以內(nèi)修改的一些文件,從而判斷是否有非法用戶闖入系統(tǒng)。
第七,要確認你的系統(tǒng)當中有最新的sendmail守護程序,因為老的sendmail守護程序允許其它UNIX機器遠程運行一些非法的命令。
第八,系統(tǒng)管理員應(yīng)當要從你機器,操作系統(tǒng)生產(chǎn)商那里獲得安全鋪丁程序,如果是自由軟件的話(如Linux平臺,建議大家可以到linux.box.sk來獲得最好的安全程序和安全資料。)
第九,下面有一些檢查方法來監(jiān)測機器是否容易受到攻擊。
1.#rpcinfo -p來檢查你的機器是否運行了一些不必要的進程。
2.#vi /etc/hosts.equiv文件來檢查你不值得信任的主機,去掉。
3.如果沒有屏蔽/etc/inetd.conf中的tftpd,請在你的/etc/inetd.conf加入tftp dgram udp wait nobody /usr/etc/in.tftpd
in.tftpd -s /tftpboot
4.建議你備份/etc/rc.conf文件,寫一個shell script定期比較 cmp rc.conf backup.rc.conf
5.檢查你的 inetd.conf和/etc/services文件,確保沒有非法用戶在里面添加一些服務(wù)。
6.把你的系統(tǒng)的/var/log/*下面的日志文件備份到一個安全的地方,以防止入侵者#rm /var/log/*
7.一定要確保匿名FTP服務(wù)器的配置正確,我的機器用的是proftpd,在proftpd.conf一定要配置正確。
8.備份好/etc/passwd,然后改變root口令。一定要確保此文件不能夠入侵者訪問,以防止它猜測。
9.如果你還不能夠防止入侵者的非法闖入,你可以安裝ident后臺守護進程和TCPD后臺守護進程來發(fā)現(xiàn)入侵者使用的帳號!
10.確保你的控制臺終端是安全的,以防止非法用戶能夠遠程登陸你的網(wǎng)絡(luò)上來。
11.檢查hosts.equiv,.rhosts,hosts,lpd都有注釋標識#,如果一個入侵者用它的主機名代替了#,那么就意味著他不需要任何口令就能夠訪問你的機器.
評論