李洋 駱寒 浙江師范大學(xué)
盡管Linux在安全設(shè)計(jì)上具有一定的先天優(yōu)勢(shì),但也絕不像有些人們認(rèn)為的“絕對(duì)安全”。近年來(lái),基于Linux的安全事件頻繁發(fā)生。世界上沒(méi)有絕對(duì)安全的操作系統(tǒng),如果疏于管理,沒(méi)有正確配置,任何操作系統(tǒng)都有可能被攻擊,入侵。因此,無(wú)論是Linux還是Windows,在安全問(wèn)題方面最大的問(wèn)題不是操作系統(tǒng)本身,而是用戶(hù)有沒(méi)有實(shí)踐一些基本的安全準(zhǔn)則。
Linux可以利用啟動(dòng)盤(pán)來(lái)啟動(dòng)計(jì)算機(jī),或利用LILO進(jìn)入單用戶(hù)模式,無(wú)須使用root口令而獲得root用戶(hù)具有的權(quán)限。這是一個(gè)很大的安全問(wèn)題,因?yàn)樗箁oot口令失去了意義。
Linux存放的是用戶(hù)口令明文的One Way Hash運(yùn)算的結(jié)果,加上用戶(hù)選擇易記口令等因素,容易采用詞典攻擊,同時(shí)用戶(hù)遠(yuǎn)程登錄時(shí)傳送的是口令明文,易于竊聽(tīng)。
SETUID是為解決某些普通用戶(hù)在執(zhí)行程序時(shí)須暫時(shí)獲得root特權(quán)的程序執(zhí)行問(wèn)題,這也是一個(gè)很大的安全隱患。
當(dāng)輸入數(shù)據(jù)超出所分配存儲(chǔ)空間而系統(tǒng)又沒(méi)有對(duì)此作直接處理時(shí)將產(chǎn)生緩沖區(qū)溢出問(wèn)題。
(1)直接竊聽(tīng)取得root密碼或者取得某位特殊User的密碼,而該位User可能為root,再獲取任意一位User的密碼,因?yàn)槿〉靡话阌脩?hù)密碼通常很容易。
(2)使用命令就可以知道該臺(tái)計(jì)算機(jī)上面的用戶(hù)名稱(chēng)。然后找這些用戶(hù)下手,并通過(guò)這些容易入侵的用戶(hù)取得系統(tǒng)的密碼文件/etc/passwd,再用密碼字典文件搭配密碼猜測(cè)工具猜出root的密碼。
(3)利用一般用戶(hù)在/tmp目錄放置著的SetUID的文件或者執(zhí)行著SetUID程序,讓root去執(zhí)行,以產(chǎn)生安全漏洞。
(4)利用系統(tǒng)上需要SetUID root權(quán)限的程序的安全漏洞,取得root的權(quán)限,例如:pppd。
(5)從.rhost的主機(jī)入侵。因?yàn)楫?dāng)用戶(hù)執(zhí)行rlogin登錄時(shí),rlogin程序會(huì)鎖定.rhost定義的主機(jī)及賬號(hào),并且不需要密碼登錄。
(6)修改用戶(hù)的.login、cshrc、.profile等Shell設(shè)置文件,加入一些破壞程序。用戶(hù)只要登錄就會(huì)執(zhí)行。
(7)只要用戶(hù)登錄系統(tǒng),就會(huì)不知不覺(jué)地執(zhí)行Backdoor程序(可能是Crack程序),它會(huì)破壞系統(tǒng)或者提供更進(jìn)一步的系統(tǒng)信息,以利Hacker滲透系統(tǒng)。
(8)Hacker會(huì)通過(guò)中間主機(jī)聯(lián)機(jī),再尋找攻擊目標(biāo),避免被用逆查法抓到其所在的真正IP地址。
一般來(lái)說(shuō),對(duì)Linux系統(tǒng)的安全設(shè)定包括取消不必要的服務(wù)、限制遠(yuǎn)程存取、隱藏重要資料、修補(bǔ)安全漏洞、采用安全工具以及經(jīng)常性的安全檢查等。下文將介紹幾種方法,針對(duì)Linux系統(tǒng)來(lái)增加其安全性。
早期的Unix版本中,每一個(gè)不同的網(wǎng)絡(luò)服務(wù)都有一個(gè)服務(wù)程序在后臺(tái)運(yùn)行,后來(lái)的版本用統(tǒng)一的/etc/inetd服務(wù)器程序擔(dān)此重任。Inetd是Internetdaemon的縮寫(xiě),它同時(shí)監(jiān)視多個(gè)網(wǎng)絡(luò)端口,一旦接收到外界傳來(lái)的連接信息,就執(zhí)行相應(yīng)的TCP或UDP網(wǎng)絡(luò)服務(wù)。
在Linux中有兩種不同的服務(wù)型態(tài):一種是僅在有需要時(shí)才執(zhí)行的服務(wù);另一種是一直在執(zhí)行的永不停頓的服務(wù)。提供文件服務(wù)的NFS服務(wù)器和提供NNTP新聞服務(wù)的news都屬于這類(lèi)服務(wù),如果沒(méi)有必要,最好取消這些服務(wù)。
用戶(hù)在登陸Linux系統(tǒng)前會(huì)被要求輸入密碼,這些密碼被保存在/etc/password文件中。雖然文件本身經(jīng)過(guò)加密,但一般用戶(hù)可以利用密碼破譯工具猜測(cè)出密碼。
這里給出一個(gè)較為安全的方法,即設(shè)定影子文件/etc/shadow,只允許有特殊權(quán)限的用戶(hù)才可以訪問(wèn)該文件。在Linux系統(tǒng)中,如果要采用shadow文件,必須將所有的公用程序重新編譯,才能支持影子文件。這種方法比較麻煩,比較簡(jiǎn)便的方法是采用插入式驗(yàn)證模塊(PAM)。Linux系統(tǒng)管理人員只需花費(fèi)幾小時(shí)去安裝和設(shè)定PAM,就能大大提高Linux系統(tǒng)的安全性,把很多攻擊阻擋在系統(tǒng)之外。
用戶(hù)賬號(hào)具有安全等級(jí),這是因?yàn)樵贚inux上每個(gè)賬號(hào)可以被賦予不同的權(quán)限,因此在建立一個(gè)新用戶(hù)ID時(shí),系統(tǒng)管理員應(yīng)該根據(jù)需要賦予該賬號(hào)不同的權(quán)限,并且歸并到不同的用戶(hù)組中。
FTP服務(wù)與前面講的Telnet服務(wù)一樣,用戶(hù)名和用戶(hù)密碼也是明文傳輸?shù)?。因此,為了系統(tǒng)的安全,必須通過(guò)對(duì)/etc/ftpusers文件的配置,禁止root,bin,daemon,adm等特殊用戶(hù)對(duì)FTP服務(wù)器進(jìn)行遠(yuǎn)程訪問(wèn),通過(guò)對(duì)/etc/ftphosts的設(shè)定限制某些主機(jī)不能連入FTP服務(wù)器,如果系統(tǒng)開(kāi)放匿名FTP服務(wù),則任何人都可以下載文件(有時(shí)還可以上載文件),因此,除非特別需要一般應(yīng)禁止匿名FTP服務(wù)。