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