Linux
我是否必須交換 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 -!
。任何人都可以闡明這一點嗎?
您可以動態添加和刪除 IP 到您已經定義的集合。這是 IPsets 背後的想法之一:如果這不可能,那麼整個
set
擴展iptables
就沒有多大意義。的主要目標
ipset
是使您能夠定義(也是動態的)匹配類別(例如,用於動態地將惡意主機列入黑名單,而無需為每個主機神奇地添加一條規則)。摘自ipset 首頁
- 儲存多個 IP 地址或埠號,並一舉與 iptables 的集合匹配
- 針對 IP 地址或埠動態更新 iptables 規則而不會降低性能
- 使用單個 iptables 規則表達複雜的基於 IP 地址和埠的規則集,並受益於 IP 集的速度