【DDOS】巧用iptables 幾招搞定 SYN洪水攻擊!
SYN Flood (SYN洪水) 是種典型的DoS (Denial of Service,拒絕服務) 攻擊,屬於DDos攻擊的一種。遭受攻擊後伺服器TCP連線資源耗盡,最後停止響應正常的TCP連線請求。儘管這種攻擊已經出現了十多年,但它的變種至今仍能看到。雖然能有效對抗SYN洪泛的技術已經存在,但是沒有對於TCP實現的一個標準的補救方法出現。今天小編將詳述這種攻擊原理以及對抗SYN洪水的方法~
攻擊原理
正常的三次握手:
- 先發起一個 SYN=1 的包,並且帶一個序列號( Seq );
- 伺服器收到這個包以後,將這個資料放入到一個佇列中,這個佇列叫 syn_table 。並且傳送一個返回包,作為響應,這個返回包有自己的序列號( Seq ),以及一個 Ack , Ack 的值就是客戶端發來的 Seq 值加一;
- 客戶端收到返回資訊以後,將伺服器的 Seq 加一作為 Ack 又發給伺服器;
- 伺服器收到這第三個包,驗證沒問題以後,就將這個連線放入到 request_sock_queue,三次握手完成。
SYN Flood 主要是利用了TCP協議的三次握手的缺陷,在這個攻擊中,Flood帶有一系列的syn資料包,每個資料包都會導致服務端傳送SYN-ACK響應,然後伺服器等待SYN+ACK之後的第三次握手ACK,由於客戶端是軟體生成的虛擬IP,永遠不會再傳送ACK響應服務端,服務端會利用從傳機制直到超時後刪除,整個系統資源也會被佇列積壓消耗,導致伺服器無法對正常的請求進行服務。
如何判斷自己是否遭受 SYN 攻擊?
檢測SYN攻擊非常的簡單,當你在伺服器上看到大量的半連線狀態時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat 工具來檢測SYN攻擊:
- # netstat -n -p TCP
反饋如圖
防禦 SYN Flood攻擊
配置iptables規則
Iptables防火牆我們可以理解為Linux系統下的訪問控制功能,我們可以利用Iptables來配置一些規則來防禦這種攻擊。強制SYN資料包檢查,保證傳入的tcp連結是SYN資料包,如果不是就丟棄。
- #iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP
強制檢查碎片包,把帶有傳入片段的資料包丟棄。
- #iptables -A INPUT -f -j DROP
丟棄格式錯誤的XMAS資料包。
- #iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
丟棄格式錯誤的NULL資料包。
- #iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
當Iptables配置完成後我們可以使用nmap命令對其驗證
- # nmap -v -f FIREWALL IP
- # nmap -v -sX FIREWALL IP
- # nmap -v -sN FIREWALL IP
例如:
其他防禦方式:
除此之外針對SYN攻擊的幾個環節,我們還可以使用以下處理方法:
方式1:減少SYN-ACK資料包的重發次數(預設是5次)
- sysctl -w net.ipv4.tcp_synack_retries=3
- sysctl -w net.ipv4.tcp_syn_retries=3
方式2:使用SYN Cookie技術
- sysctl -w net.ipv4.tcp_syncookies=1
方式3:增加backlog佇列(預設是1024):
- sysctl -w net.ipv4.tcp_max_syn_backlog=2048
方式4:限制SYN併發數:
- iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT --limit 1/s
相關文章
- SYN洪水攻擊原理
- 遊戲伺服器防ddos攻擊,三招搞定ddos攻擊遊戲伺服器
- TCP洪水攻擊(SYN_SENT)的診斷和處理TCP
- 阻止SYN Flood攻擊
- Linux安全之三大攻擊(SYN,DDOS,CC)原理及處理Linux
- 利用iptables來緩解和預防DDOS及CC攻擊
- ddos攻擊伺服器的幾種方式伺服器
- 聚焦DDoS安全,分享防禦DDoS攻擊的幾大有效方法
- 幾種常見的DDOS攻擊應對策略
- TCP/IP協議的SYN攻擊TCP協議
- Nginx防止DDOS攻擊Nginx
- 淺談DDOS攻擊攻擊與防禦
- tcp三次握手和SYN攻擊TCP
- DDoS Deflate防Linux下DDOS攻擊Linux
- 什麼是DDoS攻擊?哪些行業最需要預防DDoS攻擊?行業
- 分散式拒絕服務攻擊 DDoS攻擊分散式
- 一文讀懂DDoS,分享防禦DDoS攻擊的幾大有效方法
- DDoS攻擊工具HOIC分析
- LINUX下SYN FLOOD攻擊及LINUX下SYN攻防簡述Linux
- 如何防範DDoS攻擊,使自己的網站減緩DDoS攻擊呢?網站
- SYN Flood攻擊的基本原理(轉)
- 預防ddos攻擊檢測
- DDOS 攻擊的防範教程
- 用 JavaScript 對抗 DDOS 攻擊JavaScript
- App 被刷影片流量如何防禦,DDoS攻擊一招解決APP
- DDOS攻擊分為幾大類?網路安全入門教程
- DDoS攻擊與CC攻擊的區別是什麼?
- 教你如何在Linux中防止SYN Flood攻擊Linux
- iptables限制連線數(如sftp) 以及 謹防CC/DDOS攻擊的配置 ( connlimit模組)FTPMIT
- 在Linux中,什麼是DDoS攻擊?如何在Linux中防禦DDoS攻擊?Linux
- DDoS攻擊激增,分享高效可靠的DDoS防禦方案
- 淺析DDOS攻擊防護思路
- DDOS攻擊常見的型別型別
- 淺談DDos攻擊與防禦
- 基於TCP反射DDoS攻擊分析TCP反射
- 黑色產業鏈分析丨DDOS攻擊產業
- 用 JavaScript 對抗 DDOS 攻擊 (下)JavaScript
- python版本DDOS攻擊指令碼Python指令碼