Abusive HTTP Watch
Abusive HTTP Watch ist ein Perl-Daemon, der einem Web-Access-Log
folgt, bösartige HTTP-Probes über ein kuratiertes Regex-Token-Set
erkennt und auffällige Quell-IPs in eine Append-Only-Blocklist-Datei
schreibt. Diese Datei wird dann von der Firewall konsumiert (pf-
Tabelle, Apache-Require-Liste, nginx-deny-Liste, etc.).
In dieser Sektion
- Quickstart — Daemon installieren, auf ein Access-Log zeigen lassen und binnen Minuten zusehen, wie IPs in der Blocklist landen.
- Konfiguration — Vollständige Umgebungsvariablen-Referenz, Whitelist-Dateiformat und wie die Blocklist von der Firewall-Schicht konsumiert wird.
- Betrieb — Umgang mit Log-Rotation,
Syslog-Events, Daemon-Lifecycle unter
rc.d, Troubleshooting für bekannte Fehlerbilder aus der Produktion.
Wann du das brauchst
Du betreibst einen Webserver (Apache, nginx, OpenLiteSpeed, was
auch immer) und das Access-Log ist voll mit Probes auf
wp-login.php, .env, /etc/passwd, PHP-Exploitation-Token und
SQL-Injection-Versuchen. Du willst diese Quell-IPs an der Firewall
blockieren, bevor sie Bandbreite, CPU oder — schlimmer — eine
echte Schwachstelle kosten.
Wenn das deine Situation ist, ist genau dafür der Daemon da.
Voraussetzungen
- Ein modernes POSIX-System (OpenBSD, FreeBSD oder Linux).
- Perl 5 (der Daemon nutzt nur Standardbibliothek-Module).
- Eine Firewall, die eine flache IP-Liste konsumieren kann:
- OpenBSD
pfmit einer<abusive>-Tabelle - Linux
nftablesset oderipset - Apache
mod_authz_hostmitRequire not ip ... - nginx
deny-Direktiven
- OpenBSD
- Schreibrechte auf ein Runtime-Verzeichnis für die Blocklist-Datei.
Wenn das alles vorhanden ist, ist der Quickstart ungefähr zehn Minuten Arbeit.