ipset (Español)

From ArchWiki

Esta traducción de Ipset fue revisada el 2020-08-07. Si existen cambios puede actualizarla o avisar al equipo de traducción.

ipset es una aplicación complementaria para el cortafuegos de Linux iptables. Le permite configurar reglas para bloquear rápida y fácilmente un conjunto de direcciones IP, entre otras cosas.

Instalación

Instale ipset de los repositorios oficiales.

Configuración

Bloquear una lista de conexiones de red

Comience creando un nuevo «set« (conjunto) de direcciones de conexiones de red. Esto crea un nuevo conjunto de «hash» de direcciones de red «net» llamado «myset»:

# ipset create myset hash:net

o

# ipset -N myset nethash

Añada al conjunto cualquier dirección IP que desee bloquear:

# 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

Finalmente, configure iptables para bloquear cualquier dirección de ese conjunto. Esta orden añadirá una regla en la parte superior de la cadena «INPUT» para que «-m» coincida con el conjunto llamado «myset» de ipset (--match-set) cuando es un paquete «src» y «DROP», descartándolo:

# iptables -I INPUT -m set --match-set myset src -j DROP

Bloquear una lista de direcciones IP

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

Añada 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

Finalmente, configure iptables para bloquear cualquier dirección de 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 del reinicio. Para que el ipset creado sea persistente, debe hacer lo que sigue.

Primero, guarde el ipset en /etc/ipset.conf:

# ipset save > /etc/ipset.conf

Luego active ipset.service, que funciona de manera similar a iptables.service para restaurar las reglas iptables.

Bloquear con PeerGuardian y otras listas de bloqueo

La herramienta pg2ipset-gitAUR del autor de Maeyanie.com, junto con el script ipset-update.sh se pueden usar con cron para actualizar automáticamente varias listas de bloqueo. Actualmente, de manera predeterminada, se implementa el bloqueo de: país, nodo de salida tor y lista pg2 de Bluetrack.

Otras órdenes

Para ver los conjuntos:

# ipset list

o

# ipset -L

Para eliminar un conjunto llamado «myset»:

# ipset destroy myset

o

# ipset -X myset

Para eliminar todos los conjuntos:

# ipset destroy

Consulte la página de manual de ipset para obtener más información.

Optimización

La herramienta iprangeAUR puede ayudar a reducir las entradas en ipset.conf fusionando rangos adyacentes o eliminando rangos superpuestos. Esto puede mejorar el rendimiento del enrutador/cortafuegos si el tamaño de la tabla es enorme. Esta herramienta también puede convertir una lista de nombres de servidores a IP.

Aunque ipset está diseñado para poder escalar bien, eso no significa que lo haga infinitamente. En particular, algunas paises tienen espacios de direcciones IP muy grandes, lo que hará que el bloqueo geográfico sea ineficiente.