第一次自己一個人全權負責做游戲服務器,對於Linux安全並不太懂,所以就在昨天,服務器遭到了攻擊,剛開始,只是發現服務器的帶寬占滿了,以為是帶寬不夠用,可是想想,弱聯網游戲對帶寬占用也不高啊而且帶寬加大一倍也於事無補,在UCloud控制台看到帶寬的波形圖,好幾次都達到頂峰,於是我在服務器用iftop查看了網絡流量監控,發現服務器總往一個ip發送數據包,一發就是1G,這流量,不僅耗帶寬,還燒錢啊,網上搜索后發現,服務器可能被攻擊了,被黑客入侵當作肉雞瘋狂的發數據包,導致網絡流量出口帶寬瞬間占滿,在不明白我如何被攻擊以及如何根除的情況下,我只能首先封掉了這個ip的出入口,然后網絡情況暫時穩定了,但我明白,問題並沒有根除,但由於我還有其他事要做,暫時沒管,還有一些功能等着我開發,昨天暫時也穩定了,然而今天有時間了,我就想辦法徹底根除他,通過追蹤,發現了病毒的位置,但是刪不掉,因為他不僅加入了系統服務,而且定時執行腳本,檢測病毒文件是否存在,不存在則創建,於是這個文件怎么刪都刪不掉,最后還是通過網上搜索,終於發現別人跟我一樣的情況,最終得以根除。作為linux安全小白,這樣的問題,我必須記錄下來,並且記錄下解決步驟,以備后患,linux安全確實仍是我的一片空白區,還要多多學習啊,很有可能是我的服務器密碼設置過於簡單,遭到黑客的暴力破解,或者是黑客利用bash漏洞植入病毒。
以下是兩篇當時搜到的有用的文章,感謝原文作者 http://www.apelearn.com/bbs/thread-7409-1-1.html http://www.kaisir.com/2015/07/ji-yi-ze-linux-bing-du-di-chu-li.html
以下我的追蹤以及根除步驟:
- 查看網絡流量實時監控,發現服務器向一個ip發送大量大數據包,命令:iftop
- 即時封殺目的ip,命令:iptables –A OUTPUT –d “127.0.0.1” –j DROP(進口流量則是INPUT)
- 查看可疑進程,發現進程管理器中總出現一個隨機十位字母的進程,kill掉會換個名字再次出現,命令:top / kill
- 通過pid揪出可疑進程的位置(其實已經確定是它了!),然后就能發現這個萬惡的根源,命令:ls -l /proc/pid
- 刪掉它,發現於事無補,真是頑固的病毒,於是用strace命令追蹤打開的病毒文件,命令:strace –tt –p 端口號
- 通過追蹤日志發現他打開一個libkill.so文件(不同情況可能名字不一樣),刪掉這個文件,發現還刪不掉,會再自動生成
- 服務器重啟也仍然存在問題,所以懷疑被加入了系統服務,於是關掉可疑系統服務(其實看名字就看出來,那些十位隨機字母的服務都是病毒),命令:ntsysv
- 去系統服務下刪掉垃圾文件,命令:cd /etc/init.d ,病毒文件全部rm掉
- 再重啟服務器,問題沒有了,但libkill.so文件依然存在,需要繼續解決
- 經查,/etc/cron.hourly文件夾下有一個可疑的腳本文件kill.sh,打開一看,這就是自動生成libkill.so病毒的根源,刪除這個腳本文件,再刪除libkill.so。OK!問題解決!
此次經歷讓我意識到我Linux安全方面知識的空缺,linux平時的安全性沒有得到保障,目前病毒已根除,服務器密碼也改的異常復雜(我自己都記不住。。。)