![如何让 ipset 条目“年龄”?](https://linux22.com/image/37029/%E5%A6%82%E4%BD%95%E8%AE%A9%20ipset%20%E6%9D%A1%E7%9B%AE%E2%80%9C%E5%B9%B4%E9%BE%84%E2%80%9D%EF%BC%9F.png)
我正在尝试使用 建立已成功登录系统的客户端白名单ipset
。我必须有哪些选项来让条目老化,以便以后可以根据其寿命丢弃它?
有没有比下面概述的想法更好的方法?
我没有找到直接提供的任何内容,因此我试图确定/ipset
范围内是否存在这样的设施。ipset
iptables
现在我想到的唯一想法是使用一个 cronjob 每 X 分钟或几小时交换列表。因此,作为示例,如果我在 20:00 到 20:59 之间的某个时间,我会有一个whitelist
处于活动状态的列表,以及下一小时的列表(例如 21:00 )。whistelist_21
任何客户端连接现在将被添加到活动状态whitelist
和下一小时(或给定时间段)的白名单中。然后,在每个完整的小时(或给定的时间段),一个 cronjob - 例如在上述情况下的 21:00 - 将现有的替换whitelist
为whitelist_21
一个并处理(现已重命名)whitelist
。例如:
ipset swap whitelist whitelist_21
ipset destroy whitelist_21
答案1
结果该man
页面描述了我正在寻找的内容。它被恰当地调用timeout
,并且可以在向 IP 集添加条目时指定。由于搜索错误的术语,我错过了它。
如果需要覆盖设置的默认值,则可以在创建集合时以及稍后为添加的每个条目指定默认超时值。
示例来自ipset(8)
:
ipset create test hash:ip timeout 300
ipset add test 192.168.0.1 timeout 60
ipset -exist add test 192.168.0.1 timeout 600