Linux服務器平臺的安全保護 (1) |
發布時間: 2012/8/15 18:13:39 |
互聯網上有許多企業公司和組織采用Linux作為服務器平臺。當這些服務器與互聯網連接以提供應用服務時,不可避免地會成為攻擊目標。本文討論Linux系統安全配置的一些基本知識,以幫助你保護Linux系統。 雖然在這里以Red Hat 6.0為例子,但也應該適用于其它Linux發行版本。 1、安裝 配置系統安全的頭一步最好是在系統的開始--操作系統的安全。因為配置的是防火墻,所以你絕對不能信任任何以前的系統安裝和配置,而應該從全新安裝開始,才能真正保證系統安全的完整性。 使你的系統處于單獨(或隔離)的網絡中。決不要讓未受保護的系統連接到其它網絡或互聯網中受到可能的攻擊。按我個人的經驗,一個連接到互聯網的新安裝系統可以在15分鐘內被掃描和入侵取得完全控制權。你可能需要另一臺機器從互聯網獲取重要工具和安全補丁等等,然后再從這些機器將其傳送到單獨的"配置網絡"中。 當把將要作為未來防火墻的機器放置于隔離的網絡中時,就可以開始下一步了。 第一步是選擇操作系統將要安裝的軟件包。對于Red Hat 6.0,提供了三種安裝選擇:Workstation(工作站)、Server(服務器)、Custom(定制,缺省選項)。我個人強烈推薦"定制",因為這允許你選擇添加哪些服務和硬盤如何分區。安裝策略是在維持最大化效率時進行"最小化"安裝。系統中的軟件越少,潛在的安全漏洞就會越少。例如,如果你不需要News或Real Audio Server,就不要安裝它。Linux系統有一個好處就是如果你后來改變了想法,也是很容易添加所需軟件包的。不管選擇了哪種安裝方式,手冊頁和HOWTO文檔都應該是必不可缺的。雖然可能會使系統增加一點點風險,但它們有時確實特別有用。 如果選擇了"定制"安裝,會被提示進行硬盤分區。我個人通常喜歡使根分區盡可能地大,并且把所有東西都放在那里。然后,我們確實需要創建幾個分區以保護根分區。因為如果根分區被例如系統日志或電子郵件等數據塞滿的話,就會出現拒絕服務,甚至有可能使系統崩潰。 因此,我總是推薦為/var設置一個單獨的分區。/var是用于存放系統所有日志和電子郵件的地方,將/var分區獨立出來,就能夠有效地保護根分區被這些數據塞滿。對于許多網絡環境,為/var分區設置不少于400MB基本上就足夠了。另外可以考慮為某些特定的服務或應用創建或保留單獨的分區,特別是敏感的日志記錄。如果系統中存在不可完全信任的用戶,也許應該為/home創建單獨的分區,這樣可以避免惡意用戶輕易攻擊/根分區。對于一臺獨立服務器以下是一個分區實例: / - everything else /var - 400 MB swap - (I normally go with 256 MB) 當系統安裝完成并重啟后,務必要安裝必需的安全補丁。對于Red Hat,可以到http://www.redhat.com/apps/support/updates.html找到它的所有安全補丁程序。安全補丁對于維持一個安全的防火墻是至關重要的,應該經常保持更新。 bugtraq@securityfocus.com或redhat-watch-list-request@redhat.com是獲取最新安全漏洞信息的最佳資源。如果不安裝這些補丁,你的系統可能會輕易入侵。記住,從上面提及的另一臺機器獲取這些補丁,防火墻機器應該仍處于隔離網絡中。對于Red Hat系統,下載RPM包會使系統更新變得更簡單。例如是對wu-ftpd進行安全升級的實例: rpm -Uvh wu-ftpd-2.6.0-14.6x.i386.rpm 如果系統早已處于互聯網上,可以直接從互聯網上安裝: rpm -Uvh ftp://updates.redhat.com/6.1/i386/wu-ftpd-2.6.0-14.6x.i386.rpm 推薦使用autorpm工具保持對RPM軟件包的補丁更新。這個命令行工具分析確定哪些.rpm包需要升級,并會自動(如果你愿意的話)從Red Hat的網站上下載并安裝升級文件。這個工具的使用非常靈活簡單,可以讓其在cron中運行,這樣你的系統就會定期自動檢查升級更新,并可以向管理員發送提醒系統需要升級的電子郵件。 2、關閉服務 一旦安裝完系統的安裝包、補丁,重啟后,我們現在就可以開始對操作系統進行安全增強配置了。安全增強配置主要包括關閉服務、增加日志、調整幾個文件和配置TCP Wrappers。首先從關閉服務開始。 缺省情況下,Solaris是一個提供許多有用服務的高性能操作系統。然而,對于防火墻來說,其中的大多數服務是不需要,且可能是安全風險。首先需要修改/etc/inetd.conf文件。這個文件定義了由/usr/sbin/inetd超級守護進程需要監聽的服務。缺省情況下,/etc/inetd.conf會啟動35個服務,然而最多僅需要兩項:ftp和telnet。其余服務都不是必需的,可以將它們注釋(關閉)。這是很重要的,因為inetd監聽的許多服務存在嚴重的安全威脅,例如popd、imapd和rsh。以下命令列出inetd守護進程會監聽的服務,請確認將其中不必要的服務的所在行注釋(行首加"#"號): grep -v "^#" /etc/inetd.conf 下一步要修改的是/etc/rc2.d和/etc/rc3.d目錄下的文件。在這里你能夠找到被init進程執行的啟動腳本。其中也有許多是不需要的。要取消在啟動過程中執行一個腳本,只需將對應文件名的起始大寫S改為小寫s即可。此外,Red Hat系統中帶有一個好工具用以關閉服務。只要在命令行輸入"/usr/sbin/setup",然后選擇"System Services",接著再選擇在系統啟動時需要執行的腳本。另外還有一種方法就是在大多數發行版本中都帶有的chkconfig工具。以下啟動腳本是系統缺省安裝,但通常卻不是必需的。如果確定不需要它們,應該將禁止其啟動。 注意其中的數字用于決定執行的順序,在不同的發行版本中可能會有所變化。以大寫K開始的腳本用于kill已經在運行中的服務。 S05apmd (僅有筆記本電腦才需要) S10xntpd (網絡時間協議) S11portmap (如果運行RPC服務則必需打開)
本文出自:億恩科技【www.vbseamall.com】 |