Abusive HTTP Watch
Abusive HTTP Watch to daemon w języku Perl, który podąża za access-logiem serwera web, wykrywa złośliwe sondy HTTP przez kuratowany zestaw tokenów regex i zapisuje podejrzane źródłowe IP do pliku blocklisty typu append-only. Plik ten jest następnie konsumowany przez firewall (tabela pf, lista Require Apache, lista deny nginx itd.).
W tej sekcji
- Quickstart — zainstalować daemona, wskazać go na access-log i w ciągu kilku minut zobaczyć, jak IP lądują na blockliście.
- Konfiguracja — pełna referencja zmiennych środowiskowych, format pliku whitelist i to, jak blocklista jest konsumowana przez warstwę firewall.
- Operacje — obsługa rotacji logów, eventów syslog, lifecycle daemona pod
rc.d, troubleshooting znanych obrazów błędów z produkcji.
Kiedy tego potrzebujesz
Prowadzisz serwer web (Apache, nginx, OpenLiteSpeed, cokolwiek), a access-log jest pełen sond na wp-login.php, .env, /etc/passwd, tokenów eksploatacji PHP i prób SQL-injection. Chcesz zablokować te źródłowe IP na firewallu, zanim ukradną pasmo, CPU lub — gorzej — natrafią na realną podatność.
Jeśli to twoja sytuacja, daemon jest dokładnie do tego.
Wymagania wstępne
- Nowoczesny system POSIX (OpenBSD, FreeBSD lub Linux).
- Perl 5 (daemon używa wyłącznie modułów ze standardowej biblioteki).
- Firewall, który potrafi skonsumować płaską listę IP:
- OpenBSD
pfz tabelą<abusive> - Linux
nftablesset lubipset - Apache
mod_authz_hostzRequire not ip ... - dyrektywy
denynginx
- OpenBSD
- Uprawnienia zapisu do katalogu runtime dla pliku blocklisty.
Gdy to wszystko jest dostępne, Quickstart to mniej więcej dziesięć minut pracy.