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
pfcon una tabla<abusive> - Linux
nftablesset oipset - Apache
mod_authz_hostconRequire not ip ... - Directivas
denyde nginx
- OpenBSD
- Permisos de escritura sobre un directorio de runtime para el fichero blocklist.
Si tienes todo eso, el Quickstart lleva unos diez minutos.