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