Linux 服務器被 DDoS / CC 時應急的封 IP 方法


當我們的 Linux 服務器受到少量攻擊時,這時候我們可以使用 iptables 來手動封禁這些攻擊者的IP。

如果攻擊比較大時,有時我們根本無法響應過來,iptables 基本也就無能為力了,那我們就只能與機房聯系讓他們想想辦法了。

對於少量攻擊處理的步驟應該是:獲取IP --> 封IP

獲取攻擊者 IP

通過 netstat 獲取

如果攻擊者攻擊的是你的 Web 服務的話,默認是80端口,我們就可以使用下面的代碼!

如果攻擊的不是80端口的話,將下面的兩個數字80改為你被攻擊的端口即可!

如果你需要顯示多條記錄,請自己手動將 head -n20 調大即可

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 | netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20 

 

通過 tcpdump 獲取

在使用之前,請確保您的系統已經安裝了 tcpdump 。

Debian / Ubuntu 系列快速安裝如下

apt-get install -y tcpdump

 

安裝后,使用下面的代碼即可。

需要注意的是, -i eth0 指的是你主網卡,如果你是 OpenVZ 的虛擬機的話,就改成您的網卡名venet0

同樣你需要設置的是, port 80 設置你被攻擊的端口, -c 1000 指 tcpdump 需要統計的記錄數,他會在達到這個數之后顯示結果。 head -20 設置你要顯示的記錄條數

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20 

 

封禁 IP

通過上面的步驟,我們已經知道是誰在攻擊我們了,現在我們就可以將他們拉入 iptables 禁止他們連接到服務器了。

封禁單個 IP

iptables -I INPUT -s 211.1.2.1 -j DROP

 

封禁一個 IP 段

iptables -I INPUT -s 211.1.2.0/16 -j DROP

 

如果需要更多關於 iptables 的教程,由於不在本帖需要講述的內容當中,請自行 Google 答案。

參考資料

Linux被DDOS&CC攻擊解決實例


免責聲明!

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



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