朱 煜
(山西省氣象信息中心,山西 太原 030006)
?
linux系統(tǒng)安全診斷
朱煜
(山西省氣象信息中心,山西 太原 030006)
實時業(yè)務(wù)對系統(tǒng)穩(wěn)定、網(wǎng)絡(luò)暢通有很高的要求。為了安全高效,實時業(yè)務(wù)系統(tǒng)也大多建立在linux平臺上,因此,linux的系統(tǒng)安全就顯得非常重要。本文就linux入侵檢測方法作一些簡要說明,并給出一些系統(tǒng)安全建議。
系統(tǒng)安全;Linux;入侵檢測
隨著信息技術(shù)的飛速發(fā)展,各行各業(yè)對信息系統(tǒng)的依賴程度越來越高,網(wǎng)絡(luò)應(yīng)用也越來越頻繁,這時信息安全、網(wǎng)絡(luò)安全就顯得越發(fā)重要。實時業(yè)務(wù)對系統(tǒng)穩(wěn)定、網(wǎng)絡(luò)暢通的要求尤其高。目前單位對網(wǎng)絡(luò)安全非常重視,為了安全高效,業(yè)務(wù)系統(tǒng)也大多建立在linux平臺上,但隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,病毒入侵已經(jīng)成為一種重大安全隱患,linux系統(tǒng)會不會被入侵?入侵后該如何善后?都值得探討。
前段時間,有一次單位業(yè)務(wù)網(wǎng)絡(luò)發(fā)生了不明原因的中斷,影響很大。為了及時恢復(fù)網(wǎng)絡(luò),不影響工作,對故障立即進行了診斷。先斷開其他所有網(wǎng)絡(luò)設(shè)備,只保留核心業(yè)務(wù)設(shè)備時網(wǎng)絡(luò)恢復(fù);再從網(wǎng)管平臺上進行仔細(xì)檢查,發(fā)現(xiàn)連接并行機的交換機端口流量過大,從業(yè)務(wù)判斷,該時段沒有數(shù)據(jù)傳輸,當(dāng)時懷疑并行機出現(xiàn)了問題,因此立即進行了檢查:
首先,查看/etc/passwd中有沒有可疑用戶。結(jié)果發(fā)現(xiàn):sbin和pvm2個用戶可以進行系統(tǒng)登錄,而這2個用戶都不是管理員建立的;更嚴(yán)重的是,sbin用戶有與root等同的權(quán)限!于是懷疑系統(tǒng)已經(jīng)被入侵。
其次,分別su到這2個用戶下執(zhí)行history命令發(fā)現(xiàn)無記錄,可能是被人清除掉了。在pvm的主目錄/usr/share/pvm3下,發(fā)現(xiàn)安裝了pvm軟件。經(jīng)過搜索得知PVM是用于網(wǎng)絡(luò)并行計算機上的軟件工具。它可以將異構(gòu)的計算機網(wǎng)絡(luò)連接起來,使用起來就像一個單一的但能力強大的并行計算機,本身可以由一些Unix或windows的計算機組成。為了排除這一現(xiàn)象,在root用戶下執(zhí)行命令:awk-F:′length($2)==0 {printf $1}′/etc/shadow,發(fā)現(xiàn)無記錄,說明沒有使用空密碼的用戶。
第三步,執(zhí)行ps-ef查看系統(tǒng)進程,未發(fā)現(xiàn)異常;執(zhí)行netstat-an查看網(wǎng)絡(luò)連接,正常。執(zhí)行cat/etc/crontab檢查自動運行的程序,正常。檢查/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*這些系統(tǒng)重要的配置文件及自啟動文件,均未發(fā)現(xiàn)異常。
第四步,用last命令查看近期誰登陸過系統(tǒng):last-n20發(fā)現(xiàn):
testpts/17172.18.*.*Tue Feb 28 15:49-19:26 (03:58)
這是個通過防火墻端口映射而登陸的外網(wǎng)用戶(172.18.72.36是防火墻地址),馬上檢查test用戶,在其目錄中發(fā)現(xiàn)如下可疑文件:
[test@node2 ~]$ ls ssh/ssh/
a mass nobash.txt pass.txt pscan2 pscan2.c scan sshd vuln.txt
[test@node2 ~]$ ls bengos/
a go.sh linuxteam.tgz pass.txt pscan2 pscan2.c scanB ss sshd start
查看pass.txt的內(nèi)容發(fā)現(xiàn)這是一個字典文件,里面列舉出常用的用戶名及口令(弱口令)如下:(只截取一部分,第一列用戶名,第二列為對應(yīng)的密碼)
test test123
root root123
admin admin123
guest guest123
master master
……
第五步,分析源文件pscan2.c,認(rèn)為這是一個黑客工具,它對ssh服務(wù)器進行掃描,用字典(pass.txt)中的用戶名密碼去嘗試登陸,如果系統(tǒng)密碼設(shè)置的太簡單和字典中的吻合,那么黑客就成功入侵了,而這臺并行機就因此不幸“中招”了。
第六步,問題的處理。
以下是處理步驟
1) vi /etc/passwd 將sbin:x:0:503::/home/sbin:/bin/bash這行刪除,并保存
2) 刪除黑客工具rm -rf bengos/ssh/ssh/
3) passwd test設(shè)置一個較為復(fù)雜的密碼
4) 關(guān)閉防火墻相應(yīng)端口的映射
雖然問題解決了,回頭總結(jié)很有必要。如果系統(tǒng)萬一被入侵,那么業(yè)務(wù)系統(tǒng)很可能會遭到嚴(yán)重破壞,后果將不堪設(shè)想。 所以有必要總結(jié)一下linux平臺下入侵檢測的方法以及給出一些安全建議。入侵檢測分手工檢測和工具檢測兩種。
2.1手工檢測
手工檢測是指不借助外部工具、依靠管理員的技巧和經(jīng)驗來對系統(tǒng)的安全性進行檢查,相比于工具檢測,它要求管理員對操作系統(tǒng)有較深的了解,雖然沒有工具檢測的細(xì)致深入,但卻是基礎(chǔ),必須要掌握,以下是檢測的大體步驟:
1) 檢查系統(tǒng)密碼文件:ls-l/etc/passwd查看文件修改的日期。awk-F: '$3==0 {print $1}' /etc/passwd顯示passwd文件中的特權(quán)用戶。正常情況下應(yīng)該只有一個特權(quán)用戶root。檢查系統(tǒng)里是否存在空口令帳戶:awk-F: 'length($2)==0 {printf $1}' /etc/shadow
2) 檢查進程:ps-aef 看看有沒有陌生進程在運行,尤其注意有沒有以./xxx開頭的進程。一旦確定為后門進程,可以使用kill-9 pid開殺死該進程,然后再運行ps-aef查看該進程是否被殺死;如果進程殺死以后又重新啟動,說明存在守護進程。用find / -name 程序名-print,查找到其存放目錄,然后判斷是否應(yīng)該刪除。
3) 檢查網(wǎng)絡(luò)連接和監(jiān)聽端口:netstat -an,列出本機所有的連接和監(jiān)聽的端口,查看有沒有非法連接。netstat -rn,查看本機的路由、網(wǎng)關(guān)設(shè)置是否正確。
4) 檢查系統(tǒng)中的core文件:某些入侵行為會在服務(wù)器相應(yīng)目錄下產(chǎn)生core文件。輸入find / -name core-exec ls-l {}
依據(jù)core所在的目錄、查詢core文件來判斷是否有入侵行為。
5) 檢查系統(tǒng)日志:ls-al /var/log 檢查日志文件的完整性和修改時間是否正常,黑客常通過清除日志的方法來掩蓋入侵痕跡。 History命令用于顯示歷史指令記錄內(nèi)容,查看它可以了解黑客執(zhí)行了哪些操作,不過這也是黑客重點清除的日志之一。
6) 檢測當(dāng)前及以前登陸的用戶:who命令查看當(dāng)前在線上的用戶情況。可以顯示用戶名、終端類型、登陸時間、以及來自哪里。w命令可以顯示登錄到系統(tǒng)的用戶當(dāng)前正在進行的工作,如果發(fā)現(xiàn)陌生的用戶或者陌生IP登陸系統(tǒng),用命令pkill -KILL -t tty號 將他踢出系統(tǒng),并立即修改此用戶密碼。last命令可以查看登錄到本機的所有用戶的歷史記錄,包括用戶名、終端號、IP、時間等內(nèi)容,也可以找到入侵者的蛛絲馬跡。
7) 檢查SUID和SGID文件,這樣的程序可以以root身份運行,需要注意。 命令find / ( -perm -004000-o-perm-002000)-type f-print可以將它們找出。
8) 檢查/etc/services需要密切地監(jiān)視這個文件中的任何添加項,因為這可能會將后門作為服務(wù)來運行。
9) 檢查/etc/crontab、/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*這些是系統(tǒng)重要的配置文件和登陸或開機會被執(zhí)行的文件,也是后門程序常被添加的地方。
10) 檢查/.rhosts,/etc/hosts.equiv和~/.rhosts,看看是否有不合適的新條目存在,如果開了Rlogin、Rsh、Rexec等服務(wù),就必須檢查。因為像Rsh和Rlogin這樣的服務(wù)是通過rhosts文件來認(rèn)證的,而且不記錄日志。黑客只要修改某用戶的rhosts文件,就可以用這個賬號無須口令Rlogin登錄系統(tǒng),且不留痕跡。
2.2工具檢測
由于手工入侵檢測比較麻煩,很難進行深層次的檢測,而且這些檢測大多基于系統(tǒng)命令,如果系統(tǒng)文件已經(jīng)被黑客替換的話,就不可能進行準(zhǔn)確的檢測,要正確有效地進行入侵檢測和審計需要借助于一些入侵分析工具。下面簡要介紹兩款檢測工具chkrootkit和Snort。
chkrootkit是一個Linux系統(tǒng)下的查找檢測rootkit后門的工具。所謂rootkit,它是一種具有自我隱蔽性的后門程序,類似于windows下的木馬程序,它往往被作為一種入侵工具,通過rootkit,黑客可以偷偷控制被入侵的電腦,因此危害巨大。Chkrootkit是基于字符界面的,在終端下直接鍵入chkrootkit即可對系統(tǒng)進行全面掃面,并滾動顯示出結(jié)果,如果顯示 not infected not tested 或 nothing found之類,則為正常。如果出現(xiàn)了INFECTED則說明你的服務(wù)器遭到入侵了,系統(tǒng)管理員需要根據(jù)掃描結(jié)果對系統(tǒng)進行修復(fù),必要時重新安裝。
Snort是一個輕便的網(wǎng)絡(luò)入侵檢測系統(tǒng),可以完成實時流量分析和對網(wǎng)絡(luò)上的IP包登錄進行測試等功能,能完成協(xié)議分析,內(nèi)容查找/匹配,能用來探測多種攻擊和嗅探(如緩沖區(qū)溢出、秘密斷口掃描、CGI攻擊、SMB嗅探、拇紋采集嘗試等)。它的掃描結(jié)果以web方式顯示給用戶,非常清晰直觀。它需要apache、adobe、mysql、php等軟件的支持,安裝及配置完成以后,可以通過http://IP/acidbase/查看Snort截獲的入侵日志。
Linux系統(tǒng)由于其安全高效及穩(wěn)定的特性,越來越受到企業(yè)用戶的青睞,近年來,針對linux系統(tǒng)的攻擊呈不斷上升的趨勢,如何保證其系統(tǒng)安全也成為一個普遍關(guān)注的話題,本文提出以下八條建議供參考:
1) 對重要文件進行備份,但不要備份在本機,否則也有可能被黑客修改。
2) 配置防火墻對網(wǎng)絡(luò)進行防御,開啟SElinux。
3) 卸載或關(guān)閉不必要的服務(wù)。
4) 安裝供應(yīng)商提供的所有補丁,對已安裝的軟件包進行完全升級。
5) 刪除不必要的用戶,為每個用戶設(shè)置一個既好記又足夠復(fù)雜的密碼,并嚴(yán)格限定用戶權(quán)限。
6) 對配置文件進行必要的手工修改,比如更改網(wǎng)絡(luò)服務(wù)的端口號等。
7) 定期審核系統(tǒng)日志,查看服務(wù)以及進程的運行情況。
8) 重要業(yè)務(wù)系統(tǒng)要與因特網(wǎng)物理隔離,必須要聯(lián)網(wǎng)的也應(yīng)置于DMZ區(qū),并在邊界防火墻上作好策略及審計。
相信做好以上幾點,基于linux業(yè)務(wù)系統(tǒng)必能安全穩(wěn)定的工作,更好地提供服務(wù)。
Safety Diagnosis on Linux System
Zhu Yu
(ShanxiMeteorologicalInformationCenter,TaiyuanShanxi030006,China)
Real-time system has a high demand on the stable server and smooth network. For the safe and efficient business, the system is mostly built on the Linux platform. So, the security of Linux system becomes more important. This article makes some brief descriptions on Linux intrusion detection method and gives some safety recommendations for system.
system safety; Linux; intrusion & detection
2016-04-18
朱煜(1984- ),男,山西太原人,工程師,工程碩士,主要從事氣象信息技術(shù)工作。
1674- 4578(2016)04- 0023- 02
TP316.81
A