隨著Linux的廣泛應用,人們必須考慮主機的安全性問題.運行Linux的主機很容易聯網,這同時也帶來了一種潛在的危險---非法用戶的入侵.當你的Linux只是簡單的安裝時, (這種入侵的危險)尤其可能發生.我將給出一個簡要介紹---如何保證Linux主機的安全,如何在網絡環境中保衛你的數據,讓使用Linux的用戶更放心.
“百密必有一疏(You are only as strong as the weakest link in your defense)”,計算機系統的安全性正如這句(中國)諺語所述.如果你忘記了為你下載的lpd打補釘,所有防衛系統將會崩潰,即使是最安全的系統.在安裝任何新的軟件時,一定要小心謹慎.如果你是在家中的臺式機上使用Linux,而且只是通過Modem撥號上網,你不必擔心太多.但是,如果你是通過專線聯網,運行重要事物的主機,我強烈地建議你檢查所有你計劃安裝軟件的安全問題歷史清單. (想一想那個著名的Sendmail)
幾個郵件列表和眾多網上主頁提供了大量的關于Linux系統安全問題的幫助.信息在那兒,你只需去取(它們) .如果你沒有時間,缺少耐心,或是不知道怎樣做,找一個安全問題顧問, (讓他)檢查系統的安裝,看一看有沒有潛在的不安全的地方.通常安全顧問公司有他們自己的Tiger Teams ,一個收費的小組,他們將試圖攻破你的防火墻.他們的目標是在一定的時間限定下,侵入你的系統,一些公司在攻擊不成功時甚至向客戶退款.對于還未察覺安全問題的公司來說, Tiger Teams是一項有價值的投資.因為Tiger Teams的花費不多,我建議你可以嘗試一下.這種經驗能節省你的資金,讓你在實踐中對Linux的結構和不同的系統抽象層次有更好的理解.
對于系統安全問題的瀏覽中,密碼是一個較好的起點.許多人在計算機存放了重要的資料,唯一可以防止偷窺的是八個字符組成的串,它被稱為密碼.沒有什么東西是完全可靠的,同大多數人的想法相反,一個不可破解的密碼是不存在的.只要有足夠的時間和資源,所有密碼都可以被猜出,或者強行計算得出.
由于密碼破解是一件與時間和資源成正比的工作,所以讓你的密碼難以破解是可以讓那些已經取得你的密碼文件的人失望的好辦法.每周運行一次密碼破解程序(檢查你的密碼文件)是一個好主意,(它)可以幫助你發現和替換比較容易猜出或者容易計算的密碼.同時,也要有一種機制可以在你輸入新密碼或者替換舊密碼時,拒絕那些容易破解的密碼.那些由字典中的常用字組成的字符串,統一大小寫的串,沒有包含數字或特殊字符的串不應該被用作密碼.
一個安全密碼的構成方式是,取你喜愛的格言,或者短句,或者書摘的每個詞的第一個字母,然后加入特殊字符組成.例如,假設我喜愛的格言是“the quick brown fox jumped over the lazy dog”,取每一個詞的第一個字母組成tqbfjotld.然后我加入特殊字符和年份的最后一位組成9tqbf!jotld8.這個密碼比起你的配偶或者孩子的姓名安全多了.
網上有許多供密碼破解者使用的詞典,它們包括了成百(如果不是上千)的常用詞.一些詞典只包括姓名,所以破解密碼“maggie”是一件區區小事,相比較而言, 9tqbf!jotld8出現在那些詞典中的概率極其微小.但是,即使我們建議的密碼不大會出現在(那些)詞典中,具有"漸進破解模式"的高級破解程序將會嘗試每一種可能性.(此類破解程序的)使用者設定密碼中包含的最小和最大字符數目,大寫或者小寫,包括的特殊字符和數字,然后密碼破解程序便開始搜索.的確,這樣需要花費大量時間和資源,但這是可能做到的.
下一步,檢查你的系統中提供的服務.許多Linux的發行包中將HTTP, FTP, SMB, Sendmail和其他一些服務作為缺省服務.并不是每一個人都需要一個web server,所以為什么不去掉它---它消耗了系統資源,同時又是一個潛在的安全漏洞.要想中止web服務,鍵入: kill -9
要想發現某一個精靈進程或者服務進程,鍵入: ps aux | grep
另外,在你的啟動腳本中注釋掉這些精靈程序,這樣在系統啟動后,它們不會重新啟動. (啟動)不使用的服務可能讓其他人獲得你的系統信息, (利用這些資料)可能造成安全漏洞. 另一樣需要避免使用的是".rhosts"文件,這是入侵者的最愛. ".rhosts"文件包含你有帳號的系統名稱.當你使用TELNET登錄其他系統時,它檢查它的".rhosts"文件中是否包含你的主機名,如果存在,它將讓你進入系統,而不再檢查你的密碼.
如想了解關于".rhosts"文件進一步的信息,可以查看Linux系統管理手冊.一個著名的使用".rhosts"文件侵入的案例是Network File System (NFS)被錯誤的配置
.入侵者首先檢查你的系統是否有對外開放的, (全部用戶)可寫的文件系統(例如, 鍵入: showmount -e).然后他遠程安裝到你(開放)的文件系統,將一個".rhosts"文件放置到一個用戶的主目錄下.接著,他使用TELNET登錄到你的系統,使用這個用戶的ID,你的系統將被蒙騙.這個故事告訴我們:讓比自己更精通nfsd的人來配置它,或者仔細地閱讀相關文檔.
另外一個因為配置錯誤而被利用的系統服務是: anonymous FTP .首先,很明顯地,通過anonymous FTP而獲得未授權信息的表現是讓公眾能取得你的(用戶)密碼文件.所有的用戶密碼是使用加密方式存放的,但是請記住我們已經演示了如何破解它.還有一種辦法獲得密碼文件,如果你的系統中/ftp目錄可寫的話.只需要如下簡單的幾個步驟: 產生一個偽造的".forward"文件,其中含有如下命令:
|/bin/mail < /etc/passwd連接到受害者的主機,使用FTP服務,用ftp用戶登錄. 輸入任意一個密碼. 將步驟1中產生的".forward"文件上載. 退出,然后發送一封郵件到(譯者注:意為受害主機域名). 坐等受害主機將它的密碼文件通過e-mail發回你的信箱.
很清楚,一個取得密碼文件的簡單方法.這種入侵方法只是由于系統管理員的一個簡單錯誤.所以,永遠不讓目錄/ftp對用戶anonymous有可寫的權限.建立一個anonymous FTP server是一種藝術,記住如下的這些簡單規則將有所幫助:只允許/incoming目錄可寫,而且只允許用戶root和ftp有寫的權限. Anonymous FTP用戶對/pub和/incoming目錄只有執行和讀的權限. FTP用戶不能具有/ftp目錄寫的權限.如果你設置了寫的權限,那么上述的入侵行為就有可能發生.如果想獲得更多的關于正確建立anonymous FTP服務的信息,請參閱ftpaclearcase/" target="_blank" >ccess的幫助頁(man page). (或到搜索相關信息)。
最后需要牢記的是系統流水日志永遠是你的朋友.日志是唯一能說明現在/過去/將來發生在你的系統內的事情的東西.同樣,確保他們沒有被入侵者或無經驗的系統管理員篡改.
隨著Linux在越來越多的合作環境中使用,保持用戶數據彼此隔離和修補每一個可能為黑客使用的漏洞是關鍵的一步.由于工業間諜呈現增長的趨勢,因此簡單的預防措施和適當的用戶教育將更好地保守你自己的秘密.
作者:Peter Vertes(翻譯:zou hongbo)