我是否必須交換 IP 集,或者可以動態添加/刪除嗎?

我是否必須交換 IP 集,或者可以動態添加/刪除嗎?

我想知道的語義ipset(8)

是否可以新增與集合相符的規則iptables,然後操作該集合,或者我只能建立一個集合並將其交換為舊的集合,以便將其應用於與iptables名稱相符的規則?即,我可以臨時新增或刪除 IP 集嗎?


我問的原因如下。假設我創建了一個集合

ipset create PCs hash:ip
ipset add PCs 1.1.1.1
ipset add PCs 2.2.2.2

....等等。以及允許存取 HTTP 的規則:

iptables -A INPUT -p tcp --dport 80 -m set --set PCs src -j ACCEPT

當我跑步時會發生什麼事:

ipset add PCs 3.3.3.3

iptables規則現在也會立即對 IP 3.3.3.3 生效嗎?

我發現可以使用規則-j SET --add-set ...內的臨時 IP 集進行操作iptables。這讓我認為在任何給定點操作一個集合都應該可行。

然而,該ipset專案網站似乎表明,將新的(調整後的)集合替換為另一個集合是更好的選擇。無論是透過ipset swap還是透過ipset restore -!

誰能闡明這一點?

答案1

您可以在已定義的集合中動態新增和刪除 IP。這是 IPsets 背後的想法之一:如果這是不可能的,set那麼整個擴展iptables就沒有太大意義。

其主要目標ipset是使您能夠定義(也是動態的)匹配類別(例如,動態地將惡意主機列入黑名單,而無需為每個主機神奇地添加一條規則)。

摘自ipset主頁

  • 儲存多個IP位址或連接埠號碼並與iptables的集合一次性匹配
  • 根據 IP 位址或連接埠動態更新 iptables 規則,而不會影響效能
  • 使用單一 iptables 規則表達複雜的 IP 位址和基於連接埠的規則集,並受益於 IP 集的速度

相關內容