¿Tengo que intercambiar conjuntos de IP o puedo agregarlos o eliminarlos sobre la marcha?

¿Tengo que intercambiar conjuntos de IP o puedo agregarlos o eliminarlos sobre la marcha?

Me preguntaba sobre la semántica deipset(8).

¿Es posible agregar una regla que coincida con un conjunto iptablesy luego manipularlo, o solo puedo crear un conjunto e intercambiarlo por un conjunto anterior para aplicarlo a una iptablesregla que coincida con el nombre?Es decir, ¿puedo agregar/eliminar a/desde un conjunto de IP ad hoc, o puedo intercambiar conjuntos completos mientras los conjuntos están en uso activo?


La razón por la que pregunto es la siguiente. Digamos que creo un conjunto

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

... etcétera. Y una regla que permite el acceso a HTTP:

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

¿Qué sucede cuando corro?

ipset add PCs 3.3.3.3

¿La iptablesregla ahora tendrá efecto inmediato también para IP 3.3.3.3?

Vi que es posible usarlo -j SET --add-set ...para manipular conjuntos de IP ad hoc desde dentro de iptableslas reglas. Esto me hace pensar que debería funcionar para manipular un conjunto en cualquier punto dado.

Sin embargo, el ipsetsitio del proyecto parece sugerir que cambiar un conjunto nuevo (ajustado) por otro es la mejor alternativa. Ya sea vía ipset swapo vía ipset restore -!.

¿Alguien puede arrojar luz sobre esto?

Respuesta1

Puede agregar y eliminar IP a sus conjuntos ya definidos sobre la marcha. Esta es una de las ideas detrás de los IPsets: si esto no fuera posible, toda la setextensión iptablesno tendría mucho sentido.

El objetivo principal ipsetera permitirle definir (también dinámicamente) clases de coincidencias (por ejemplo, para incluir dinámicamente en la lista negra hosts maliciosos sin la necesidad de agregar mágicamente una regla para cada host).

extracto de lapágina de inicio de ipset

  • almacene múltiples direcciones IP o números de puerto y coteje con la colección mediante iptables de una sola vez
  • actualizar dinámicamente las reglas de iptables contra direcciones IP o puertos sin penalización en el rendimiento
  • exprese conjuntos de reglas complejos basados ​​en direcciones IP y puertos con una única regla de iptables y benefíciese de la velocidad de los conjuntos de IP

información relacionada