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
4,292 sites
24
drupal.org

Instalar

Drupal 12, 11, 10 v8.x-1.9
composer require 'drupal/advban:8.x-1.9'
Drupal 9, 8 v8.x-1.5
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
Bloqueos avanzados de direcciones IP /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.

Editar la dirección IP bloqueada /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.

Eliminar dirección IP /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.

Eliminar todas las direcciones IP /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.

Buscar IP /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.

Configuración de Advanced ban /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
Bloquear direcciones IP

Permite a los usuarios gestionar direcciones IP bloqueadas, incluyendo agregar, editar, eliminar y buscar bloqueos de IP, así como configurar los ajustes del módulo.

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
No puedo bloquear mi propia dirección IP

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.

La IP bloqueada aún puede acceder al sitio

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 rango de IP no funciona para direcciones IPv6

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 no se eliminan automáticamente

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.

El mensaje de bloqueo no se muestra correctamente

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