許多剛接觸Linux的網絡管理員發現,他們很難由指向點擊式的安全配置界面轉換到另一種基於編輯復雜而難以捉摸的文本文件的界面。本文列出七條管理員能夠也應該可以做到的步驟,從而幫助他們建立更加安全的Linux服務器,並顯著降低他們所面臨的風險。
請任何大型機構的網絡管理員對Linux和網絡操作系統(如Windows NT或Novell)進行比較,可能他會承認Linux是一個內在更加穩定,擴展性更強的解決方案。可能他還會承認,在保護系統免受外部攻擊方面,Linux可能是三者中最難配置的系統。
這種認識相當普遍——許多剛接觸Linux的網絡管理員發現,他們很難由指向點擊式的安全配置界面轉換到另一種基於編輯復雜而難以捉摸的文本文件的界面。多數管理員充分認識到他們需要手工設置阻礙和障礙,以阻止可能的黑客攻擊,從而保護公司數據的安全。只是在他們並不熟悉的Linux領域內,他們不確定自己的方向是否正確,或該從何開始。
這就是本文的目的所在。它列出一些簡易的步驟,幫助管理員保障Linux的安全,並顯著降低他們面臨的風險。本教程列出了七個這樣的步驟,但您也可以在Linux手冊和討論論壇中發現更多內容。
保護根賬戶
Linux系統上的根賬戶(或超級用戶賬戶)就像是滾石演唱會上的後台通行證一樣——它允許您訪問系統中的所有內容。因此,值得采取額外的步驟對它加以保護。首先,用密碼命令給這個賬戶設置一個難以猜測的密碼,並定期進行修改,而且這個密碼應僅限於公司內的幾個主要人物(理想情況下,只需兩個人)知曉。
然後,對/etc/securetty文件進行編輯,限定能夠進行根訪問的終端。為避免用戶讓根終端“開放”,可設置TMOUT當地變量為非活動根登錄設置一個使用時間;並將HISTFILESIZE當地變量設為0,保證根命令記錄文件(其中可能包含機密信息)處於禁止狀態。最後,制訂一個強制性政策,即使用這個賬戶只能執行特殊的管理任務;並阻止用戶默認以根用戶服務登錄。
提示:關閉這些漏洞後,再要求每一個普通用戶必須為賬戶設立一個密碼,並保證密碼不是容易識別的啟示性密碼,如生日、用戶名或字典上可查到的單詞。
安裝一個防火牆
防火牆幫助您過濾進出服務器的數據包,並確保只有那些與預定義的規則相匹配的數據包才能訪問系統。有許多針對Linux的優秀防火牆,而且防火牆代碼甚至可直接編譯到系統內核中。首先應用ipchains或iptables命令為進出網絡的數據包定義輸入、輸出和轉寄規則。可以根據IP地址、網絡界面、端口、協議或這些屬性的組合制訂規則。這些規則還規定匹配時應采取何種行為(接受、拒絕、轉寄)。規則設定完畢後,再對防火牆進行詳細檢測,保證沒有漏洞存在。安全的防火牆是您抵御分布式拒絕服務(DDoS)攻擊這類常見攻擊的第一道防線。
使用OpenSSH處理網絡事務
在網絡上傳輸的數據安全是客戶-服務器構架所要處理的一個重要問題。如果網絡事務以純文本的形式進行,黑客就可能“嗅出”網絡上傳輸的數據,從而獲取機密信息。您可以用OpenSSH之類的安全殼應用程序為傳輸的數據建立一條“加密”通道,關閉這個漏洞。以這種形式對連接進行加密,未授權用戶就很難閱讀在網絡主機間傳輸的數據。
禁用不必要的服務
大多數Linux系統安裝後,各種不同的服務都被激活,如FTP、telnet、UUCP、ntalk等等。多數情況下,我們很少用到這些服務。讓它們處於活動狀態就像是把窗戶打開讓盜賊有機會溜進來一樣。您可以在/etc/inetd.conf或/etc/xinetd.conf文件中取消這些服務,然後重啟inetd或xinetd後台程序,從而禁用它們。另外,一些服務(如數據庫服務器)可能在開機過程中默認啟動,您可以通過編輯/etc /rc.d/*目錄等級禁用這些服務。許多有經驗的管理員禁用了所有系統服務,只留下SSH通信端口。
使用垃圾郵件和反病毒過濾器
垃圾郵件和病毒干擾用戶,有時可能會造成嚴重的網絡故障。Linux有極強的抗病毒能力,但運行Windows的客戶計算機可能更易受病毒攻擊。因此,在郵件服務器上安裝一個垃圾郵件和病毒過濾器,以“阻止”可疑信息並降低連鎖崩潰的風險,會是一個不錯的主意。
首先安裝SpamAssassin這個應用各種技術識別並標注垃圾郵件的一流開源工具,該程序支持基於用戶的白名單與灰名單,提高了精確度。接下來,根據常規表達式安裝用戶級過濾,這個工具可對收件箱接收的郵件進行自動過濾。最後再安裝Clam Anti-Virus,這個免費的反病毒工具整合 Sendmail和SpamAssassin,並支持電子郵件附件的來件掃描。
安裝一個入侵檢測系統
入侵檢測系統(IDS)是一些幫助您了解網絡改變的早期預警系統。它們能夠准確識別(並證實)入侵系統的企圖,當然要以增加資源消耗與錯誤線索為代價。您可以試用兩種相當知名的IDS:tripwire,它跟蹤文件簽名來檢測修改;snort,它使用基於規則的指示執行實時的信息包分析,搜索並識別對系統的探測或攻擊企圖。這兩個系統都能夠生成電子郵件警報(以及其它行為),當您懷疑您的網絡受到安全威脅而又需要確實的證據時,可以用到它們。
定期進行安全檢查
要保障網絡的安全,這最後一個步驟可能是最為重要的。這時,您扮演一個反派的角色,努力攻破您在前面六個步驟是建立的防御。這樣做可以直接客觀地對系統的安全性進行評估,並確定您應該修復的潛在缺陷。
有許多工具可幫助您進行這種檢查:您可以嘗試用Crack和John the Ripper之類的密碼破解器破譯您的密碼文件;或使用nmap或 netstat來尋找開放的端口;還可以使用tcpdump探測網絡;另外,您還可以利用您所安裝的程序(網絡服務器、防火牆、Samba)上的公開漏洞,看看能否找到進入的方法。如果您設法找到了突破障礙的辦法,其他人同樣也能做到,您應立即采取行動關閉這些漏洞。
保護Linux系統是一項長期的任務,完成上述步驟並不表示您可以高枕無憂。訪問Linux安全論壇了解更多安全提示,同時主動監控並更新系統安全措施。