我正在使用iptables recent模块:
-A INPUT -m recent --rsource --name PORTSCAN --set -j DROP上面的行向/proc/net/xt_recent/PORTSCAN添加了违规的IP地址。
现在,我正在寻找一种方法,如何定期(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提供了一些方法来实现这一点吗?还是我必须用一些自定义脚本来完成这个任务?
发布于 2021-01-20 13:33:15
看起来--reap就是您正在寻找的,来自扩展手册页的关于recent的一节:
--reap此选项只能与--seconds一起使用。当使用时,这将导致比最后给定的秒数更早的条目被清除。
关于它的工作方式,下面是Linux内核的相关源代码部分。
https://unix.stackexchange.com/questions/629401
复制相似问题