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 pf mit einer <abusive>-Tabelle
    • Linux nftables set oder ipset
    • Apache mod_authz_host mit Require not ip ...
    • nginx deny-Direktiven
  • Schreibrechte auf ein Runtime-Verzeichnis für die Blocklist-Datei.

Wenn das alles vorhanden ist, ist der Quickstart ungefähr zehn Minuten Arbeit.