Я задавался вопросом о семантикеipset(8)
.
Можно ли добавить правило, соответствующее набору iptables
, а затем манипулировать этим набором, или я могу только создать набор и заменить его на более старый набор, чтобы применить его к iptables
правилу, соответствующему имени?Т.е. могу ли я добавлять/удалять IP-адреса из набора IP-адресов ad hoc или могу ли я обмениваться целыми наборами, пока они активно используются?
Причина, по которой я спрашиваю, заключается в следующем. Допустим, я создаю набор
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 ad hoc из iptables
правил. Это заставляет меня думать, что это должно работать для манипулирования набором в любой заданной точке.
Однако ipset
сайт проекта, похоже, предполагает, что замена нового (отрегулированного) набора на другой — лучшая альтернатива. Будь то через ipset swap
или через ipset restore -!
.
Может ли кто-нибудь пролить свет на этот вопрос?
решение1
Вы можете добавлять и удалять IP-адреса в уже определенные вами наборы на лету. Это одна из идей, стоящих за IPsets: если бы это было невозможно, все set
расширение iptables
не имело бы особого смысла.
Основная цель ipset
состояла в том, чтобы дать вам возможность определять (также динамически) классы совпадений (например, для динамического занесения в черный список вредоносных хостов без необходимости магическим образом добавлять по одному правилу для каждого отдельного хоста).
выдержка издомашняя страница ipset
- хранить несколько IP-адресов или номеров портов и сопоставлять их с коллекцией iptables одним махом
- динамически обновлять правила iptables для IP-адресов или портов без потери производительности
- выражайте сложные наборы правил на основе IP-адресов и портов с помощью одного правила iptables и пользуйтесь скоростью наборов IP-адресов