Los conjuntos de IP son colecciones almacenadas de direcciones IP, rangos de red, direcciones MAC, números de puerto y nombres de interfaz de red. La herramienta iptables puede aprovechar los conjuntos de IP para una coincidencia de reglas más eficiente. Por ejemplo, supongamos que desea eliminar el tráfico que se origina en uno de varios rangos de direcciones IP que sabe que son maliciosos. En lugar de configurar reglas para cada rango en iptables directamente, puede crear un conjunto de IP y luego hacer referencia a ese conjunto en una regla de iptables. Esto hace que sus conjuntos de reglas sean dinámicos y, por lo tanto, más fáciles de configurar; cada vez que necesite agregar o intercambiar identificadores de red que son manejados por el firewall, simplemente cambie el conjunto de IP.
El comando ipset le permite crear y modificar conjuntos de IP. Primero debe establecer un nombre, un método de almacenamiento y un tipo de datos para su conjunto, como:
# ipset create range_set hash:net
En este caso, range_set es el nombre, hash es el método de almacenamiento y net es el tipo de datos. Luego, puede agregar los rangos al conjunto:
# ipset add range_set 178.137.87.0/24 # ipset add range_set 46.148.22.0/24
Luego, usa iptables para configurar una regla para eliminar el tráfico cuya fuente coincida con los rangos en este conjunto:
# iptables -I INPUT -m set --match-set range_set src -j DROP
Alternativamente, para eliminar el tráfico cuyo destino coincida con el conjunto:
iptables -I OUTPUT -m set --match-set range_set dst -j DROP
SINTAXIS
La sintaxis del comando ipset es:
# ipset [options] {command}
Bloqueo de una lista de redes
1. Comience por crear un nuevo "conjunto" de direcciones de red. Esto crea un nuevo conjunto "hash" de direcciones de red "red" llamado "myset".
# ipset create myset hash:net
o
# ipset -N myset nethash
2. Agregue cualquier dirección IP que desee bloquear al conjunto.
# ipset add myset 14.144.0.0/12 # ipset add myset 27.8.0.0/13 # ipset add myset 58.16.0.0/15 # ipset add myset 1.1.1.0/24
3. Finalmente, configure iptables para bloquear cualquier dirección en ese conjunto. Este comando agregará una regla en la parte superior de la cadena "INPUT" para que "-m" coincida con el conjunto denominado "myset" de ipset (–match-set) cuando sea un paquete "src" y "DROP", o bloque, eso.
# iptables -I INPUT -m set --match-set myset src -j DROP
Bloqueo de una lista de direcciones IP
1. Comience creando un nuevo "conjunto" de direcciones IP. Esto crea un nuevo conjunto "hash" de direcciones "ip" llamado "myset-ip".
# ipset create myset-ip hash:ip
o
# ipset -N myset-ip iphash
2. Agregue cualquier dirección IP que desee bloquear al conjunto.
# ipset add myset-ip 1.1.1.1 # ipset add myset-ip 2.2.2.2
3. Finalmente, configure iptables para bloquear cualquier dirección en ese conjunto.
# iptables -I INPUT -m set --match-set myset-ip src -j DROP
Hacer que ipset sea persistente
El ipset que ha creado se almacena en la memoria y desaparecerá después de reiniciar. Para que el ipset sea persistente, debe hacer lo siguiente:
1. Primero guarde el ipset en /etc/ipset.conf :
# ipset save > /etc/ipset.conf
2. Luego habilite ipset.service, que funciona de manera similar a iptables.service para restaurar las reglas de iptables.
Otros Comandos
1. Para ver los conjuntos:
# ipset list
o
# ipset -L
2. Para eliminar un conjunto llamado "myset":
# ipset destroy myset
o
# ipset -X myset
3. Para eliminar todos los conjuntos:
# ipset destroy