iptablesは一度だけ記録します。

iptablesは一度だけ記録します。

ポートスキャンを検出して記録するには、次のiptablesコマンドを実行します。

iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on FORWARD: "

これは素晴らしい作品です!ただし、すべての65535ポートに対してポートスキャンを実行すると、ログファイルが33MB増加しました。これは、iptablesが20番目の新しいポート接続の後に一度書き込まれ、それ以降は他のすべての接続が書き込まれるためです。

最初の20回の接続以降にのみ、または20回の接続が行われるたびに記録するには、どのタイプのコマンドを実行する必要がありますか?

ベストアンサー1

私は方法を見つけた:

iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1  -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "Port Scan on FORWARD: "

デフォルトでは、ルールが最初にヒットしてから1分に制限されています。

おすすめ記事