如何使用 iptables 防止特定端口上的 Syn-flood?

如何使用 iptables 防止特定端口上的 Syn-flood?

我最近试图在端口 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

相关内容