Linux服務器平臺的安全保護 (3) |
發布時間: 2012/8/15 18:14:41 |
有連接請求,然后對照一個訪問控制列表(ACL)檢驗該請求。如果該連接是允許的,TCP Wrappers將此連接請求傳遞給相應的真正守護進程,例如telnet。如果該連接是禁止的,則TCP Wrappers會丟棄此連接請求。對于Linux系統,TCP Wrappers缺省時就被安裝到系統中,我們只需編輯/etc/hosts.allow和/etc/hosts.deny文件即可。這些文件用于確定什么人能和不能訪問系統。TCP Wrappers的語法比較簡單,將被允許網絡連接的IP地址或網絡添加到/etc/hosts.allow文件,將被禁止網絡連接的IP地址或網絡添加到/etc/hosts.deny文件。缺省時,Linux允許所有連接,所以需要對這兩個文件進行修改。對于TCP Wrappers有以下兩點建議: 使用IP地址而不是系統名字或域名。 設置/etc/hosts.deny文件禁止所有連接(ALL),然后在/etc/hosts.allow文件中指定僅允許特定主機和網絡。 5、更嚴格的安全配置 以上討論的內容包括了所有的要點。通過執行以上操作,你就可以顯著增強系統的安全性。然后不幸的是,你的系統并不是100%安全,而且永遠也不會是。因此,這里提供幾個更嚴格的安全配置方法和步驟。 首先是創建whell用戶組。wheel用戶組包含了允許執行一些功能強大命令(例如/usr/bin/su)的用戶帳號列表。通過限制有權限訪問這些命令的用戶帳號,就能夠增強系統的安全性。要創建wheel組,用vi編輯文件/etc/group,創建wheel組并為其增加系統管理員帳號。然后確定重要的系統程序,例如/usr/bin/su。 把這些程序文件的組用戶設置為wheel,并只允許程序的屬主和組用戶執行(注意要保留必需的suid或guid位)。例如對于/usr/bin/su,使用如下命令: /usr/bin/chgrp wheel /usr/bin/su /usr/bin/chmod 4750 /usr/bin/su 然后,我們需要限制.rhosts、.netrc和/etc/hosts.equiv文件的使用。r系列命令使用這些文件來訪問系統。要為這些文件加鎖,先創建它們,然后修改其屬性為零即可。這樣除了root用戶就沒有其它用戶能創建或修改它們了。 例如: /usr/bin/touch /.rhosts /.netrc /etc/hosts.equiv /usr/bin/chmod 0 /.rhosts /.netrc /etc/hosts.equiv
在以前的舊版本中,必須手工修改PAM模塊以使用MD5哈希函數。然而在Red Hat 6.0及更高版本中,可用setup工具選擇MD5哈希。在命令行輸入"setup"然后選擇"authentication configuration",從那里就能夠選擇使用MD5哈希。然而,MD5哈希在用戶再次輸入其口令前并未真正生效。如果因為某些原因不使用setup工具,手工修改PAM模塊也是可以的。 作為bash用戶,我不大愿意使用.bash_history文件,因為不希望別人(包括root)知道我曾經運行了哪些命令。所以,在.bash_profile文件里,我添加了一行,這樣命令就不會被記錄到.bash_history文件: HISTFILESIZE=0 最后一件事情是保護系統不被攻擊者物理訪問。一是要為BIOS設置口令,二是通過在/etc/lilo.conf文件中配置口令保護(password=xxx)系統的啟動過程。然而記住,一旦系統被入侵者能夠完全物理接觸,則沒有任何方法能保證系統的絕對安全了。 6、IPChains 討論Linux安全性,不可能不討論IPChains。IPChains是集成到2.2.x內核中的包過濾防火墻軟件。只要運行了Red Hat 6.0或更高版本,IPChains已在Linux的安裝包中。IPChains與Cisco Access Control Lists(訪問控制列表)相似,它能夠控制什么數據包能夠進出Linux系統。作為一個防火墻軟件,IPChains能夠用于保護Linux系統。要保護一臺獨立服務器系統,可以配置IPChains僅允許出站的TCP連接。如果外部主機試圖發起任何TCP連接,都會被禁止創建連接。由于IPChains不是基于狀態過濾的,因此通常允許所有的UDP和ICMP連接。最后,應該記錄下所有的被禁止連接,這樣可以發現可能的攻擊企圖。然而,對于廣播和多播數據包,應該將其丟棄,因為這些數據包可能會很快地填滿系統日志。以下是一個IPChains配置例子(保護獨立服務器系統): bash# ipchains -L Chain input (policy DENY): target prot opt source destination ports DENY all ------ 0.0.0.0 anywhere n/a DENY all ------ anywhere 255.255.255.255 n/a DENY all ------ anywhere BASE-ADDRESS.MCAST.NET/8 n/a ACCEPT tcp !y---- anywhere anywhere any -> any ACCEPT udp ----l- anywhere anywhere any -> any ACCEPT icmp ----l- anywhere anywhere any -> any DENY all ----l- anywhere anywhere n/a Chain forward (policy ACCEPT): Chain output (policy ACCEPT): 7、結論 我們在本文中討論了如何安全配置一臺Linux系統(Red Hat發行版本)的一些主要步驟。使一個系統安全的關鍵是最小化安裝,使用TCP Wrappers、IPChains等軟件、用shadow口令增加安全防護。此外還有一些附加步驟,例如tripwire(監視系統文件的改動)和swatch(日志監視和報警工具)。另外向Linux初學者推薦一個能夠自動對新安裝的Linux系統進行安全配置的PERL腳本:Bastille。記住,沒有系統是真正100%安全的。然而,通過以上列出的操作步驟,可以較大幅度地減少安全風險。
本文出自:億恩科技【www.endtimedelusion.com】 |