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