筆者ubuntu小小小白,p都不懂?,F在問題雖然解決了,但是仍然不知道是怎么造成的,應該怎么加密端口,是不是被弄成礦機了。。。只能常備份文件多觀察系統狀態了。
操作系統: Ubuntu 16.04
問題:一個叫ntpd的進程占用cpu利用率過高
pid 4313顯示ntpd,用了400%的cpu。
Network Time Protocol daemon(ntpd) 常駐進程,應該是用來對時的。我嘗試kill 4313進程,過不了幾秒鐘,這個進程換了一個pid,又出來了。重啟系統該進程自動啟動。當時第一反應是進程可能自己死循環了。。
上網學習了一下ubuntu的ntpd相關,找到了有人有macOS的類似問題,有可能是對時的進程鏈到舊的server上了[1][2]。所以我打開settings -> date & time -> ?Automatic Date & Time, Automatic Time Zone, 沒有效果。Cpu利用率還是居高不下。失?。?/b>
后來看stackoverflow上有人說ntpd有很多種,Ubuntu默認用的不是ntp/ntpd,而應該是叫ntpdate(當然到現在我也不知道這是不是真的),并且建議用命令設置ntpd[3]。這時候我發現我沒有ntp/ntpd/ntpq的命令:
man ntpd # No manual entry for ntpd
which ntpd ?#顯示為空,我根本沒安裝ntpd
我本以為這種對時的東西是系統里自帶的,在找安裝包的時候發現也沒有:
dpkg -l | grep ntp ?#只有這個顯示有Network Time Protocol Daemon,ntpd沒有
我以為ntp,ntpd這些東西是相互調用的,因為我沒裝ntpd所以出問題了,于是我就
sudo apt-get install ntpd
安裝上了這個包,重啟了服務器。結果cpu還是400%居高不下。失?。?/b>于是又刪了。
再深入調查的時候發現有點不對頭了。。沒有安裝東西在運行,怎么可能呢?
終于在中文網站找到了有人和我一樣的問題,root下的ntpd利用率過高[4]. ?他最后的結論是被攻擊了。于是我按照他的步驟一步一步做(有些當時沒截圖已經找不到了,就筆錄了):
ps -ef | grep ntpd ?#輸出有一個root下的進程
但是沒有/usr/sbin/ntpd這東西。
pstree -p ?#顯示開了8個進程(kill了以后又自動生成了14503的ntpd進程,仍然占400%cpu)
跟上面網站里的人遭遇很相似。
在進程目錄下找執行的程序:
cd /proc/14503
sudo ls -l exe
輸出:
定位到執行文件
strace的輸出,看不懂。。但是應該不是什么好東西。。因為和那哥們兒的輸出結果類似:
sudo strace -p
sudo strace -cp
找到 /cpu/,只有/bin一個文件夾,里面是些實行文件和奇奇怪怪的東西,“?”文件是啥。。有的打開了也看不了。。
這里面也有cron.d文件。雖然看不懂,但是估計偽裝進程的程序都在這兒了。
把bin文件夾全TM刪了,殺掉進程:
sudo rm -rv bin
sudo kill 14503
cpu利用率回復了,并且進程沒有再復活。
目前沒有重啟,不知道刪沒刪干凈,會不會重啟后再次出現。htop的界面一直開著觀察。
ref:?
1, https://discussions.apple.com/thread/7390949
2,?https://apple.stackexchange.com/questions/275453/macos-ntpd-uses-more-than-100-of-cpu
3,?https://askubuntu.com/questions/254826/how-to-force-a-clock-update-using-ntp
4,?https://lax.v2ex.com/t/471499