Advanced ban
Un módulo avanzado de bloqueo de direcciones IP que reemplaza el módulo Ban del núcleo de Drupal con soporte para rangos de IP, fechas de expiración, razones de bloqueo e IPs protegidas.
advban
Instalar
composer require 'drupal/advban:8.x-1.9'
composer require 'drupal/advban:8.x-1.5'
Overview
Advanced Ban es un reemplazo completo del módulo Ban del núcleo de Drupal, proporcionando capacidades mejoradas de gestión de direcciones IP para los administradores del sitio. El módulo permite bloquear direcciones IP individuales así como rangos de IP IPv4, con fechas de expiración configurables que desbloquean automáticamente las IPs después de una duración especificada.
A diferencia del módulo Ban del núcleo, Advanced Ban soporta razones de bloqueo para documentar por qué una IP fue bloqueada, una lista de IPs protegidas que anula los bloqueos (útil para incluir en lista blanca servicios confiables como Googlebot), y mensajes de bloqueo personalizables mostrados a los visitantes bloqueados. El módulo incluye middleware HTTP que intercepta las solicitudes antes del almacenamiento en caché de páginas, asegurando que los usuarios bloqueados nunca reciban contenido en caché.
Durante la instalación, el módulo migra automáticamente las IPs bloqueadas existentes del módulo Ban del núcleo. Los bloqueos expirados se limpian automáticamente vía cron, y los administradores tienen control total sobre la eliminación masiva con filtros para IPs simples/rangos e IPs expiradas/activas.
Features
- Bloquear direcciones IP individuales con validación para prevenir el bloqueo de direcciones reservadas
- Bloquear rangos de direcciones IPv4 especificando las direcciones IP de inicio y fin
- Duraciones de expiración de bloqueo configurables usando formato strtotime de PHP (ej., +1 hour, +1 day, +1 week)
- Desbloqueo automático de bloqueos de IP expirados vía cron
- Campo de razón de bloqueo para documentar por qué una IP fue bloqueada
- Lista blanca de IPs protegidas soportando IPs individuales, notación CIDR y nombres de dominio
- Middleware HTTP que bloquea IPs prohibidas antes del almacenamiento en caché de páginas con prioridad 250
- Texto de mensaje de bloqueo personalizable con marcadores de posición variables para IP y fecha de expiración
- Funcionalidad de búsqueda para encontrar IPs bloqueadas por dirección IP o razón de bloqueo
- Funcionalidad de eliminación masiva con filtros para IPs simples/rangos y estado expirado/no expirado
- Soporte de paginación para la lista de IPs bloqueadas
- Migración automática de IPs bloqueadas del módulo Ban del núcleo durante la instalación
- Las IPs protegidas soportan comentarios (líneas que comienzan con #) para documentación
Use Cases
Bloquear rangos de IP de bots de spam
Use la función de bloqueo de rangos de IP para bloquear subredes completas de fuentes de spam conocidas. Ingrese la IP de inicio y fin del rango, agregue una razón descriptiva como 'Red de spam', y establezca una duración de expiración apropiada. El módulo bloqueará todas las IPs dentro del rango de acceder al sitio.
Bloqueos temporales para usuarios abusivos
Cuando trate con usuarios abusivos que no han cruzado la línea para un bloqueo permanente, use la función de duración de expiración. Bloquee su IP con una duración como '+1 week' o '+1 month'. El bloqueo se levantará automáticamente cuando expire la duración vía cron, sin necesidad de intervención manual.
Proteger bots y servicios legítimos
Agregue servicios confiables a la lista de IPs protegidas para asegurar que nunca sean bloqueados accidentalmente. Use notación CIDR para rangos de IP (ej., '66.249.64.0/19' para Googlebot), nombres de dominio (ej., 'googlebot.com'), o IPs individuales. Agregue comentarios con # para documentar cada entrada.
Migrar desde el módulo Ban del núcleo
Simplemente habilite Advanced Ban después del módulo Ban del núcleo - la instalación migrará automáticamente todas las IPs bloqueadas existentes con la razón 'Migrated from Ban'. Luego puede mejorar estas entradas con fechas de expiración y razones más detalladas usando la función de edición.
Auditar y buscar IPs bloqueadas
Use la página de Búsqueda para encontrar IPs bloqueadas específicas o buscar por texto de razón. Esto es útil para auditar bloqueos, encontrar entradas relacionadas (ej., todas las IPs bloqueadas por 'ataque de fuerza bruta'), o verificar si una IP específica está bloqueada.
Limpieza masiva de bloqueos expirados
Mientras cron elimina automáticamente los bloqueos expirados, puede usar la página Eliminar todas para limpiar inmediatamente. Seleccione 'Eliminar solo IP expiradas' para eliminar todas las entradas expiradas, o combine filtros para eliminar solo rangos de IP expirados, por ejemplo.
Tips
- Use notación CIDR en IPs protegidas para una lista blanca eficiente de subredes (ej., '192.168.1.0/24' para una red local completa)
- Agregue comentarios en IPs protegidas usando # para documentar por qué cada IP/rango está protegido para referencia futura
- Habilite 'Guardar última duración de expiración del bloqueo de IP' si frecuentemente bloquea IPs con la misma duración para acelerar el flujo de trabajo
- Establezca un límite de paginación razonable (ej., 50) en la configuración si tiene muchas IPs bloqueadas para mejorar el rendimiento de la página de administración
- Use el campo de razón consistentemente (ej., 'spam:foro', 'fuerza-bruta:login') para habilitar búsquedas efectivas posteriormente
- El módulo se ejecuta antes del almacenamiento en caché de páginas (prioridad 250), por lo que los usuarios bloqueados no recibirán páginas en caché
Technical Details
Admin Pages 6
/admin/config/people/advban
Página principal de administración para gestionar direcciones IP bloqueadas. Muestra una tabla paginada de todas las IPs bloqueadas con sus tiempos de expiración, razones y estado. También proporciona un formulario para agregar nuevos bloqueos de IP.
/admin/config/people/advban/edit/{ban_id}
Editar una entrada de bloqueo de IP existente para cambiar su duración de expiración o razón. Muestra una vista previa de la información actual del bloqueo.
/admin/config/people/advban/delete/{ban_id}
Formulario de confirmación para eliminar una dirección IP específica o rango de la lista de bloqueos.
/admin/config/people/advban/delete_all
Eliminación masiva de bloqueos de IP con opciones de filtrado basadas en tipo de IP (simple o rango) y estado de expiración.
/admin/config/people/advban/search
Buscar direcciones IP bloqueadas por dirección IP o razón de bloqueo. Los resultados muestran los bloqueos coincidentes con operaciones de editar y eliminar.
/admin/config/people/advban/settings
Configurar ajustes a nivel de módulo incluyendo duraciones de expiración, IPs protegidas, mensajes de bloqueo y opciones de visualización.
Permisos 1
Hooks 3
hook_cron
Elimina automáticamente los bloqueos de IP expirados durante las ejecuciones de cron y registra el conteo de IPs desbloqueadas
hook_help
Proporciona texto de ayuda para la página de ayuda del módulo y la página de administración
hook_theme
Define el theme hook ip_ban_view para mostrar detalles del bloqueo de IP en el formulario de edición
Troubleshooting 5
Esta es una característica de seguridad para prevenir que los administradores se bloqueen accidentalmente. El módulo valida que ni la IP de inicio ni ninguna IP en un rango coincida con su dirección IP actual.
Verifique si la IP está en la lista de IPs protegidas. Las IPs protegidas siempre anulan los bloqueos. También verifique que el bloqueo no haya expirado revisando la columna de Estado en la lista de IPs.
El bloqueo de rangos de IP solo soporta direcciones IPv4. Aún puede bloquear direcciones IPv6 individuales, pero no rangos. El módulo valida y muestra un mensaje de error al intentar crear rangos IPv6.
Los bloqueos expirados se eliminan por cron. Asegúrese de que cron se esté ejecutando regularmente en su sitio. También puede ejecutar cron manualmente o usar la página Eliminar todas para eliminar inmediatamente las entradas expiradas.
Verifique la configuración del Texto de bloqueo. Asegúrese de estar usando las variables correctas: @ip para la dirección IP y @expiry_date para la fecha de expiración (solo disponible en la configuración 'Texto de bloqueo con expiración').
Security Notes 5
- El módulo previene que los administradores bloqueen su propia dirección IP para evitar bloqueos
- Las IPs protegidas siempre tienen precedencia sobre los bloqueos, así que asegúrese de que su lista protegida solo contenga direcciones verdaderamente confiables
- El middleware HTTP se ejecuta con alta prioridad (250) para bloquear IPs prohibidas antes de que se sirva cualquier contenido en caché
- Las direcciones IP reservadas (como 255.255.255.255) no pueden ser bloqueadas para prevenir problemas de configuración
- Los bloqueos de IP operan a nivel HTTP - atacantes sofisticados pueden usar proxies o VPNs para evadir los bloqueos