1. 程式人生 > >Linux系統發現佔用CPU100%的程序及處理

Linux系統發現佔用CPU100%的程序及處理

伺服器使用的是Centos7.2 64位系統。發現伺服器異常,一般先想到用top命令檢視佔用CPU高的程序,但如果是高手入侵,可能會替換掉你係統的一些重要命令。所以建議裝系統後,把諸如/usr/bin目錄的top、ps、kill等重要命令先備份好。一旦發現被入侵,先檢查這些命令是否被篡改,如果你使用凶手的kill,當然怎麼也殺不死對方了。
這裡發現沒異常,直接使用top命令:
top檢視
這裡是一個名為sustse程序,先別急著kill掉,把PID號(9594)記下來。用ps命令檢視程序詳細資訊:
ps檢視資訊
趕緊去/var/tmp/目錄下看一下,有哪些檔案:
/var/tmp/目錄檔案
果然有可疑的sustse檔案,而且sustse3、kworkerds和kworkerds3與該檔案大小一致,應該是副本,都刪除掉,並殺死sustse程序:

kill -9 9594

光結束這個程序還不夠,一般都會有定時任務能夠重啟的,這裡使用crontab命令檢視下:
crontab定時任務
果然有,使用crontab –e命令將其刪除(操作與vi類似修改檔案):
crontab刪除任務
這樣惡意程式碼暫時就無法啟動了,再檢查一下啟動檔案是否有日期異常的,防止系統重啟後惡意程式又被啟動。需要檢查/etc/rc.d目錄下的init.d和rcx.d(x從0-6)所有檔案。
然後緝拿真凶,使用who命令檢視一下使用者資訊:
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

設定完後別忘了重啟防火牆才能生效。