iptablesを使用して特定のポートでSyn-floodを防ぐ方法は?

iptablesを使用して特定のポートでSyn-floodを防ぐ方法は?

最近、毎秒1つのTCP接続のみを許可するポート2421のサーバーでSyn-Floodを防止しようとしていましたが、既存の接続を停止しないでください。 。私のスクリプトに問題がありますか?

#!/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

関連情報