Abusive HTTP Watch

Abusive HTTP Watch es un daemon Perl que sigue un access log de servidor web, detecta probes HTTP maliciosas mediante un conjunto curado de tokens regex, y escribe las IPs de origen infractoras en un fichero blocklist append-only. Ese fichero es consumido por el firewall (tabla pf, lista Require de Apache, lista deny de nginx, etc.).

En esta sección

  • Quickstart — Instalar el daemon, apuntarlo a un access log, ver las IPs acumularse en la blocklist en pocos minutos.
  • Configuración — Referencia completa de variables de entorno, formato del fichero whitelist y cómo consume el firewall la blocklist.
  • Operación — Manejo de rotación de logs, eventos syslog, ciclo de vida del daemon bajo rc.d, troubleshooting de casos vistos en producción.

Cuándo lo necesitas

Operas un servidor web (Apache, nginx, OpenLiteSpeed, lo que sea) y el access log está lleno de probes hacia wp-login.php, .env, /etc/passwd, tokens de explotación PHP e intentos de SQL-injection. Quieres bloquear esas IPs de origen en el firewall antes de que cuesten ancho de banda, CPU o — peor — encuentren una vulnerabilidad real.

Si esa es tu situación, para eso está el daemon.

Prerrequisitos

  • Un sistema POSIX moderno (OpenBSD, FreeBSD o Linux).
  • Perl 5 (el daemon solo usa módulos de la biblioteca estándar).
  • Un firewall capaz de consumir una lista plana de IPs:
    • OpenBSD pf con una tabla <abusive>
    • Linux nftables set o ipset
    • Apache mod_authz_host con Require not ip ...
    • Directivas deny de nginx
  • Permisos de escritura sobre un directorio de runtime para el fichero blocklist.

Si tienes todo eso, el Quickstart lleva unos diez minutos.