1. 程式人生 > >伺服器遭到SYN功擊怎麼辦?如何防禦SYN功擊?

伺服器遭到SYN功擊怎麼辦?如何防禦SYN功擊?

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


QQ截圖20181115163716.jpg



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



QQ截圖20180928102343.png


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