Abusive HTTP Watch
Abusive HTTP Watch est un daemon Perl qui suit un access log de
serveur web, détecte les probes HTTP malveillantes via un jeu de
tokens regex curé, et écrit les IP sources fautives dans un fichier
blocklist append-only. Ce fichier est ensuite consommé par le
pare-feu (table pf, liste Require d’Apache, liste deny
nginx, etc.).
Dans cette section
- Quickstart — Installer le daemon, le pointer sur un access log, voir les IP s’accumuler dans la blocklist en quelques minutes.
- Configuration — Référence complète des variables d’environnement, format du fichier whitelist et comment la blocklist est consommée par la couche pare-feu.
- Exploitation — Gestion de la rotation des
logs, événements syslog, cycle de vie du daemon sous
rc.d, troubleshooting des cas vus en production.
Quand vous en avez besoin
Vous exploitez un serveur web (Apache, nginx, OpenLiteSpeed,
n’importe quoi) et l’access log est plein de probes vers
wp-login.php, .env, /etc/passwd, des tokens d’exploitation
PHP et des tentatives de SQL-injection. Vous voulez bloquer ces
IP sources au pare-feu avant qu’elles ne coûtent de la bande
passante, du CPU ou — pire — ne trouvent une véritable
vulnérabilité.
Si c’est votre situation, c’est pour cela que le daemon est conçu.
Prérequis
- Un système POSIX moderne (OpenBSD, FreeBSD ou Linux).
- Perl 5 (le daemon n’utilise que les modules de la bibliothèque standard).
- Un pare-feu capable de consommer une liste plate d’IP :
- OpenBSD
pfavec une table<abusive> - Linux
nftablesset ouipset - Apache
mod_authz_hostavecRequire not ip ... - Directives
denynginx
- OpenBSD
- Accès en écriture à un répertoire runtime pour le fichier blocklist.
Si vous avez tout cela, le Quickstart prend environ dix minutes.