記一次伺服器被黑經歷

起因

啟動服務時,後臺報了一個mysql錯誤:

Packet for query is too large (1151 > 1024)

記一次服務器被黑經歷

mysql錯誤

巧的是,這個問題前幾天剛解決過,解決方案是將mysql數據庫的 max_allowed_packet 從 1024Byte 修改為了4M(4194304Byte),這不到一個星期的時間,參數又被改了回來,非常奇怪!

查看mysql配置文件,發現上次的配置仍存在,說明這個配置依然生效,之所以max_allowed_packet被改回了1024,是通過命令行操作的(set global max_allowed_packet = 1024)

# cat /etc/my.cnf

[mysqld]

max_allowed_packet = 4M

問了同事,沒人改動過該參數,google一番,得到的回答是:服務器被黑了!

查看用戶錯誤登錄列表

通過lastb查看登錄失敗日誌,居然刷刷刷的往下翻頁,看來登錄失敗的記錄不少,寫入到文件中,看了下大小,居然有1.6M大小,真是鍥(sang)而(xin)不(bing)舍(kuang)!

# lastb > /tmp/fail.txt

# ll -h fail.txt

-rw-r--r-- 1 root root 1.6M Jul 3 21:05 fail.txt

記一次服務器被黑經歷

查看系統登錄日誌

# cat /var/log/secure

不出所料的瘋狂刷屏。在網上找了個腳本進行了統計,結果也是很讓人非常震驚!

# grep 'Failed password for root from' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -rn > /tmp/failIp.txt

記一次服務器被黑經歷

IP地址

最高的這個IP地址61.177.172.107居然對服務器發起了10435次嘗試連接!

記一次服務器被黑經歷

記一次服務器被黑經歷

解決方案

能修改mysql數據庫的參數,說明用戶名密碼已經被破解,之所以沒有什麼破壞,猜想可能只是想給予一個警告,或者其他目的。但不管怎麼說,看來服務器安全還是很薄弱的。

以下是我們的解決方案:

  1. 修改root的密碼,使其更為複雜難以破解
  2. 寫了一個腳本,將失敗10次以上的IP添加進 /etc/hosts.deny文件中,阻止暴力破解

除了以上的方法,網上還有使用denyhosts的程序,也可達到類似的目的。

安全無小事,僅以此文祭奠一下這臺可憐的服務器!

記一次服務器被黑經歷


分享到:


相關文章: