SYN洪水攻擊是DDOS攻擊中最常見的攻擊類型之一。是一種利用TCP 協議缺陷,攻擊者向被攻擊的主機發送大量偽造的TCP連接請求,從而使得被攻擊方主機服務器的資源耗盡(CPU 滿負荷或內存不足) 的攻擊方式。SYN攻擊的目標不止於服務器,任何網絡設備,都可能會受到這種攻擊,針對網絡設備的SYN攻擊往往會導致整個網絡癱瘓。企業遭到SYN攻擊該如何防御呢?墨者安全通過以往的高防經驗來分享一下如何利用iptables來緩解SYN攻擊。

1、修改等待數
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
2、啟用syncookies
sysctl -w net.ipv4.tcp_syncookies=1
3、修改重試次數
sysctl -w net.ipv4.tcp_syn_retries = 0
重傳次數設置為0,只要收不到客戶端的響應,立即丟棄該連接,默認設置為5次
4、限制單IP並發數
使用iptables限制單個地址的並發連接數量:
iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
5、限制C類子網並發數
使用iptables限制單個c類子網的並發鏈接數量:
iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 24 -j REJECT
6、限制單位時間內連接數
設置如下:
iptables -t filter -A INPUT -p tcp --dport 80 -m --state --syn -m recent --set
iptables -t filter -A INPUT -p tcp --dport 80 -m --state --syn -m recent --update --seconds 60 --hitcount 30 -j DROP
7、修改modprobe.conf
為了取得更好的效果,需要修改/etc/modprobe.conf
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
作用:記錄10000個地址,每個地址60個包,ip_list_tot最大為8100,超過這個數值會導致iptables錯誤
8、限制單個地址最大連接數
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j D

通過上述這些設置,可以緩解SYN攻擊帶來的影響,但如果遭到幾百幾千G的T級流量洪水攻擊,那只能選擇像墨者安全那樣的商業級的防DDOS服務了。墨者盾高防可以隱藏服務器真實IP,利用新的WAF算法過濾技術,清除DDOS異常流量,保障服務器正常運行。