
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
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.








