服務器使用的是Centos7.2 64位系統。發現服務器異常,一般先想到用top命令查看佔用CPU高的進程,但如果是高手入侵,可能會替換掉你係統的一些重要命令。所以建議裝系統後,把諸如/usr/bin目錄的top、ps、kill等重要命令先備份好。一旦發現被入侵,先檢查這些命令是否被篡改,如果你使用兇手的kill,當然怎麼也殺不死對方了。
這裏發現沒異常,直接使用top命令:
這裏是一個名爲sustse進程,先別急着kill掉,把PID號(9594)記下來。用ps命令查看進程詳細信息:
趕緊去/var/tmp/目錄下看一下,有哪些文件:
果然有可疑的sustse文件,而且sustse3、kworkerds和kworkerds3與該文件大小一致,應該是副本,都刪除掉,並殺死sustse進程:
kill -9 9594
光結束這個進程還不夠,一般都會有定時任務能夠重啓的,這裏使用crontab命令查看下:
果然有,使用crontab –e命令將其刪除(操作與vi類似修改文件):
這樣惡意代碼暫時就無法啓動了,再檢查一下啓動文件是否有日期異常的,防止系統重啓後惡意程序又被啓動。需要檢查/etc/rc.d目錄下的init.d和rcx.d(x從0-6)所有文件。
然後緝拿真兇,使用who命令查看一下用戶信息:
沒有異常,檢查一下系統最近系統登錄信息,看看是否被入侵,使用lastlog命令:
除了自己root登錄過,其他沒有異常。再使用last命令列出當前和曾經登入系統的用戶信息:
這裏除了自己登錄外,還有個218.68.199.250的IP登錄過,在18:15分還重啓過系統,問題就是他了,入侵者可能創建一個新的存放用戶名及密碼文件,可以查看/etc/passwd及/etc/shadow文件:
passwd-是passwd文件最後一次備份,對比兩個文件,可以鑑別是否被修改掉。Shadow文件與此類似。
通過查看/var/log/secure日誌文件,嘗試發現入侵者的信息,這裏查看密碼驗證通過的信息:
爲防止再次入侵,不僅要修改root密碼,最好修改ssh登錄端口,使用命令“vi /etc/ssh/sshd_config”將默認的22端口改爲別的,比如2233。別忘在防火牆裏開放這個端口,要不登錄不了了,終端執行:
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2233 -j ACCEPT
iptables-save
爲保險起見,查看一下已開放的端口:
iptables -nL --line-number
然後重啓ssh服務,執行命令:
systemctl restart sshd.service
這時原來連接會斷開的,然後把端口改爲2233再重新登錄即可。另外如果確認某個IP是惡意的訪問(比如上文的218.68.199.250),可以在防火牆中將其禁掉:
iptables -I INPUT -s 218.68.199.250 -j DROP
設置完後別忘了重啓防火牆才能生效。