萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 病毒防護

Linux 實戰防禦 SYN Flood 攻擊:從流量分析到核心參數調優與 iptables 限速

事件現場

早晨發現官網極慢,登入伺服器執行 netstat -anp | awk '{print $6}' | sort | uniq -c | sort -rn 發現 SYN_RECV 高達 589,單一 IP(山東棗莊聯通)發出 570 個 SYN 請求,導致正常用戶無法連線。無硬體防火牆權限,只能在本機緩解。

SYN Flood 攻擊原理

TCP 三次握手:Client 送 SYN → Server 回 SYN+ACK 進入 SYN_RECV → Client 送 ACK 進入 ESTABLISHED。攻擊者僅發 SYN 不回 ACK,佔滿半連接佇列,正常連線被擠出。

Linux 核心參數調優

# 查看預設值
sysctl -a | grep _syn
net.ipv4.tcp_max_syn_backlog = 1024   # 半連接佇列長度
net.ipv4.tcp_syncookies = 1           # 啟用 SYN Cookie 防禦
net.ipv4.tcp_synack_retries = 5       # SYN+ACK 重試次數
net.ipv4.tcp_syn_retries = 5          # SYN 重試次數

調整後參數(寫入 /etc/rc.d/rc.local 永久生效)

sysctl -w net.ipv4.tcp_max_syn_backlog=2048   # 加大佇列
sysctl -w net.ipv4.tcp_syncookies=1           # 確保開啟
sysctl -w net.ipv4.tcp_synack_retries=3       # 減少重試,加速釋放
sysctl -w net.ipv4.tcp_syn_retries=3

立即生效:直接執行上述 sysctl -w 指令無需重啟。

iptables 限速規則輔助防禦

# SYN Flood 限速:每秒 1 個 SYN
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

# 防埠掃描:限制 RST 回應
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# 防 Ping of Death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# 保存規則
iptables-save > /etc/sysconfig/iptables

效果驗證

調整後再次檢查:SYN_RECV 從 589 降至 20 內,攻擊流量明顯被緩解。

總結

核心參數調優(擴大佇列、啟用 SYN Cookie、降低重試)配合 iptables 限速,可在無硬體防火牆權限下有效緩解 SYN Flood。生產環境建議再加上專業 DDoS 清洗服務。

copyright © 萬盛學電腦網 all rights reserved