LINUX

Cómo usar Ipset para bloquear direcciones IP del país

dirección ip del bloque ipset

Anteriormente, aprendimos cómo podemos restringir o permitir un país en particular usando GeoIP, pero en este artículo, cubriremos cómo podemos bloquear grandes rangos de IP usando el módulo ipset con iptables. IPset es una utilidad basada en la línea de comandos que se utiliza para administrar el marco denominado conjuntos de IP dentro del kernel de Linux. Un conjunto de IP puede almacenar direcciones IP, redes, números de puerto (TCP / UDP), direcciones MAC, nombres de interfaz o combinaciones de ellos de una manera que garantice la velocidad del rayo al comparar una entrada con un conjunto. Es una aplicación asociativa para el firewall iptables de Linux que nos permite configurar reglas de forma rápida y sencilla para bloquear un conjunto de direcciones IP. Aquí, veremos cómo podemos usar el módulo ipset con iptables para bloquear un gran rango de direcciones IP en nuestra máquina basada en Linux.

Actualizando nuestro sistema

En primer lugar, necesitaremos actualizar nuestros paquetes en nuestra máquina Linux para que tengamos nuestros paquetes de software actualizados. Para actualizar nuestro sistema, necesitaremos asegurarnos de que estamos ejecutando como sudo o usuario root. Para cambiar a sudo o acceso root, ejecutaremos el siguiente comando.

$ sudo -s

Una vez que estemos en la raíz, ahora avanzaremos para actualizar y actualizar nuestro sistema.

Sistema basado en Debian

# apt update && apt upgrade

Sistema basado en Redhat

# yum update

Instalación de IPset

La mayoría de las distribuciones de Linux como Ubuntu, Debian vienen con ipset preinstalado en estos días. Pero algunas distribuciones como Centos no están preinstaladas, así que tendremos que instalarlas en ellas. Podemos instalarlo ejecutando el siguiente comando dependiendo de la distribución que esté ejecutando.

Sistema basado en Debian

# apt install ipset

Sistema basado en Redhat

# yum install ipset

Crear conjuntos de IP

Ahora, como tenemos ipset instalado en nuestra máquina, ahora avanzaremos para crear los conjuntos de IP. Aquí necesitaremos crear un ipset que contenga las subredes de red que estamos dispuestos a bloquear o restringir. Entonces, primero necesitaremos obtener la lista de subredes de red que estamos dispuestos a agregar a los conjuntos de ip. Para obtener las subredes de red más recientes, usaremos uno de los sitios más populares. Bloques de IP de país y podemos obtener las listas de las subredes del Selección de país página del sitio. Aquí, hemos seleccionado algunas subredes de red de China con fines de prueba.

1.0.1.0/24
1.0.2.0/23
1.0.8.0/21
1.0.32.0/19
1.1.0.0/24
1.1.2.0/23
1.10.8.0/23
1.202.0.0/15
5.10.68.240/29
5.10.70.40/30
5.10.72.16/29

Aquí hay una muestra de subredes de red que bloquearemos en este artículo, pero en el mundo real, tendremos una gran cantidad de subredes. Entonces, usaremos cualquier lenguaje de programación / scripting y generaremos la lista de comandos de la siguiente manera.

# ipset create countryblock nethash
# ipset add countryblock 1.0.1.0/24
# ipset add countryblock 1.0.2.0/23
# ipset add countryblock 1.0.8.0/21
# ipset add countryblock 1.1.0.0/24
# ipset add countryblock 1.1.2.0/23
# ipset add countryblock 1.10.8.0/23
# ipset add countryblock 1.202.0.0/15
# ipset add countryblock 5.10.68.240/29
# ipset add countryblock 5.10.70.40/30
# ipset add countryblock 5.10.72.16/29

IPset agregar subred

Aplicar el conjunto de IP

Ahora, cuando nuestros conjuntos de ip estén listos, aplicaremos esos conjuntos de ip para bloquearlos usando el módulo ipset con iptables.

# iptables -A INPUT -m set --match-set countryblock src -j DROP

El comando anterior bloquea el tráfico que se origina en los rangos de IP definidos por las subredes en el conjunto generado anteriormente llamado countryblock. Por lo tanto, todas las direcciones IP enumeradas allí se bloquearán.

Aplicar las reglas de forma permanente

Si estamos listos para probar nuestras configuraciones y reglas, es posible que deseemos que los cambios sean persistentes para que las reglas se apliquen en cada reinicio. Para hacerlo, necesitaremos ejecutar los siguientes comandos correspondientes a nuestro controlador de firewall.

En un sistema basado en Debian

# ipset save > /etc/ipset.up.rules
# iptables-save > /etc/iptables/rules.v4

Una vez que ejecutamos el comando anterior para guardar las reglas, ahora crearemos las reglas cargadas en cada reinicio agregando las siguientes líneas en /etc/rc.local.

ipset restore < /etc/ipset.up.rules
iptables-restore < /etc/iptables/rules.v4

ipset debian persistente

En el sistema basado en RHEL

#ipset save > /etc/ipset.up.rules
# iptables-save > /etc/sysconfig/iptables

Una vez que guardemos las reglas de ipset e iptables, ahora agregaremos los comandos de restauración de manera similar a como hicimos para Debian. Solo agregaremos los siguientes comandos dentro /etc/rc.local expediente.

ipset restore < /etc/ipset.up.rules
iptables-restore < /etc/sysconfig/iptables

De esta forma, podemos bloquear ciertos bloques de ips usando el módulo ipset con iptables. Podemos crear conjuntos de ip de diferentes países para que podamos aplicarlos según la necesidad. Este tipo de método es muy eficiente cuando necesitamos bloquear cierto tráfico que se origina en un país o región específicos, pero permitimos los rangos de IP que necesitamos. Hay muchos módulos de firewall e iptables para estos, pero es bastante fácil, rápido y práctico de usar. Por lo tanto, si tiene alguna pregunta, sugerencia o comentario, escríbalos en el cuadro de comentarios a continuación. Gracias ! Disfrutar 🙂

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar