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