真實記錄疑似Linux病毒導致服務器 帶寬跑滿的解決過程


案例描述

  由於最近我在重構之前的APP,需要和server端進行數據交互,發現有一個現象,那么就是隔1~2天總會發生獲取數據超時的問題,而且必須要重啟服務器才能解決。早在之前,我有留意到這個問題,但是由於這個服務器目前只有我測試的時候才有訪問,其他的途徑的數據交互幾乎沒有,但是這次必須要把這個問題解決了,因為APP我肯定要上線的。

按理分析

  服務器是基於阿里雲的 Linux-CentOs 6.5,由nginx解析,首先登陸阿里雲官網去查看ECS雲服務器的運行情況,顯示的是運行中,和以往一樣,費用沒到期,然后在瀏覽器中打開官網,一樣是訪問不了,當時第一個想法就是帶寬過載,為什么不是代碼問題呢?因為不能訪問是周期性的問題,肯定不是代碼問題。為了確認想法,去阿里雲發了次工單,請求下阿里的技術人員的幫助。

 

  阿里的大牛回復和我所想的一樣,這時候就是進終端進一步解決了。我一般使用 XShell 軟件來管理linux服務器終端的,由於外部都無法訪問,那么XShell也就無法遠程了,的確如此,帶寬跑滿,哪怕是遠程終端都是不可能的。這時候由從官網進入終端。

  登陸后,先用命令 sar -n DEV 1 1 查看下網卡流量的數據包和比特流等情況,1 秒 取一次值,發現是震驚的。

  首先eth0 是內網卡,eth1是外網, rxpck 這個是接收的數據包,txpck 是發出的數據包,rxkB 是接收的字節, txkB 是發出的字節。發現公網在大量向外發數據包,且我上面說到,這個服務器目前只有我測試APP才有請求過來,再怎么發也不會達到19萬多/s,還有這個數據會變的,有時候達到 20 萬。是不是感覺有點 DDOS 的感覺,不過,rxpck 接收的並不多,這是DDOS 的幾率有點低,初步懷疑是有惡意程序在大量發包。

  為了看看 eth1 到底發了多少,輸入 ifconfig 回車,我擦,2點多 T 啊。

  為了弄清楚是目前運行的線程有哪些,我打算采用了 nethogs 這個工具,它可以監控進程實時的流量,可悲劇的是,在這之前沒安裝它,然后就打算當場安裝,然而,當我采用 yum install nethogs 安裝的時候,發現一直處於超時(time out)的情況,ping 了下百度,發現延時很高。果然,肯定受當前的情況影響。

  既然查不了線程的實時流量,只能查看當前的進程了,輸入 ps -ef ,看到有一個名為 vcers 的程序占用 CPU 利用率高達 34% +

   ls 一下,在 root 目錄,再 find -name “vcers” ,發現只有這么一個

解決問題

  猜想,可能是它在大量發包, 於是直接  kill -TERM PID號 殺掉了 vcers 的進程,再 sar -n DEV 1 1 看下,恢復正常

  刷新下APP,有數據了,再打開下官網鏈接,正常訪問。趕緊下載了 nethogs 以防萬一,最后再打印下 進程信息,確認 vcers 沒再運行, 下次再出現的話,若還過載,就徹底刪除 vcers 的可運行程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM