Bloqueo automático de IP (Autoban)
Automatiza el bloqueo de direcciones IP mediante el análisis de entradas del registro watchdog contra reglas configurables e integración con proveedores de bloqueo de IP.
autoban
Install
composer require 'drupal/autoban:8.x-1.12'
composer require 'drupal/autoban:8.x-1.9'
Overview
El módulo Autoban proporciona bloqueo automatizado de direcciones IP basado en patrones encontrados en la tabla de registro de base de datos de Drupal (watchdog). Los administradores del sitio pueden crear reglas que identifican actividad sospechosa al coincidir tipos de entradas de registro y patrones de mensajes, y luego bloquear automáticamente las direcciones IP que excedan un umbral específico de violaciones.
El módulo funciona consultando la tabla watchdog durante las ejecuciones de cron o bajo demanda, identificando direcciones IP que coinciden con patrones definidos como errores repetidos de "página no encontrada" o eventos de acceso denegado. Cuando una dirección IP excede el umbral configurado dentro de una ventana de tiempo especificada, se añade automáticamente a la lista de bloqueo utilizando el proveedor de bloqueo configurado.
Autoban admite múltiples proveedores de bloqueo a través de su arquitectura de submódulos, permitiendo la integración con el módulo Ban del núcleo de Drupal o soluciones de terceros como Advanced Ban. El módulo incluye funciones para analizar entradas de registro, creación masiva de reglas, lista blanca de IP (incluyendo notación CIDR y exenciones basadas en dominio), y gestión de reglas tanto manual como automática.
Features
- Crear y gestionar reglas de bloqueo de IP basadas en tipos de entradas de registro watchdog y patrones de mensajes
- Bloqueo automático de IP durante la ejecución de cron con umbrales y ventanas de tiempo configurables
- Herramienta de análisis de registros que identifica patrones sospechosos y permite la creación masiva de reglas
- Soporte para modos de consulta LIKE y REGEXP para coincidencia flexible de patrones
- Soporte de lista blanca de IP con notación CIDR, direcciones IP individuales y exenciones basadas en dominio
- Soporte para múltiples proveedores de bloqueo mediante arquitectura modular (Core Ban, Advanced Ban)
- Filtrado por tipo de usuario para dirigirse a usuarios anónimos, usuarios autenticados o ambos (con opciones de modo estricto)
- Coincidencia de patrones de URL de referencia para precisión adicional en el filtrado
- Configuración de ventana de tiempo para reglas (1 hora, 1 día, 1 semana, etc.)
- Modo forzado para bloqueo inmediato de IP en errores 404/403
- Modo de depuración para solución de problemas en consultas de reglas
- Soporte de comandos Drush para operaciones de bloqueo de IP desde línea de comandos
- Página mejorada de resumen de dblog con enlaces directos de bloqueo por dirección IP
- Procesamiento por lotes para bloquear IPs en todas las reglas
- Funcionalidad de clonación para duplicar reglas existentes
Use Cases
Bloqueo de intentos de inicio de sesión por fuerza bruta
Cree una regla con tipo 'user' y un patrón de mensaje que coincida con los mensajes de inicio de sesión fallido. Establezca un umbral bajo (por ejemplo, 5) y una ventana corta (por ejemplo, '1 hour ago') para identificar y banear rápidamente las IPs que intentan ataques de fuerza bruta en cuentas de usuario.
Bloqueo de escáneres de vulnerabilidades
Cree una regla con tipo 'page not found' para identificar IPs que solicitan repetidamente rutas inexistentes frecuentemente objetivo de escáneres de vulnerabilidades (por ejemplo, wp-admin, phpmyadmin). Un umbral de 10-20 dentro de una hora puede bloquear efectivamente escáneres automatizados.
Protección contra bots de spam
Use la página de análisis para identificar patrones de entradas de registro relacionadas con spam (por ejemplo, envíos repetidos de formularios, patrones específicos de referrer). Cree reglas dirigidas a estos patrones para banear automáticamente las IPs de bots de spam.
Bloqueo de IP de emergencia
Habilite el modo forzado en la configuración para el bloqueo inmediato de IPs que generen errores 404 o 403. Útil durante ataques activos pero debe usarse con precaución ya que puede afectar a usuarios legítimos.
Lista blanca para bots de motores de búsqueda
Agregue dominios de bots confiables a la lista blanca (por ejemplo, 'googlebot.com', 'bingbot.com') o rangos de IP en notación CIDR para evitar banear accidentalmente rastreadores legítimos que pueden generar errores 404.
Creación automatizada de reglas desde el análisis de registros
Use la página de análisis para revisar patrones de registro, seleccione entradas sospechosas y cree reglas en masa. El módulo genera automáticamente IDs de regla únicos y aplica la configuración predeterminada.
Bloqueo de rangos de IP para atacantes persistentes
Al usar el proveedor Advanced Ban con soporte de rangos, banee rangos completos de IP para atacantes que usan múltiples IPs de la misma subred. El módulo convierte automáticamente IPs individuales a rangos /24.
Tips
- Siempre pruebe las reglas usando la operación Test antes de confiar en el baneo automático por cron para evitar bloquear tráfico legítimo
- Use la página de análisis regularmente para identificar nuevos patrones de ataque y crear reglas apropiadas
- Mantenga la lista blanca actualizada con dominios de bots legítimos y rangos de IP confiables
- Considere usar ventanas de tiempo más cortas con la función de expiración de Advanced Ban para que los baneos se levanten automáticamente después de un período
- Use el modo de consulta REGEXP para coincidencia de patrones complejos, pero asegúrese de que su base de datos lo soporte
- Clone reglas existentes al crear reglas similares para ahorrar tiempo
- Revise y limpie periódicamente las reglas automáticas usando la página Delete All con el filtro de tipo de regla 'Automatic'
Technical Details
Admin Pages 10
/admin/config/people/autoban
Página principal de administración que muestra todas las reglas de autoban configuradas en formato de tabla. Cada regla muestra su ID, tipo, patrón de mensaje, patrón de referente, umbral, ventana de tiempo, tipo de usuario y proveedor de bloqueo. Las operaciones disponibles para cada regla incluyen Editar, Eliminar, Probar (previsualizar IPs coincidentes), Bloquear (ejecutar el bloqueo para esta regla) y Clonar (crear una copia de la regla).
/admin/config/people/autoban/add/{rule}
Formulario para crear una nueva regla de autoban. Todos los campos definen los criterios para identificar direcciones IP a bloquear basándose en las entradas de registro de Watchdog.
/admin/config/people/autoban/manage/{autoban}
Formulario para modificar una regla de autoban existente. Los mismos campos que el formulario de añadir pero pre-rellenados con los valores actuales de la regla.
/admin/config/people/autoban/manage/{autoban}/delete
Formulario de confirmación para eliminar una regla de autoban. Muestra un mensaje de advertencia solicitando confirmación antes de eliminar permanentemente la regla.
/admin/config/people/autoban/manage/{rule}/test
Página de prueba que muestra las direcciones IP que serían bloqueadas por una regla específica sin bloquearlas realmente. Muestra una tabla con el recuento de entradas de registro coincidentes por dirección IP y el estado de bloqueo actual. Útil para validar reglas antes de habilitarlas.
/admin/config/people/autoban/ban/{rule}
Página de confirmación y ejecución para bloquear direcciones IP. Cuando se accede sin un parámetro de regla, bloquea IPs para todas las reglas usando procesamiento por lotes. Cuando se accede con una regla específica, bloquea IPs que coinciden solo con esa regla.
/admin/config/people/autoban/analyze
Página de análisis que consulta la tabla de Watchdog para encontrar patrones de entradas de registro repetidas que pueden indicar actividad maliciosa. Muestra entradas agrupadas por tipo y mensaje con su recuento de ocurrencias. Las entradas que superan el umbral de análisis se muestran con opciones para crear reglas o probarlas.
/admin/config/people/autoban/delete_all
Formulario de eliminación masiva para eliminar múltiples reglas de autoban basándose en criterios de filtro. Permite filtrar por tipo de regla, tipo de registro, patrón de mensaje, patrón de referente, umbral, ventana, tipo de usuario y proveedor.
/admin/config/people/autoban/settings
Página de configuración global para el módulo Autoban. Controla las opciones de umbral, ventanas de tiempo, comportamiento de consultas, lista blanca, tipos de registro excluidos y modos operacionales.
/admin/reports/dblog
Cuando el submódulo Autoban Dblog está habilitado, esta página se mejora para mostrar enlaces de bloqueo directo para cada dirección IP en el registro. La columna de Operaciones incluye enlaces para bloquear la IP usando cada proveedor de bloqueo disponible.
Permissions 1
Hooks 2
hook_cron
Procesa todas las reglas de autoban durante la ejecución de cron. Itera a través de todas las reglas, recupera las direcciones IP coincidentes y las bloquea utilizando el proveedor configurado.
hook_help
Proporciona texto de ayuda para el módulo y sus submódulos en las páginas de ayuda.
Drush Commands 1
drush autoban:ban
Ejecuta el bloqueo de IP para las reglas de autoban. Puede procesar una sola regla o todas las reglas.
Troubleshooting 5
Habilite el modo de depuración en la configuración para ver las consultas SQL generadas. Verifique que el tipo de registro coincida exactamente (sensible a mayúsculas y minúsculas) y que los patrones de mensaje tengan en cuenta el modo de consulta (LIKE vs REGEXP). Recuerde que los mensajes de registro en idiomas distintos al inglés necesitan patrones en el idioma original almacenado en la base de datos.
Verifique que 'Enable cron' esté marcado en la configuración. Asegúrese de que al menos un submódulo de proveedor de baneo esté habilitado. Compruebe que las reglas tengan umbrales y ventanas apropiados que coincidan con las entradas de registro actuales.
Agregue direcciones IP o dominios legítimos a la lista blanca. Considere aumentar los umbrales o reducir las ventanas de tiempo. Use opciones estrictas de tipo de usuario para evitar banear usuarios autenticados.
Habilite al menos un submódulo de proveedor de Autoban (Autoban Core Ban Provider o Autoban Advanced Ban Provider). Asegúrese de que el módulo de baneo correspondiente (Ban o Advanced Ban) esté instalado y habilitado.
El modo forzado banea IPs inmediatamente en cada error 404/403. Esto está pensado solo para situaciones de emergencia. Desactívelo para operación normal y confíe en el baneo basado en reglas con umbrales apropiados.
Security Notes 5
- Nunca agregue direcciones IP a la lista blanca sin verificación - los atacantes pueden falsificar información de referrer
- El modo forzado solo debe usarse durante ataques activos ya que puede afectar a usuarios legítimos que experimentan errores 404
- Revise regularmente las listas de IPs baneadas para identificar falsos positivos
- Evite que la tabla dblog crezca demasiado ya que afecta el rendimiento de las consultas para el procesamiento de reglas
- Considere las implicaciones de privacidad del registro y almacenamiento de direcciones IP en cumplimiento con regulaciones como GDPR