如何保護(hù)Linux操作系統(tǒng)安全技巧
Linux操作系統(tǒng)的安全性是有目共睹的。但是世上萬(wàn)物不可能十全十美那么,作為一名Linux用戶,我們?cè)撊绾瓮ㄟ^(guò)合理的方法來(lái)防范Linux的安全呢?下面學(xué)習(xí)啦小編搜集和整理了一些防范Linux安全的幾則措施,現(xiàn)在把它們貢獻(xiàn)出來(lái),懇請(qǐng)各位網(wǎng)友能不斷補(bǔ)充和完善。
如何保護(hù)Linux操作系統(tǒng)安全技巧
1、禁止使用ping命令
ping命令是計(jì)算機(jī)之間進(jìn)行相互檢測(cè)線路完好的一個(gè)應(yīng)用程序,計(jì)算機(jī)間交流數(shù)據(jù)的傳輸沒(méi)有經(jīng)過(guò)任何的加密處理,因此我們?cè)谟胮ing命令來(lái)檢測(cè)某一個(gè)服務(wù)器時(shí),可能在因特網(wǎng)上存在某個(gè)非法分子,通過(guò)專門(mén)的黑客程序把在網(wǎng)絡(luò)線路上傳輸?shù)男畔⒅型靖`取,并利用偷盜過(guò)來(lái)的信息對(duì)指定的服務(wù)器或者系統(tǒng)進(jìn)行攻擊,為此我們有必要在Linux系統(tǒng)中禁止使用Linux命令。在linux里,如果要想使ping沒(méi)反應(yīng)也就是用來(lái)忽略icmp包,因此我們可以在Linux的命令行中輸入如下命令:echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all ;如果想恢復(fù)使用ping命令,就可以輸入echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all命令。
2、注意對(duì)系統(tǒng)及時(shí)備份
為了防止系統(tǒng)在使用的過(guò)程中發(fā)生以外情況而難以正常運(yùn)行,我們應(yīng)該對(duì)Linux完好的系統(tǒng)進(jìn)行備份,最好是在一完成Linux系統(tǒng)的安裝任務(wù)后就對(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)。備份信息時(shí),我們可以把完好的系統(tǒng)信息備份在CD-ROM光盤(pán)上,以后可以定期將系統(tǒng)與光盤(pán)內(nèi)容進(jìn)行比較以驗(yàn)證系統(tǒng)的完整性是否遭到破壞。如果對(duì)安全級(jí)別的要求特別高,那么可以將光盤(pán)設(shè)置為可啟動(dòng)的并且將驗(yàn)證工作作為系統(tǒng)啟動(dòng)過(guò)程的一部分。這樣只要可以通過(guò)光盤(pán)啟動(dòng),就說(shuō)明系統(tǒng)尚未被破壞過(guò)。
3、改進(jìn)登錄服務(wù)器
將系統(tǒng)的登錄服務(wù)器移到一個(gè)單獨(dú)的機(jī)器中會(huì)增加系統(tǒng)的安全級(jí)別,使用一個(gè)更安全的登錄服務(wù)器來(lái)取代Linux自身的登錄工具也可以進(jìn)一步提高安全。在大的Linux網(wǎng)絡(luò)中,最好使用一個(gè)單獨(dú)的登錄服務(wù)器用于syslog服務(wù)。它必須是一個(gè)能夠滿足所有系統(tǒng)登錄需求并且擁有足夠的磁盤(pán)空間的服務(wù)器系統(tǒng),在這個(gè)系統(tǒng)上應(yīng)該沒(méi)有其它的服務(wù)運(yùn)行。更安全的登錄服務(wù)器會(huì)大大削弱入侵者透過(guò)登錄系統(tǒng)竄改日志文件的能力。
4、取消root命令歷史記錄
在linux下,系統(tǒng)會(huì)自動(dòng)記錄用戶輸入過(guò)的命令,而root用戶發(fā)出的命令往往具有敏感的信息,為了保證安全性,一般應(yīng)該不記錄或者少記錄root的命令歷史記錄。為了設(shè)置系統(tǒng)不記錄每個(gè)人執(zhí)行過(guò)的命令,我們可以在linux的命令行下,首先用cd命令進(jìn)入到/etc命令,然后用編輯命令來(lái)打開(kāi)該目錄下面的profile文件,并在其中輸入如下內(nèi)容:
HISTFILESIZE=0
HISTSIZE=0
當(dāng)然,我們也可以直接在命令行中輸入如下命令:ln -s /dev/null ~/.bash_history 。5、為關(guān)鍵分區(qū)建立只讀屬性
Linux的文件系統(tǒng)可以分成幾個(gè)主要的分區(qū),每個(gè)分區(qū)分別進(jìn)行不同的配置和安裝,一般情況下至少要建立/、/usr/local、/var和/home等分區(qū)。/usr可以安裝成只讀并且可以被認(rèn)為是不可修改的。如果/usr中有任何文件發(fā)生了改變,那么系統(tǒng)將立即發(fā)出安全報(bào)警。當(dāng)然這不包括用戶自己改變/usr中的內(nèi)容。/lib、/boot和/sbin的安裝和設(shè)置也一樣。在安裝時(shí)應(yīng)該盡量將它們?cè)O(shè)置為只讀,并且對(duì)它們的文件、目錄和屬性進(jìn)行的任何修改都會(huì)導(dǎo)致系統(tǒng)報(bào)警。
當(dāng)然將所有主要的分區(qū)都設(shè)置為只讀是不可能的,有的分區(qū)如/var等,其自身的性質(zhì)就決定了不能將它們?cè)O(shè)置為只讀,但應(yīng)該不允許它具有執(zhí)行權(quán)限。
6、殺掉攻擊者的所有進(jìn)程
假設(shè)我們從系統(tǒng)的日志文件中發(fā)現(xiàn)了一個(gè)用戶從我們未知的主機(jī)登錄,而且我們確定該用戶在這臺(tái)主機(jī)上沒(méi)有相應(yīng)的帳號(hào),這表明此時(shí)我們正在受到攻擊。為了保證系統(tǒng)的安全被進(jìn)一步破壞,我們應(yīng)該馬上鎖住指定的帳號(hào),如果攻擊者已經(jīng)登錄到指定的系統(tǒng),我們應(yīng)該馬上斷開(kāi)主機(jī)與網(wǎng)絡(luò)的物理連接。如有可能,我們還要進(jìn)一步查看此用戶的歷史記錄,再仔細(xì)查看一下其他用戶是否也已經(jīng)被假冒,攻擊者是否擁有有限權(quán)限;最后應(yīng)該殺掉此用戶的所有進(jìn)程,并把此主機(jī)的IP地址掩碼加入到文件hosts.deny中。
7、改進(jìn)系統(tǒng)內(nèi)部安全機(jī)制
我們可以通過(guò)改進(jìn)Linux操作系統(tǒng)的內(nèi)部功能來(lái)防止緩沖區(qū)溢出,從而達(dá)到增強(qiáng)Linux系統(tǒng)內(nèi)部安全機(jī)制的目的,大大提高了整個(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ū)溢出存在的條件才能防止這種方式的攻擊。正因?yàn)槿绱?,許多人甚至包括Linux Torvalds本人也認(rèn)為這個(gè)安全Linux補(bǔ)丁十分重要,因?yàn)樗乐沽怂惺褂镁彌_區(qū)溢出的攻擊。但是需要引起注意的是,這些補(bǔ)丁也會(huì)導(dǎo)致對(duì)執(zhí)行棧的某些程序和庫(kù)的依賴問(wèn)題,這些問(wèn)題也給系統(tǒng)管理員帶來(lái)的新的挑戰(zhàn)。
8、對(duì)系統(tǒng)進(jìn)行跟蹤記錄
為了能密切地監(jiān)視黑客的攻擊活動(dòng),我們應(yīng)該啟動(dòng)日志文件,來(lái)記錄系統(tǒng)的運(yùn)行情況,當(dāng)黑客在攻擊系統(tǒng)時(shí),它的蛛絲馬跡都會(huì)被記錄在日志文件中的,因此有許多黑客在開(kāi)始攻擊系統(tǒng)時(shí),往往首先通過(guò)修改系統(tǒng)的日志文件,來(lái)隱藏自己的行蹤,為此我們必須限制對(duì)/var/log文件的訪問(wèn),禁止一般權(quán)限的用戶去查看日志文件。當(dāng)然,系統(tǒng)中內(nèi)置的日志管理程序功能可能不是太強(qiáng),我們應(yīng)該采用專門(mén)的日志程序,來(lái)觀察那些可疑的多次連接嘗試。另外,我們還要小心保護(hù)好具有根權(quán)限的密碼和用戶,因?yàn)楹诳鸵坏┲懒诉@些具有根權(quán)限的帳號(hào)后,他們就可以修改日志文件來(lái)隱藏其蹤跡了。
9、使用專用程序來(lái)防范安全
有時(shí),我們通過(guò)人工的方法來(lái)監(jiān)視系統(tǒng)的安全比較麻煩,或者是不周密,因此我們還可以通過(guò)專業(yè)程序來(lái)防范系統(tǒng)的安全,目前最典型的方法為設(shè)置陷井和設(shè)置蜜罐兩種方法。所謂陷井就是激活時(shí)能夠觸發(fā)報(bào)警事件的軟件,而蜜罐(honey pot)程序是指設(shè)計(jì)來(lái)引誘有入侵企圖者觸發(fā)專門(mén)的報(bào)警的陷井程序。通過(guò)設(shè)置陷井和蜜罐程序,一旦出現(xiàn)入侵事件系統(tǒng)可以很快發(fā)出報(bào)警。在許多大的網(wǎng)絡(luò)中,一般都設(shè)計(jì)有專門(mén)的陷井程序。陷井程序一般分為兩種:一種是只發(fā)現(xiàn)入侵者而不對(duì)其采取報(bào)復(fù)行動(dòng),另一種是同時(shí)采取報(bào)復(fù)行動(dòng)。
10、將入侵消滅在萌芽狀態(tài)
入侵者進(jìn)行攻擊之前最常做的一件事情就是端號(hào)掃瞄,如果能夠及時(shí)發(fā)現(xiàn)和阻止入侵者的端號(hào)掃瞄行為,那么可以大大減少入侵事件的發(fā)生率。反應(yīng)系統(tǒng)可以是一個(gè)簡(jiǎn)單的狀態(tài)檢查包過(guò)濾器,也可以是一個(gè)復(fù)雜的入侵檢測(cè)系統(tǒng)或可配置的防火墻。我們可以采用諸如Abacus Port Sentry這樣專業(yè)的工具,來(lái)監(jiān)視網(wǎng)絡(luò)接口并且與防火墻交互操作,最終達(dá)到關(guān)閉端口掃瞄攻擊的目的。當(dāng)發(fā)生正在進(jìn)行的端口掃瞄時(shí),Abacus Sentry可以迅速阻止它繼續(xù)執(zhí)行。但是如果配置不當(dāng),它也可能允許敵意的外部者在你的系統(tǒng)中安裝拒絕服務(wù)攻擊。正確地使用這個(gè)軟件將能夠有效地防止對(duì)端號(hào)大量的并行掃瞄并且阻止所有這樣的入侵者。
11、嚴(yán)格管理好口令
前面我們也曾經(jīng)說(shuō)到過(guò),黑客一旦獲取具有根權(quán)限的帳號(hào)時(shí),就可以對(duì)系統(tǒng)進(jìn)行任意的破壞和攻擊,因此我們必須保護(hù)好系統(tǒng)的操作口令。通常用戶的口令是保存在文件/etc/passwd文件中的,盡管/etc/passwd是一個(gè)經(jīng)過(guò)加密的文件,但黑客們可以通過(guò)許多專用的搜索方法來(lái)查找口令,如果我們的口令選擇不當(dāng),就很容易被黑客搜索到。因此,我們一定要選擇一個(gè)確保不容易被搜索的口令。另外,我們最好能安裝一個(gè)口令過(guò)濾工具,并借用該工具來(lái)幫助自己檢查設(shè)置的口令是否耐得住攻擊。