Abusive HTTP Watch

Abusive HTTP Watch este un daemon Perl care urmărește un access log de server web, detectează sondele HTTP rău intenționate prin intermediul unui set curat de regex-uri și scrie IP-urile sursă suspecte într-un fișier blocklistă append-only. Acest fișier este apoi consumat de firewall (tabel pf, listă Require Apache, listă deny nginx etc.).

În această secțiune

  • Quickstart — instalează daemonul, îndreaptă-l către un access log și vezi în câteva minute cum IP-urile ajung pe blocklistă.
  • Configurare — referință completă de variabile de mediu, formatul fișierului de whitelist și modul în care firewallul consumă blocklista.
  • Operare — manipularea rotației de log, evenimente syslog, lifecycle-ul daemonului sub rc.d, troubleshooting pentru imagini de eroare cunoscute din producție.

Când ai nevoie de asta

Operați un server web (Apache, nginx, OpenLiteSpeed, oricare) și access log-ul este plin de sonde pe wp-login.php, .env, /etc/passwd, tokenuri de exploatare PHP și tentative de SQL injection. Vreți să blocați aceste IP-uri sursă la firewall înainte să consume bandwidth, CPU sau — mai rău — să găsească o vulnerabilitate reală.

Dacă asta e situația voastră, daemonul este exact pentru asta.

Precondiții

  • Un sistem POSIX modern (OpenBSD, FreeBSD sau Linux).
  • Perl 5 (daemonul folosește doar module din biblioteca standard).
  • Un firewall care poate consuma o listă plată de IP-uri:
    • OpenBSD pf cu tabel <abusive>
    • Linux nftables set sau ipset
    • Apache mod_authz_host cu Require not ip ...
    • directive deny nginx
  • Drepturi de scriere pe un director de runtime pentru fișierul de blocklistă.

Dacă toate astea există, Quickstart ia aproximativ zece minute de muncă.