我应用以下规则作为 DDoS 预防的一部分。
防止欺骗数据包
-A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP"
-A INPUT -s 255.0.0.0/8 -j DROP
-A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP"
-A INPUT -s 0.0.0.0/8 -j DROP
防止隐形扫描和 TCP SYN 泛洪
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "Stealth scan attempt?"
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
现在我们要强制规定每个 IP 地址每分钟不允许的连接数。为此,我计划使用--limit
扩展。不过现在看来还是推荐使用--cstate
扩展。很少询问..
- iptables 每分钟/秒允许每个 ip 地址的默认连接数是多少。
- 默认每分钟/秒连接数?操作系统级别的任何此类限制
假设我想允许每秒 60 个连接,如果超出该限制,我将强制每秒 25 个连接。对于这个,下面的规则很好
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 25/s --limit-burst 60 -j ACCEPT /sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP
添加第一条规则后是否还需要第二条规则。