提高Linux系統(tǒng)安全的實(shí)用管理技巧
一、文件系統(tǒng)在Linux系統(tǒng)中,為不同的應(yīng)用程序安裝單獨(dú)的主分區(qū),將關(guān)鍵的分區(qū)設(shè)置為只讀,將大大提高文件系統(tǒng)的安全。具體來(lái)說(shuō),可以使用Linux自身的ext2文件系統(tǒng)的只添加和不可變這兩大屬性進(jìn)行安全
一、文件系統(tǒng)
在Linux系統(tǒng)中,為不同的應(yīng)用程序安裝單獨(dú)的主分區(qū),將關(guān)鍵的分區(qū)設(shè)置為只讀,將大大提高文件系統(tǒng)的安全。具體來(lái)說(shuō),可以使用Linux自身的ext2文件系統(tǒng)的只添加和不可變這兩大屬性進(jìn)行安全性提升。
- 文件分區(qū)
Linux的文件系統(tǒng)可以分成幾個(gè)主要的分區(qū),每個(gè)分區(qū)分別進(jìn)行不同的配置和安裝。常見的分區(qū)包括根目錄/、/usr/local、/var和/home等。/usr可以安裝成只讀并且可以被認(rèn)為是不可修改的。如果/usr中有任何文件發(fā)生了改變,那么系統(tǒng)將立即發(fā)出安全報(bào)警。類似地,/lib、/boot和/sbin的安裝和設(shè)置也應(yīng)該盡量設(shè)置為只讀,并且對(duì)它們的文件、目錄和屬性進(jìn)行的任何修改都會(huì)導(dǎo)致系統(tǒng)報(bào)警。雖然將所有主要的分區(qū)都設(shè)置為只讀是不可能的,但一些分區(qū)如/var等,其自身的性質(zhì)就決定了不能將它們?cè)O(shè)置為只讀,但應(yīng)該不允許它具有執(zhí)行權(quán)限。
- 擴(kuò)展ext2
使用ext2文件系統(tǒng)上的只添加和不可變這兩種文件屬性可以進(jìn)一步提高安全級(jí)別。不可變和只添加屬性只是兩種擴(kuò)展ext2文件系統(tǒng)的屬性標(biāo)志的方法。一個(gè)標(biāo)記為不可變的文件不能被修改,甚至不能被根用戶修改。一個(gè)標(biāo)記為只添加的文件可以被修改,但只能在它的后面添加內(nèi)容,即使根用戶也只能如此??梢酝ㄟ^(guò)chattr命令來(lái)修改文件的這些屬性,如果要查看其屬性值的話可以使用lsattr命令。要想了解更多的關(guān)于ext2文件屬性的信息,可以使用man chattr命令來(lái)尋求幫助。這兩種文件屬性在檢測(cè)黑客企圖在現(xiàn)有的文件中安裝入侵后門時(shí)是很有用的。為了安全起見,一旦檢測(cè)到這樣的活動(dòng)就應(yīng)該立即將其阻止并發(fā)出報(bào)警信息。如果你的關(guān)鍵的文件系統(tǒng)安裝成只讀的并且文件被標(biāo)記為不可變的,入侵者必須重新安裝系統(tǒng)才能刪除這些不可變的文件,但這會(huì)立刻產(chǎn)生報(bào)警,這樣就大大減少了被非法入侵的機(jī)會(huì)。
- 保護(hù)log文件
當(dāng)與log文件和log備份一起使用時(shí),不可變和只添加這兩種文件屬性特別有用。系統(tǒng)管理員應(yīng)該將活動(dòng)的log文件屬性設(shè)置為只添加。當(dāng)log被更新時(shí),新產(chǎn)生的log備份文件屬性應(yīng)該設(shè)置成不可變的,而新的活動(dòng)的log文件屬性又變成了只添加。這通常需要在log更新腳本中添加一些控制命令。
二、備份
在完成Linux系統(tǒng)的安裝以后應(yīng)該對(duì)整個(gè)系統(tǒng)進(jìn)行備份,以后可以根據(jù)這個(gè)備份來(lái)驗(yàn)證系統(tǒng)的完整性,這樣就可以發(fā)現(xiàn)系統(tǒng)文件是否被非法竄改過(guò)。如果發(fā)生系統(tǒng)文件已經(jīng)被破壞的情況,也可以使用系統(tǒng)備份來(lái)恢復(fù)到正常的狀態(tài)。
- CD-ROM備份
當(dāng)前最好的系統(tǒng)備份介質(zhì)就是CD-ROM光盤,以后可以定期將系統(tǒng)與光盤內(nèi)容進(jìn)行比較以驗(yàn)證系統(tǒng)的完整性是否遭到破壞。如果對(duì)安全級(jí)別的要求特別高,那么可以將光盤設(shè)置為可啟動(dòng)的并且將驗(yàn)證工作作為系統(tǒng)啟動(dòng)過(guò)程的一部分。這樣只要可以通過(guò)光盤啟動(dòng),就說(shuō)明系統(tǒng)尚未被破壞過(guò)。如果你創(chuàng)建了一個(gè)只讀的分區(qū),那么可以定期從光盤映像重新裝載它們。即使/boot、/lib和/sbin這樣不能被安裝成只讀的分區(qū),你仍然可以根據(jù)光盤映像來(lái)檢查它們,甚至可以在啟動(dòng)時(shí)從另一個(gè)安全的映像重新下載它們。
- 其他方式的備份
雖然/etc中的許多文件經(jīng)常會(huì)變化,但/etc中的許多內(nèi)容仍然可以放到光盤上用于系統(tǒng)完整性驗(yàn)證。其他不經(jīng)常進(jìn)行修改的文件,可以備份到另一個(gè)系統(tǒng)(如磁帶)或壓縮到一個(gè)只讀的目錄中。這種辦法可以在使用光盤映像進(jìn)行驗(yàn)證的基礎(chǔ)上再進(jìn)行額外的系統(tǒng)完整性檢查?,F(xiàn)在絕大多數(shù)操作系統(tǒng)現(xiàn)在都在隨光盤一起提供的,制作一個(gè)CD-ROM緊急啟動(dòng)盤或驗(yàn)證盤操作起來(lái)是十分方便的,它是一種十分有效而又可行的驗(yàn)證方法。
三、改進(jìn)系統(tǒng)內(nèi)部安全機(jī)制
可以通過(guò)改進(jìn)Linux操作系統(tǒng)的內(nèi)部功能來(lái)防止緩沖區(qū)溢出攻擊這種破壞力極強(qiáng)卻又最難預(yù)防的攻擊方式,雖然這樣的改進(jìn)需要系統(tǒng)管理員具有相當(dāng)豐富的經(jīng)驗(yàn)和技巧,但對(duì)于許多對(duì)安全級(jí)別要求高的Linux系統(tǒng)來(lái)講還是很有必要的。
- SolarisDesigner的安全Linux補(bǔ)丁
SolarisDesigner用于2.0版內(nèi)核的安全Linux補(bǔ)丁提供了一個(gè)不可執(zhí)行的棧來(lái)減少緩沖區(qū)溢出的威脅,從而大大提高了整個(gè)系統(tǒng)的安全性。緩沖區(qū)溢出實(shí)施起來(lái)是相當(dāng)困難的,因?yàn)槿肭终弑仨毮軌蚺袛酀撛诘木彌_區(qū)溢出何時(shí)會(huì)出現(xiàn)以及它在內(nèi)存中的什么位置出現(xiàn)。緩沖區(qū)溢出預(yù)防起來(lái)也十分困難,系統(tǒng)管理員必須完全去掉緩沖區(qū)溢出存在的條件才能防止這種方式的攻擊。但是需要引起注意的是,這些補(bǔ)丁也會(huì)導(dǎo)致對(duì)執(zhí)行棧的某些程序和庫(kù)的依賴問題,這些問題也給系統(tǒng)管理員帶來(lái)的新的挑戰(zhàn)。不可執(zhí)行的棧補(bǔ)丁已經(jīng)在許多安全郵件列表中進(jìn)行分發(fā),用戶很容易下載到它們等。
- StackGuard
StackGuard是一個(gè)十分強(qiáng)大的安全補(bǔ)丁工具。你可以使用經(jīng)StackGuard修補(bǔ)過(guò)的gcc版本來(lái)重新編譯和鏈接關(guān)鍵的應(yīng)用。StackGuard進(jìn)行編譯時(shí)增加了棧檢查以防止發(fā)生棧攻擊緩沖區(qū)溢出。雖然這會(huì)導(dǎo)致系統(tǒng)的性能略有下降,但對(duì)于安全級(jí)別要求高的特定應(yīng)用來(lái)講StackGuard仍然是一個(gè)十分管用的工具。現(xiàn)在已經(jīng)有了一個(gè)使用了SafeGuard的Linux版本,用戶使用StackGuard將會(huì)更加容易。雖然使用StackGuard會(huì)導(dǎo)致系統(tǒng)性能下降約10%~20%,但它能夠防止整個(gè)緩沖區(qū)溢出這一類攻擊。
- 增加新的訪問控制功能
Linux的2.3版內(nèi)核正試圖在文件系統(tǒng)中實(shí)現(xiàn)一個(gè)訪問控制列表,這要可以在原來(lái)的三類(owner、group和other)訪問控制機(jī)制的基礎(chǔ)上再增加更詳細(xì)的訪問控制。在2.2和2.3版的Linux內(nèi)核中還將開發(fā)新的訪問控制功能,它最終將會(huì)影響當(dāng)前有關(guān)ext2文件屬性的一些問題。與傳統(tǒng)的具有ext2文件系統(tǒng)相比,它提供了一個(gè)更加精確的安全控制功能。有了這個(gè)新的特性,應(yīng)用程序?qū)⒛軌蛟诓痪哂谐脩魴?quán)限的情況下訪問某些系統(tǒng)資源,如初始套接字等。
- 基于規(guī)則集的訪問控制
現(xiàn)在有關(guān)的Linux團(tuán)體正在開發(fā)一個(gè)基于規(guī)則的訪問控制(RSBAC)項(xiàng)目,該項(xiàng)目聲稱能夠使Linux操作系統(tǒng)實(shí)現(xiàn)B1級(jí)的安全。RSBAC是基于訪問控制的擴(kuò)展框架并且擴(kuò)展了許多系統(tǒng)調(diào)用方法,它支持多種不同的訪問和認(rèn)證方法。這對(duì)于擴(kuò)展和加強(qiáng)Linux系統(tǒng)的內(nèi)部和本地安全是一個(gè)很有用的。