Networking
linux命令使用netstat和iptables防止dos攻擊
我想為每個 ip 丟棄超過 200 個請求以防止 ddos 攻擊。這是我用來檢測每個 ip 的請求數的命令:
netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr
現在我想將發出超過 200 個請求的所有 IP 地址添加到 IPtables 以 DROP 輸入和輸出。
您還可以使用 iptables 來限制傳入連接的速率。例如,如果您不希望來自某個源的每分鐘連接數超過 200:
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP
您可以創建一個
ipset
. 這樣,您可以根據需要向集合中添加任意數量的 IP,而無需修改iptables
規則集。ipset -N myset iphash ipset -A myset 1.1.1.1 ipset -A myset 2.2.2.2
或者,在您的情況下,使用腳本的輸出,並使用以下內容閱讀它:
while read a; do ipset -A myset "$a"; done < <(your script here)
並在您的
iptables
規則中引用它:iptables -A INPUT -m set --set myset src -j DROP
閱讀手冊頁以獲取更多詳細資訊和選項。
還有其他方法可以直接使用來減輕DDOS 攻擊
iptables
。閱讀有關和模組的iptables
手冊頁部分。connlimit``recent