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