iptables 最近模块:删除早于的条目

iptables 最近模块:删除早于的条目

我正在使用iptables recent模块:

-A INPUT -m recent --rsource --name PORTSCAN --set -j DROP

上面的行将有问题的 IP 地址添加到/proc/net/xt_recent/PORTSCAN.

现在我正在寻找一种方法如何定期(cron 作业)检查此列表,并删除早于n几个小时的条目。

我正在使用 的xt_recent.ip_pkt_list_tot=1选项recent。这意味着,当看到数据包时,我不会多次保留。我只保留最后一次看到数据包的时间。

所以列表/proc/net/xt_recent/PORTSCAN看起来像这样:

src=185.242.5.46 ttl: 240 last_seen: 4312349727 oldest_pkt: 1 4312349727
src=184.100.29.188 ttl: 57 last_seen: 4312673918 oldest_pkt: 1 4312673918
src=184.157.25.107 ttl: 57 last_seen: 4312086204 oldest_pkt: 1 4312086204

我如何定期“清除”此列表,以便只保留不到n几个小时的条目?

是否iptables提供了一些方法来做到这一点?或者这需要我用一些自定义脚本来完成吗?

答案1

看起来这正是--reap您正在寻找的,来自iptables 扩展手册页,关于 的部分recent

--reap 该选项只能与 一起使用--seconds。使用时,这将导致早于最后给定秒数的条目被清除。

至于它是如何工作的,这里是Linux内核的相关源代码部分

相关内容