Firewall

如何讓 ipset 條目“老化”?

  • November 8, 2015

我正在嘗試建立已成功登錄系統的客戶端的白名單,使用ipset. 我有哪些選項可以讓條目年齡,以便我以後可以根據它的年齡丟棄它?

有沒有比下面概述的想法更好的方法?

我沒有找到ipset直接提供的任何東西,所以我試圖確定這樣的設施是否存在於ipset/的範圍內iptables


現在我想出的唯一想法是使用一個 cronjob 每 X 分鐘或幾小時交換一次列表。例如,如果我在 20:00 和 20:59 之間的某個時間,我將有一個whitelist處於活動狀態的列表,以及下一小時的列表(比如 21:00 )。現在whistelist_21連接的任何客戶端都將在下一小時(或給定時間段)添加到活動和白名單中。然後在每個完整小時(或給定時間段)一個 cronjob - 例如在上述情況下的 21:00 - 將現有的交換為一個並處理(現在重命名)。例如:whitelist``whitelist``whitelist_21``whitelist

ipset swap whitelist whitelist_21
ipset destroy whitelist_21

結果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

引用自:https://unix.stackexchange.com/questions/131711