我最近试图在端口 2421 上的服务器上防止 Syn-Flood,每秒只允许一个 TCP 连接,并且不应停止现有连接,因此我使用了以下脚本,但它似乎没有执行以下操作:诡计。我的脚本有问题吗?
#!/bin/bash
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 2421 --syn -m limit --limit 1/second --limit-burst 3 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED -j ACCEPT
答案1
你的代码确实有效。问题出在其他地方。
您可以检查您的规则是否完全受到影响
iptables -nvL INPUT
也许您不小心使用了 IPv6(如果使用的地址是localhost
;请改用 127.0.0.1)。
或者除了iptables
它的后继者之外nftables
正在使用。检查与
nft list ruleset