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 个端口运行端口扫描时,我的日志文件增长了 33 MB。这是因为 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 分钟。

相关内容