Linux十大高級安全管理技巧
由于Linux操作系統(tǒng)是一個開放源代碼的免費操作系統(tǒng),因此受到越來越多用戶的歡迎。隨著Linux操作系統(tǒng)在我國的不斷普及,有關(guān)的政府部門更是將基于Linux開發(fā)具有自主版權(quán)的操作系統(tǒng)提高到保衛(wèi)國家信息安全的高度來看待,因此我們不難預測今后Linux操作系統(tǒng)在我國將得到更快更大的發(fā)展。雖然Linux與UNIX很類似,但它們之間也有一些重要的差別。對于眾多的習慣了UNIX和WindowsNT的系統(tǒng)管理員來講,如何保證Linux操作系統(tǒng)的安全將面臨許多新的挑戰(zhàn)。本文介紹了一系列實用的Linux安全管理經(jīng)驗。
一、文件系統(tǒng)
在Linux系統(tǒng)中,分別為不同的應用安裝單獨的主分區(qū)將關(guān)鍵的分區(qū)設置為只讀將大大提高文件系統(tǒng)的安全。這主要涉及到Linux自身的ext2文件系統(tǒng)的只添加(只添加)和不可變這兩大屬性。
文件分區(qū)Linux的文件系統(tǒng)可以分成幾個主要的分區(qū),每個分區(qū)分別進行不同的配置和安裝,一般情況下至少要建立/、/usr/local、/var和/home等分區(qū)。/usr可以安裝成只讀并且可以被認為是不可修改的。如果/usr中有任何文件發(fā)生了改變,那么系統(tǒng)將立即發(fā)出安全報警。當然這不包括用戶自己改變/usr中的內(nèi)容。/lib、/boot和/sbin的安裝和設置也一樣。在安裝時應該盡量將它們設置為只讀,并且對它們的文件、目錄和屬性進行的任何修改都會導致系統(tǒng)報警。
當然將所有主要的分區(qū)都設置為只讀是不可能的,有的分區(qū)如/var等,其自身的性質(zhì)就決定了不能將它們設置為只讀,但應該不允許它具有執(zhí)行權(quán)限。
擴展ext2使用ext2文件系統(tǒng)上的只添加和不可變這兩種文件屬性可以進一步提高安全級別。不可變和只添加屬性只是兩種擴展ext2文件系統(tǒng)的屬性標志的方法。一個標記為不可變的文件不能被修改,甚至不能被根用戶修改。一個標記為只添加的文件可以被修改,但只能在它的后面添加內(nèi)容,即使根用戶也只能如此。
可以通過chattr命令來修改文件的這些屬性,如果要查看其屬性值的話可以使用lsattr命令。要想了解更多的關(guān)于ext2文件屬性的信息,可使用命令manchattr來尋求幫助。這兩上文件屬性在檢測黑客企圖在現(xiàn)有的文件中安裝入侵后門時是很有用的。為了安全起見,一旦檢測到這樣的活動就應該立即將其阻止并發(fā)出報警信息。
如果你的關(guān)鍵的文件系統(tǒng)安裝成只讀的并且文件被標記為不可變的,入侵者必須重新安裝系統(tǒng)才能刪除這些不可變的文件但這會立刻產(chǎn)生報警,這樣就大大減少了被非法入侵的機會。
保護log文件當與log文件和log備份一起使用時不可變和只添加這兩種文件屬性特別有用。系統(tǒng)管理員應該將活動的log文件屬性設置為只添加。當log被更新時,新產(chǎn)生的log備份文件屬性應該設置成不可變的,而新的活動的log文件屬性又變成了只添加。這通常需要在log更新腳本中添加一些控制命令。
二、備份
在完成Linux系統(tǒng)的安裝以后應該對整個系統(tǒng)進行備份,以后可以根據(jù)這個備份來驗證系統(tǒng)的完整性,這樣就可以發(fā)現(xiàn)系統(tǒng)文件是否被非法竄改過。如果發(fā)生系統(tǒng)文件已經(jīng)被破壞的情況,也可以使用系統(tǒng)備份來恢復到正常的狀態(tài)。
CD-ROM備份當前最好的系統(tǒng)備份介質(zhì)就是CD-ROM光盤,以后可以定期將系統(tǒng)與光盤內(nèi)容進行比較以驗證系統(tǒng)的完整性是否遭到破壞。如果對安全級別的要求特別高,那么可以將光盤設置為可啟動的并且將驗證工作作為系統(tǒng)啟動過程的一部分。這樣只要可以通過光盤啟動,就說明系統(tǒng)尚未被破壞過。
如果你創(chuàng)建了一個只讀的分區(qū),那么可以定期從光盤映像重新裝載它們。即使象/boot、/lib和/sbin這樣不能被安裝成只讀的分區(qū),你仍然可以根據(jù)光盤映像來檢查它們,甚至可以在啟動時從另一個安全的映像重新下載它們。
其它方式的備份雖然/etc中的許多文件經(jīng)常會變化,但/etc中的許多內(nèi)容仍然可以放到光盤上用于系統(tǒng)完整性驗證。其它不經(jīng)常進行修改的文件,可以備份到另一個系統(tǒng)(如磁帶)或壓縮到一個只讀的目錄中。這種辦法可以在使用光盤映像進行驗證的基礎上再進行額外的系統(tǒng)完整性檢查。
既然現(xiàn)在絕大多數(shù)操作系統(tǒng)現(xiàn)在都在隨光盤一起提供的,制作一個CD-ROM緊急啟動盤或驗證盤操作起來是十分方便的,它是一種十分有效而又可行的驗證方法。
三、改進系統(tǒng)內(nèi)部安全機制
可以通過改進Linux操作系統(tǒng)的內(nèi)部功能來防止緩沖區(qū)溢出攻擊這種破壞力極強卻又最難預防的攻擊方式,雖然這樣的改進需要系統(tǒng)管理員具有相當豐富的經(jīng)驗和技巧,但對于許多對安全級別要求高的Linux系統(tǒng)來講還是很有必要的。
SolarisDesigner的安全Linux補丁SolarisDesigner用于2.0版內(nèi)核的安全Linux補丁提供了一個不可執(zhí)行的棧來減少緩沖區(qū)溢出的威脅,從而大大提高了整個系統(tǒng)的安全性。
緩沖區(qū)溢出實施起來是相當困難的,因為入侵者必須能夠判斷潛在的緩沖區(qū)溢出何時會出現(xiàn)以及它在內(nèi)存中的什么位置出現(xiàn)。緩沖區(qū)溢出預防起來也十分困難,系統(tǒng)管理員必須完全去掉緩沖區(qū)溢出存在的條件才能防止這種方式的攻擊。正因為如此,許多人甚至包括LinuxTorvalds本人也認為這個安全Linux補丁十分重要,因為它防止了所有使用緩沖區(qū)溢出的攻擊。但是需要引起注意的是,這些補丁也會導致對執(zhí)行棧的某些程序和庫的依賴問題,這些問題也給系統(tǒng)管理員帶來的新的挑戰(zhàn)。
不可執(zhí)行的棧補丁已經(jīng)在許多安全郵件列表(如securedistros@nl.linux.org)中進行分發(fā),用戶很容易下載到它們等。
StackGuardStackGuard是一個十分強大的安全補丁工具。你可以使用經(jīng)StackGuard修補過的gcc版本來重新編譯和鏈接關(guān)鍵的應用。
StackGuard進行編譯時增加了棧檢查以防止發(fā)生棧攻擊緩沖區(qū)溢出,雖然這會導致系統(tǒng)的性能略有下降,但對于安全級別要求高的特定應用來講StackGuard仍然是一個十分管用的工具。
現(xiàn)在已經(jīng)有了一個使用了SafeGuard的Linux版本,用戶使用StackGuard將會更加容易。雖然使用StackGuard會導致系統(tǒng)性能下降約10~20%,但它能夠防止整個緩沖區(qū)溢出這一類攻擊。
增加新的訪問控制功能Linux的2.3版內(nèi)核正試圖在文件系統(tǒng)中實現(xiàn)一個訪問控制列表,這要可以在原來的三類(owner、group和other)訪問控制機制的基礎上再增加更詳細的訪問控制。
在2.2和2.3版的Linux內(nèi)核中還將開發(fā)新的訪問控制功能,它最終將會影響當前有關(guān)ext2文件屬性的一些問題。與傳統(tǒng)的具有ext2文件系統(tǒng)相比它提供了一個更加精確的安全控制功能。有了這個新的特性,應用程序?qū)⒛軌蛟诓痪哂谐売脩魴?quán)限的情況下訪問某些系統(tǒng)資源,如初始套接等。
基于規(guī)則集的訪問控制現(xiàn)在有關(guān)的Linux團體正在開發(fā)一個基于規(guī)則的訪問控制(RSBAC)項目,該項目聲稱能夠使Linux操作系統(tǒng)實現(xiàn)B1級的安全。RSBAC是基于訪問控制的擴展框架并且擴展了許多系統(tǒng)調(diào)用方法,它支持多種不同的訪問和認證方法。這對于擴展和加強Linux系統(tǒng)的內(nèi)部和本地安全是一個很有用的。
四、設置陷井和蜜罐
所謂陷井就是激活時能夠觸發(fā)報警事件的軟件,而蜜罐(honeypot)程序是指設計來引誘有入侵企圖者觸發(fā)專門的報警的陷井程序。通過設置陷井和蜜罐程序,一旦出現(xiàn)入侵事件系統(tǒng)可以很快發(fā)出報警。在許多大的網(wǎng)絡中,一般都設計有專門的陷井程序。陷井程序一般分為兩種:一種是只發(fā)現(xiàn)入侵者而不對其采取報復行動,另一種是同時采取報復行動。
設置蜜罐的一種常用方法是故意聲稱Linux系統(tǒng)使用了具有許多脆弱性的IMAP服務器版本。當入侵者對這些IMAP服務器進行大容量端口掃瞄就會落入陷井并且激發(fā)系統(tǒng)報警。
另一個蜜罐陷井的例子就是很有名的phf,它是一個非常脆弱的Webcgi-bin腳本。最初的phf是設計來查找電話號碼的,但它具有一個嚴重的安全漏洞:允許入侵者使用它來獲得系統(tǒng)口令文件或執(zhí)行其它惡意操作。系統(tǒng)管理員可以設置一個假的phf腳本,但是它不是將系統(tǒng)的口令文件發(fā)送給入侵者,而是向入侵者返回一些假信息并且同時向系統(tǒng)管理員發(fā)出報警。
另外一類蜜罐陷井程序可以通過在防火墻中將入侵者的IP地址設置為黑名單來立即拒絕入侵者繼續(xù)進行訪問。拒絕不友好的訪問既可以是短期的,也可以是長期的。Linux內(nèi)核中的防火墻代碼非常適合于這樣做。
五、將入侵消滅在萌芽狀態(tài)
入侵者進行攻擊之前最常做的一件事情就是端號掃瞄,如果能夠及時發(fā)現(xiàn)和阻止入侵者的端號掃瞄行為,那么可以大大減少入侵事件的發(fā)生率。反應系統(tǒng)可以是一個簡單的狀態(tài)檢查包過濾器,也可以是一個復雜的入侵檢測系統(tǒng)或可配置的防火墻。
AbacusPortSentryAbacusPortSentry是開放源代碼的工具包,它能夠監(jiān)視網(wǎng)絡接口并且與防火墻交互操作來關(guān)閉端口掃瞄攻擊。當發(fā)生正在進行的端口掃瞄時,AbacusSentry可以迅速阻止它繼續(xù)執(zhí)行。但是如果配置不當,它也可能允許敵意的外部者在你的系統(tǒng)中安裝拒絕服務攻擊。
AbacusPortSentry如果與Linux中透明的代理工具一起使用可以提供一個非常有效地入侵防范措施。這樣可以將為所有IP地址提供通用服務的未使用端口重定向到PortSentry中,PortSentry可以在入侵者采取進一步行動之前及時檢測到并阻止端口掃瞄。
AbacusPortSentry能夠檢測到慢掃瞄(slowscan),但它不能檢測到結(jié)構(gòu)化攻擊(structuredattack)。這兩種方式最終目的都要試圖掩蓋攻擊意圖。慢掃瞄就是通過將端口掃瞄分散到很長的時間內(nèi)來完成,而在結(jié)構(gòu)化的攻擊中,攻擊者試圖通過掃瞄或探測多個源地址中來掩蓋自己的真實攻擊目標。
正確地使用這個軟件將能夠有效地
關(guān)鍵詞:Linux,安全管理
閱讀本文后您有什么感想? 已有
0
人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1