1. 程式人生 > >發現流量出現異常後,我是如何處理的

發現流量出現異常後,我是如何處理的

前兩天接到一個做開發的朋友電話,說他們客戶一臺伺服器開機後,所有一個網段的機器上網都變慢了,他遠端操作這臺伺服器也一卡一卡的。

我第一反應就是機器被人攻擊過了,因為我之前也遇到過類似的現象。大概都是tomcat管理密碼設定的比較弱,被人上傳了一些war包,導致伺服器拼命往外發包,或者是被人惡意上傳了一些php檔案,也是往外發送大量的資料包。總而言之,往外發送大量資料包基本都是被人攻擊過啦!下面看看我是怎麼處理的。

1、首先我給他一個指令碼,確認一下是網絡卡異常流量引起。注意網絡卡改成你的外網網絡卡名稱。

運維網站

然後執行這個指令碼

運維網站1

執行之後我們會看到偶爾流出的流量驚人。

2、問題確定了,我們就好辦了,上圖我截圖很少,而且我還發現了很有規律的事情,大概每二十多秒就會發出3-4個左右相當大的資料包。既然有規律那就肯定是後臺有程式在執行。我查看了一下伺服器是不是運行了tomcat?結果webapps目錄下沒有一些異常的jar包。我再查了一下是不是apache什麼的,結果伺服器上就只發現運行了oracle,根據自己的排查故障經驗,我和朋友說了把oracle關閉。縮小故障查詢範圍,好確認不是oracle引起的。

3、在用ps -ef看了一下基本看不出,因為程序太多了,而且很多系統的程序我也不認識,沒有看到什麼異常程序。只有一個tomcat程序,kill之後一會又起來了,很奇怪。肯定是什麼守護程式一直啟動。

4、上面說了一開機啟動就會出現這個現象,那麼還肯定是啟動服務或者啟動腳本里面寫了什麼程式碼,結果rc.local檔案也正常。那麼看/etc/init.d目錄下的啟動指令碼,有沒有新增的或者可疑的?果然發現了一個functions和DbSecuritySpt檔案,我將這兩個檔案移走,然後故障依舊。看了一下DbSecuritySpt檔案裡面內容:

運維網站4

初步一看這是一個很正常的指令碼檔案啊!一般病毒檔案都是打不開的。問了我朋友說不是他們寫的,那我只能將這個檔案移走,然後也很二逼似的把那個functions檔案也移走了,結果他們重啟機器後,告訴我伺服器起不來啦!截圖如下:

運維網站5

一看上圖的報錯我心想肯定是那個functions檔案移走報錯了。不過還好這是個虛擬機器,我遠端連線宿主機上。

然後在上圖介面輸入root密碼後,執行mount -o remount rw /後將functions檔案移到/etc/init.d目錄下重新啟動。但是重啟還是報錯,說要檢查檔案系統塊檔案,又執行fsck -y /dev/sda後提示重啟,重啟後系統正常執行。沒有tomcat那個程序了,但是還是偶爾往外拼命往外發包啊!

5、我又上網查了一下很多網友說是將/tmp目錄下有一些的檔案裡面寫了PID號,但是我根據這些PID號沒有找到這些程序,我把這兩個檔案移走了。重啟系統故障依舊。而且操作很卡真的很噁心,加上我自己的筆記本一上午關機7次,應該硬體老化的原因,比較2010年買的。哎!此處心中一萬個草泥馬飄過。

6、又諮詢了朋友說iftop工具能看的出來,我試了也不行,爆卡,後來又是是iptraf工具,這兩個工具都沒安裝,又花了很多安裝時間,結果也看不出來啊!拿一個iptraf工具我們看看,如下圖所示:

運維網站6

7、又看了一下chkconfig開機啟動有沒有異常的服務,一看服務太多了,也很難發現。

8、我在想是不是每次連續傳送幾個大包的時候是不是那個程序也會佔用很高的CPU使用率呢?再一邊觀察流量指令碼執行的情況,一邊又執行top看看是不是哪個程序導致。有一個getty程序偶爾能跑到70%多,結果一檢視是有6個終端,然後關閉了多餘的終端,但是還是異常。也沒發現別的程序佔用很高的CPU使用率。

9、最後我想用netstat -an | more測試,一個一個排查當前伺服器開放埠,因為我朋友說客戶也不是很懂linux,開放了很多埠暴露在網際網路上。發現了一個xxxx.51545->119.147.145.221:6001異常,然後我查看了一下這個51545埠對應的程序,如下所示:

運維網站7

這個程序執行的正是getty命令,說明和我上面一個getty程序偶爾跑到70%多使用率,查的正好符合。我嘗試將這個1587程序號kill掉,再觀察一段時間指令碼流出流量基本為0了,也就是正常了。也就是說這臺伺服器通過51545埠去連線網際網路上的119.147.145.221這臺伺服器的6001埠,查看了這個IP地址是廣東電信的。

但是事情還沒有完結,上面說了肯定是開機啟動程式裡面執行的,而且這個目的119.147.145.221地址肯定是在病毒檔案裡面隱藏的。我進到/etc/rc.d目錄下看了一下:

運維網站8

看樣子每個啟動級別都被人置放病毒檔案啦!

運維網站9

都是軟體連哈!不過這個檔案被我第四步的時候移走了,然後我們還看到了一個可疑的selinux檔案,因為它和DbSecuritySpt檔案的時間戳和別的啟動指令碼檔案不一樣。這就測試你的眼睛尖不尖了哈~~

運維網站10

再看看這個/usr/bin/bsd-port目錄下的東東哈!

運維網站11

趕緊刪除/etc/init.d/selinux檔案和/usr/bin/bsd-port目錄。然後重啟再試試看,系統一切正常!網絡卡流量也一切正常。然後修改root密碼,但是很遺憾這裡查不出是因為系統的漏洞還是程式的漏洞導致被惡意上傳程式碼檔案的。

運維網站12

故障處理總結:
1、伺服器一定要盡少量的使用密碼登入,最好是金鑰加密碼登入。
2、少開一些和業務無關的埠。
3、查問題一定要用排除法。眼睛要尖。
4、還是對系統很多指令碼和程序不是很熟悉。
4、雖然解決了,但是這個機器還是被人上傳過的,不確定是不是還會有一些不穩定的因素,建議最好還是重新安裝系統。