PHP Firewall

Un plugin para WordPress de Carles Mateo. Bloquea IPs abusivas y escáneres de URL (.env, wp-config.php, .git y patrones personalizados). Reglas manuales de bloqueo de IPs y rangos, recogida automática de infractores, exportación a CSV y ufw.

Compra PHP Firewall
Logotipo de PHP Firewall para WordPress

Descripción

PHP Firewall protege tu sitio bloqueando a los visitantes abusivos lo antes posible en la petición, antes de que WordPress termine de cargarse.

Cuando la protección está activada, se comprueba cada petición:

  1. Si la IP del visitante ya es un infractor conocido, recibe un 403 Forbidden.
  2. Si la IP coincide con una de tus reglas manuales de bloqueo (IP única, bloque CIDR o rango con guion, IPv4 o IPv6), recibe un 403.
  3. En caso contrario se inspecciona la URL solicitada. Si coincide con una firma de escáner, la IP se registra y la petición recibe un 403.

Firmas de escáner incorporadas: .env, wp-config.php, .git. También puedes añadir tus propios patrones de texto.

Compatible con proxies y CDN

Elige qué cabecera lleva la IP real del visitante: REMOTE_ADDR, Cloudflare (CF-Connecting-IP), X-Forwarded-For, X-Real-IP o una cabecera personalizada, para que el plugin funcione correctamente detrás de nginx, Varnish, un balanceador de carga o una CDN.

Se ejecuta pronto

Cuando la protección está activada, el plugin instala un pequeño cargador must-use para que la comprobación se ejecute en muplugins_loaded. Si el directorio mu-plugins no tiene permisos de escritura, recurre a plugins_loaded.

Exportaciones

Especificaciones

PHP WP Firewall

  • Reglas manuales de bloqueo ilimitadas
  • Soporte para IPv4 e IPv6
  • Patrones de URL personalizados ilimitados
  • Infractores automáticos almacenados ilimitados
  • Registro de las últimas peticiones
  • Muestra las IPs con más peticiones de las últimas 24 horas
  • Bloquea IPs según el número de peticiones en un intervalo determinado
  • Actualizaciones automáticas
PHP Firewall para WordPress - configuración y opciones de protección

Instalación

  1. Sube la carpeta php-firewall a /wp-content/plugins/, o instala el zip desde Plugins → Añadir nuevo → Subir plugin.
  2. Activa PHP Firewall desde el menú Plugins. Las tablas de la base de datos se crean al activarlo.
  3. Abre PHP Firewall en el menú de administración.
  4. Configura el origen de la IP del cliente según tu alojamiento (detrás de Cloudflare, nginx, etc.).
  5. Haz clic en Enable protection.

Preguntas frecuentes

¿Funciona detrás de Cloudflare o de un proxy inverso?

Sí. En la configuración, elige la cabecera que lleva la IP real del cliente en tu caso. Solo confía en una cabecera reenviada si tu servidor está realmente detrás de ese proxy; de lo contrario el valor se puede falsificar.

¿Qué pasa cuando la protección está desactivada?

No se bloquea nada y no se recogen infractores. Las reglas existentes se conservan.

¿Dónde se guardan los datos?

En tres tablas propias: cmwpfw_firewall_config, cmwpfw_firewall_manual_ip_deny_rules y cmwpfw_firewall_automatic_ip_deny_rules.

¿Puedo exportar la lista de bloqueo al cortafuegos de mi servidor?

Sí. Exporta los infractores automáticos como script de ufw o como CSV desde la página de configuración.

Captura de pantalla

PHP Firewall - direcciones IP infractoras automáticas
← Volver a carlesmateo.com