摘自:大陸新聞組
From: pariah.bbs@bbs.cqupt.edu.cn (無痕)
摘自:網絡衛士/www.netguard.com.cn/
由于Linux 操作系統是一個開放源代碼的免費系統,因此,越來越受到用戶的
歡迎。隨著Linux在我國的不斷普及,有關的政府部門更是將基于Linux開發具有自
主版權的操作系統提高到保衛國家信息安全的高度來看待,因此,我們不難預測;
Linux 在我國將得到更快更大的發展。而對于眾多習慣了Unix和Windows NT的系統
管理員來講,如何保證Linux操作系統的安全將面臨許多新的挑戰。
苦修內功
第一步:安裝文件系統要分區
在Linux 系統中,如果分別為不同的應用安裝單獨的主分區,再將關鍵的分區
設置為只讀,將大大提高文件系統的安全性。
1.文件分區
Linux的文件系統可以分成幾個主要的分區,一般情況下至少要建立 /、/usr/
local、/var和/home等幾個分區。其中/usr可以安裝成只讀並且可以被認為是不可
修改的,如果/usr中有任何文件發生了改變,那麼系統將立即發出安全報警。/lib
、/boot和/sbin的安裝和設置也一樣。在安裝時應該盡量將它們設置為只讀,這樣
對它們的文件、目錄和屬性進行的任何修改都會導致系統報警。
當然將所有主要的分區都設置為只讀是不可能的,有的分區如/var,其自身的
性質就決定了不能將它設置為只讀,但應該不允許它具有執行權限。
2.擴展ext2
使用ext2文件系統上的只添加和不可變這兩種文件屬性,可以進一步提高文件
系統的安全級別。一個標記為不可變的文件不能被修改,甚至不能被根用戶修改。
一個標記為只添加的文件可以被修改,但只能在它的後面添加內容,即使根用戶也
只能如此。
如果你關鍵的文件系統安裝成只讀的,並且文件被標記為不可變的,入侵者必
須重新安裝系統才能刪除這些不可變的文件,但這會立刻產生報警,這樣就大大減
少了被非法入侵的危險。
3.保護log文件
當與log文件和log備份一起使用時,不可變和只添加這兩種文件屬性特別有用
。系統管理員應該將活動的log文件屬性設置為只添加。當log文件被更新時,新產
生的log 備份文件屬性應該設置成不可變的,而新的活動的文件屬性又變成了只添
加。這通常需要在log更新腳本中添加一些控制命令。
第二步:系統一定要備份
在完成Linux 系統的安裝以後應該對整個系統進行備份,以後可以根據這個備
份來驗證系統的完整性,這樣就可以發現系統文件是否被非法竄改過。如果發現系
統文件已經被破壞,也可以使用備份來恢復系統。
1.用CD-ROM備份
當前最好的系統備份介質就是CD-ROM光盤,如果對安全級別的要求特別高,那
麼可以將光盤設置為可啟動的,並且將驗證工作作為系統啟動過程的一部分。這樣
只要通過光盤啟動,就說明系統尚未被破壞過。
如果你創建了一個只讀的分區,那麼可以定期從光盤映像重新裝載它們。即使
像/boot、/lib和/sbin這樣不能被安裝成只讀的分區,你仍然可以根據光盤映像來
檢查它們,甚至可以在啟動時從另一個安全的映像重新下載它們。
2.其它方式的備份
雖然/etc中的許多文件經常會變化,但/etc中的許多內容仍然可以放到光盤上
用于系統完整性驗證。其它不經常進行修改的文件,可以備份到另一個系統(如磁
帶)或壓縮到一個只讀的目錄中。這種辦法可以在使用光盤映像進行驗證的基礎上
,再進行額外的系統完整性檢查。
第三步:改進內部安全機制
通過改進Linux操作系統的內部功能, 可以防止緩衝區溢出攻擊,這種破壞力
極強卻又最難預防的攻擊方式,雖然這樣的改進需要系統管理員具有相當豐富的經
驗和技巧,但對于安全級別要求高的Linux系統來講還是很有必要的。
1.Solaris Designer
Solaris Designer為2.0版內核的安全Linux補丁提供了一個不可執行的棧,以
減少緩衝區溢出的威脅,從而大大提高了整個系統的安全性。
緩衝區溢出預防起來十分困難,系統管理員必須完全去掉緩衝區溢出存在的條
件,才能防止這種方式的攻擊。正因為如此,許多人甚至包括Linux Torvalds本人
也認為這個安全Linux補丁十分重要, 因為它防止了所有使用緩衝區溢出的攻擊。
但是需要引起注意的是,這些補丁也會導致對執行棧的某些程序和庫的依賴問題,
這些問題也給系統管理員帶來的新的挑戰。
2.StackGuard
StackGuard是一個十分強大的安全補丁工具。你可以使用經StackGuard修補過
的gcc版本來重新編譯和鏈接關鍵的應用。
StackGuard進行編譯時增加了棧檢查以防止發生棧攻擊緩衝區溢出,雖然這會
導致系統的性能略有下降,但對于安全級別要求高的特定應用來講,StackGuard仍
然是一個十分管用的工具。
3.增加新的訪問控制功能
Linux的2.3版內核正試圖在文件系統中實現一個訪問控制列表,這要求在原來
的三類(Owner、Group和Other)訪問控制機制的基礎上再增加更詳細的訪問控制。
在2.2和2.3 版的Linux內核中還將開發新的訪問控制功能,它最終將會影響當
前有關ext2文件屬性的一些問題。與傳統的具有ext2文件系統相比,它提供了一個
更加精確的安全控制功能。有了這個新的特性,應用程序將能夠在不具有超級用戶
權限的情況下訪問某些系統資源,如初始套接等。
巧禦外敵
方法一:將入侵消滅在“萌芽”
入侵者進行攻擊之前最常做的就是端號掃瞄,如果能夠及時發現和阻止入侵者
的這種行為,那麼可以大大減少入侵事件的發生率。
Abacus Port Sentry是開放源代碼的工具包,它能夠監視網絡接口,並且與防
火牆交互操作來關閉端口掃瞄攻擊。
Abacus Port Sentry能夠檢測到慢掃瞄(Slow Scan) ,但它不能檢測到結構
化攻擊(Structured Attack),這兩種方式的最終目的都是要試圖掩蓋攻擊意圖。
正確地使用這個軟件將能夠有效地防止對IMAP服務大量的並行掃瞄,並且阻止所有
這樣的入侵者。Abacus Sentry與Linux 2.2內核的IPChains工具一起使用時最有效
,它能夠自動將所有的端口掃瞄行為定向到Port Sentry。
當然更好的辦法就是使用專門的入侵檢測系統,但這樣的產品一般價格較高,
普通用戶承受起來有困難。
方法二:登錄服務器“單一化”
將系統的登錄服務器移到一個單獨的機器中,會增加系統的安全級別,在大的
Linux 網絡中,最好使用一個單獨的登錄服務器用于Syslog服務。更安全的登錄服
務器會大大削弱入侵者透過登錄系統竄改日志文件的能力。
1.安全Syslog
即使使用單獨的登錄服務器,Linux 自身的Syslog工具也是相當不安全的。因
此,有人開發了所謂的安全log服務器,將密碼簽名集成到日志中, 這會確保入侵
者即使在竄改系統日志以後也無法做到不被發現。現在最常用于取代Syslog的安全
log服務器稱為“安全Syslog”,用戶可以從Core SDI站點(http://www.core-sdi
.com/ssylog)處下載這個工具。這個守護程序實現一個稱為PEQ-1的密碼協議來實
現對系統日志的遠程審計。即使在入侵者獲得系統超級用戶權限的情況下也仍然可
以進行審計,因為協議保證了以前以及入侵過程中的log 信息沒有審計者的通知無
法被修改。
2.第二代Syslog
另一個取代Syslog的工具是Syslogs-ng(下一代的Syslog)。它提供了密碼簽
名來檢測對日志文件的竄改。密碼安全登錄服務器和遠程審計功能可以使入侵者極
難進行日志竄改並且很容易被檢測到。用戶可以從www.babit.hu/products/syslog
-ng.html處下載這個工具。
方法三:單一登錄系統更安全
維護分散的大網絡環境中的多個用戶賬號對于系統管理員來講是一件非常頭疼
的事情。現在有一些單一的登錄(Sign On) 系統不僅可以減輕管理員的負擔,而
且同時還提高了安全級別。
1.NIS
網絡信息服務(NIS)是一個很好的單一登錄系統,它是在 Sun 公司的Yellow
Page服務的基礎上發展起來的 ,它的基本安全特性不夠健壯。NIS的更新版本NIS+
,對原NIS的不足進行了改進,現在已經有了用于Linux的NIS+版本。
2.Kerberos
Kerberos也是一種非常有名的單一登錄系統。Kerberos V4 存在一些安全漏洞
,Ketberos V5對此進行了改進。
方法四:用陷阱和蜜罐誘敵深入
所謂陷阱就是激活時能夠觸發報警事件的軟件,而蜜罐(honeypot)程序是指
設計用來引誘有入侵企圖者觸發專門報警的陷阱程序。
通過設置陷阱和蜜罐程序,一旦出現入侵事件,系統就可以很快發出報警。
在許多大的網絡中,一般都設計有專門的陷井程序。陷阱程序一般分為兩種:
一種是只發現入侵者而不對其採取報復行動,另一種是同時採取報復行動。
設置蜜罐的一種常用方法是故意聲稱Linux系統使用了具有許多脆弱性的 IMAP
服務器版本。當入侵者對這些IMAP服務器進行大容量端口掃瞄,就會落入陷阱並且
激發系統報警。
另一個蜜罐陷阱的例子就是很有名的 phf,它是一個非常脆弱的Webcgi-bin腳
本。最初的phf是設計來查找電話號碼的,但它有一個嚴重的安全漏洞: 允許入侵
者使用它來獲得系統口令文件或執行其它惡意操作。系統管理員可以設置一個假的
phf腳本,但是它不是將系統的口令文件發送給入侵者, 而是向入侵者返回一些假
信息並且同時向系統管理員發出報警。
另外一類蜜罐陷阱程序可以通過在防火牆中將入侵者的IP地址設置為黑名單來
立即拒絕入侵者繼續進行訪問。拒絕不友好的訪問既可以是短期的,也可以是長期
的。Linux內核中的防火牆代碼非常適合于這樣做。
摘自 網絡衛士/www.netguard.com.cn/