Tutoriales

Cómo bloquear las IP sospechosas con iptables y fail2ban

Hoy, le mostraré una forma simple pero efectiva de bloquear automáticamente IPS sospechosos usando iptables y fail2ban como iptables y fail2ban. Estas herramientas son potentes y livianas para ayudar a su servidor de Linux a proteger contra ataques de fuerza bruta, bots o cualquier tráfico malicioso.

Esta guía es perfecta para principiantes y es perfecto para administradores de sistemas, estudiantes o cualquier persona que ejecute un VPS, un servidor web o incluso un servidor de inicio de Linux.

¿Qué son iptables y fail2ban?

Antes de ir a Configuración, comprendamos las dos herramientas clave que estamos usando – iptables y Fail2Ban.

iptables

iptables es una utilidad de firewall de línea de comando integrada en la mayoría de las distribuciones de Linux que aplica un conjunto de reglas (llamadas Cadena de políticas) Control del tráfico de red.

Estas reglas pueden filtrar paquetes según la dirección IP, el número de puerto o el protocolo. Puedes pensar en ello iptables Cuando un Gatekeeper se encuentra en la puerta del servidor, solo se permite ingresar el tráfico en el que se confía mientras bloquea el resto.

Fail2ban

Publicaciones relacionadas

por otro lado, Fail2Ban Es una herramienta de monitoreo logarítmica que puede detectar y responder automáticamente al comportamiento malicioso. Observa archivos de registro en tiempo real y busca patrones sospechosos, como múltiples intentos de inicio de sesión fallidos.

Cuando descubre algo terrible, como un ataque de fuerza bruta en su SSH, interviene y prohíbe la IP problemática al agregar reglas de bloqueo en iptables. Puede establecer cuántas fallas se permiten, cuánto tiempo está prohibido IP e incluso personalizar la respuesta.

Usar juntos, iptables y Fail2Ban Proporciona una forma simple pero poderosa de proteger los servidores. a pesar de iptables actúa como un músculo de firewall, Fail2Ban Aumente su cerebro detectando amenazas y actualizando instantáneamente las reglas de firewall.

¿Por qué usar scripts de bloqueador IP personalizados?

a pesar de Fail2ban Un excelente trabajo se puede realizar individualmente prohibiendo automáticamente direcciones IP sospechosas basadas en modos de registro predefinidos, con scripts de bloqueador IP personalizados que agregan flexibilidad y capas de control.

Los scripts personalizados le permiten agregar o eliminar rápidamente las direcciones IP de las listas de bloques sin modificar directamente reglas complejas de firewall. También le permite crear una lógica basada en registros o desencadenantes personalizados Fail2ban No puede ser monitoreado.

Por ejemplo, si tiene una aplicación web que escribe sus propios registros o una herramienta de monitoreo que detecte patrones específicos, puede conectar fácilmente estas alertas a un script para el bloqueo automático.

Además, el script se puede integrar en otras tareas de automatización o herramientas de administración de servidores, lo que lo hace particularmente útil en entornos o sistemas más grandes que administran múltiples servidores.

Paso 1: Instalar iptables y fail2ban

Antes de comenzar a configurar el problema, asegurémonos de iptables y Fail2Ban Instalado en el sistema. Estas herramientas están disponibles en el repositorio de paquetes predeterminado para la mayoría de las principales distribuciones de Linux, por lo que la instalación es simple.

Si está utilizando un sistema basado en Debian Ubuntu o Debian Por sí solo, primero actualice su lista de paquetes para asegurarse de que todo esté actualizado.

sudo apt update

Después de completar la actualización, instálela al mismo tiempo iptables y fail2ban Corriendo:

sudo apt install iptables fail2ban

Para los sistemas basados ​​en RPM, puede instalar dos herramientas utilizando el Administrador de paquetes YUM.

sudo yum install iptables-services fail2ban

Una vez que se complete la instalación, estará listo para configurar el firewall y usar protección automática Fail2Ban.

Paso 2: crea un script de bloqueador de IP simple

Ahora ambos iptables y Fail2Ban Instalado, creemos un script bash simple (block-ip.sh), que le permite bloquear manualmente cualquier dirección IP utilizando iptables.

sudo nano /usr/local/bin/block-ip.sh

En este archivo, pegue el siguiente código:

#!/bin/bash

if [ -z "$1" ]; then
  echo "Usage: $0 "
  exit 1
fi

IP=$1

# Check if IP is already blocked
if iptables -L INPUT -v -n | grep -q "$IP"; then
  echo "IP $IP is already blocked."
else
  iptables -A INPUT -s $IP -j DROP
  echo "IP $IP has been blocked."
fi

El script primero verifica si la dirección IP se proporciona como un parámetro. Si no, imprime el mensaje de uso y las salidas. Si se proporciona una IP, verificará si la IP ha sido bloqueada usando IPTables. Si aún no está en la regla del firewall, agrega una nueva regla que puede eliminar todo el tráfico de esa dirección IP y confirmar la acción.

Después de que el contenido del script esté en su lugar, presione CTRL+O Guardar y CTRL+X Edición de salida. Ahora haga el ejecutable de script para que pueda ejecutarse directamente desde la línea de comando:

sudo chmod +x /usr/local/bin/block-ip.sh

Prepare el script, probemos bloqueando la dirección IP de muestra. Por ejemplo, bloqueo IP 192.168.1.100correr:

sudo /usr/local/bin/block-ip.sh 192.168.1.100

Si todo funciona bien, debería ver un mensaje que diga:

IP 192.168.1.100 has been blocked.

Para confirmar que la IP realmente está bloqueada, puede ver la actual iptables Corriendo:

sudo iptables -L -n -v

Este script es útil cuando desea bloquear IP manualmente o de registros personalizados.

Paso 3: la configuración con iptables falló 2ban

y iptables Listo para usar con nuestros scripts personalizados, es hora de configurar Fail2Ban Por lo tanto, puede detectar y bloquear automáticamente los servicios que las IP maliciosas intentan comprometer Ssh,,,,, apacheo cualquier otra aplicación orientada a Internet en el servidor.

Fail2ban Usa un «prisión«, este es solo un bloque de configuración diseñado para monitorear servicios específicos. Cada prisión dice Fail2ban Cuando se detecta un ataque, el registro a ver es verse, el patrón que se encuentra y cómo responder.

Primero, necesitamos editar o crear jail.local Archivo, aquí es donde define la configuración personalizada sin afectar la configuración predeterminada.

sudo nano /etc/fail2ban/jail.local

Pegue el siguiente bloque en el archivo:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

Desglosemos cada una de estas opciones:

  • enabled = true: Esto mantiene la prisión fuera y está monitoreando activamente SSH.
  • port = ssh: Esto le dice a Fail2ban qué puerto monitorear.
  • filter = sshd: Esto especifica el filtro para detectar fallas de inicio de sesión.
  • logpath = /var/log/auth.log: Este es el archivo de registro que Fail2Ban escaneará los intentos de inicio de sesión SSH fallidos.
  • maxretry = 5: Si la IP no puede iniciar sesión 5 veces dentro de la ventana de tiempo, estará prohibido.
  • bantime = 3600: Esto establece la duración de la prohibición a 3600 segundos (1 hora).
  • findtime = 600: Esto define la ventana de tiempo (en segundos), en este caso, en este caso, en este caso, en este caso, en este caso, en este caso, en este caso, durante 10 minutos.

Si ejecuta un sistema basado en CentOS o basado en RHEL, debe cambiar el LogPath para que coincida donde se almacenan los registros SSH.

/var/log/secure

Después de guardar el archivo de configuración de la prisión, reinicie el servicio Fail2Ban para aplicar los cambios:

sudo systemctl restart fail2ban

Para verificar que su cárcel funcione correctamente, verifique el estado de la cárcel SSH usando el siguiente comando:

sudo fail2ban-client status sshd

Esto le mostrará cuántos IP se han prohibido, cuántos intentos se han detectado y si la prisión está activa.

Si quieres ver qué IP está bloqueando actualmente iptables (incluidos los prohibidos por Fail2ban), Run:

sudo iptables -L -n

Finalmente, si desea derribar una dirección IP específica que está bloqueada automáticamente por Fail2Ban, puede eliminarla manualmente utilizando el siguiente comando:

sudo fail2ban-client set sshd unbanip 192.168.1.100

Paso 4: Combine su guión con Fail2Ban (opcional)

Por defecto, Fail2ban Use sus propias operaciones internas para bloquear las direcciones IP iptables. Pero, si quieres tener Fail2ban Llame a su script de bloqueador IP personalizado en su lugar, tal vez porque agregó lógica o registros personalizados, puede configurar uno personalizado Fail2ban acción.

Para hacer esto, primero debe crear un nuevo archivo de definición de operación.

sudo nano /etc/fail2ban/action.d/customblock.conf

En este archivo, pegue la siguiente configuración:

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = /usr/local/bin/block-ip.sh 
actionunban = iptables -D INPUT -s  -j DROP

[Init]

Esta configuración nos dice Fail2ban Use scripts personalizados siempre que se requiera una dirección IP. este actionban La línea ejecuta su script y pasa la dirección IP en cuestión. Sin disfraz, elimina la regla de bloqueo directamente de los iptables.

A continuación, debe decirle a Fail2Ban que use esta acción personalizada en la configuración de su prisión.

sudo nano /etc/fail2ban/jail.local

Bajo tu [sshd] Prisión o cualquier otra prisión que haya configurado, actualice la línea de acción para señalar su acción personalizada:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
action = customblock

Después de realizar estos cambios, reinicie el servicio Fail2Ban para aplicarlos:

sudo systemctl restart fail2ban

Ahora, cuando Fail2ban Detectar IPS sospechosos, que llamará a sus scripts para manejar el bloqueo, brindándole la flexibilidad de registrar, alertar o realizar otras acciones.

Guardar reglas iptables

Una cosa importante a la que prestar atención es iptables Por defecto, las reglas no persisten, lo que significa que las reglas que se perderán después del reinicio del servidor, ya sea manualmente o a través de Fail2Ban, a menos que las guarde explícitamente.

existir Debian o Ubuntu Sistema, puede ejecutar continuamente instalando reglas de firewall iptables-persistent embalar:

sudo apt install iptables-persistent

Después de la instalación, guarde sus reglas actuales de las siguientes maneras:

sudo netfilter-persistent save

existir Cento o RhelEl proceso es ligeramente diferente, puede usar el siguiente comando de servicio para guardar las reglas:

sudo service iptables save

Además, puede guardar manualmente las reglas en un archivo de configuración correcto como este:

sudo iptables-save > /etc/sysconfig/iptables

Al guardar las reglas, puede asegurarse de que IPS bloquee manualmente o todavía esté bloqueado a través de Fail2Ban incluso después de que el sistema se reinicie.

en conclusión

Asegúrese de que los servidores de Linux no tengan que ser complicados. Combinando poder iptables sabiduría Fail2Banpuede crear defensas fuertes y flexibles contra ataques de fuerza bruta, intentos de inicio de sesión no deseados y actividad IP sospechosa.

a pesar de Fail2Ban Proceso de detección y prohibición automática, los scripts de bloqueador IP personalizados le proporcionan un control manual cuando sea más necesario.

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