深入内核 Netfilter 机制,编写高效的数据包匹配规则,并解决 conntrack 跟踪表溢出导致的网络丢包问题。

一、 iptables 防御 SYN Flood 与连接跟踪调优

# 调优 conntrack 跟踪表上限
sysctl -w net.netfilter.nf_conntrack_max=1048576

# 防御 SYN Flood 攻击规则
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

# 阻断畸形数据包
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# 放行已建立状态的连接 (ESTABLISHED)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT