Abusive HTTP Watch

Το Abusive HTTP Watch είναι ένας Perl daemon που παρακολουθεί ένα web access log, ανιχνεύει κακόβουλες HTTP probes μέσω ενός επιμελημένου συνόλου regex tokens και γράφει τις παραβατικές IP πηγής σε ένα append-only αρχείο blocklist. Αυτό το αρχείο καταναλώνεται κατόπιν από το firewall (πίνακας pf, λίστα Require Apache, λίστα deny nginx, κλπ.).

Σε αυτήν την ενότητα

  • Quickstart — Εγκατάσταση του daemon, παρακολούθηση ενός access log, παρατήρηση IP που συσσωρεύονται στη blocklist μέσα σε λεπτά.
  • Διαμόρφωση — Πλήρης αναφορά μεταβλητών περιβάλλοντος, μορφή αρχείου whitelist και πώς καταναλώνει το firewall layer τη blocklist.
  • Λειτουργία — Χειρισμός log rotation, events syslog, κύκλος ζωής daemon υπό rc.d, troubleshooting κοινών ζητημάτων από την παραγωγή.

Πότε το χρειάζεσαι

Λειτουργείς έναν web server (Apache, nginx, OpenLiteSpeed, ό,τι και να είναι) και το access log είναι γεμάτο probes προς wp-login.php, .env, /etc/passwd, tokens εκμετάλλευσης PHP και απόπειρες SQL-injection. Θέλεις αυτές οι IP πηγής να μπλοκάρονται στο firewall προτού κοστίσουν εύρος ζώνης, CPU ή — χειρότερα — εντοπίσουν μια πραγματική ευπάθεια.

Αν αυτή είναι η περίπτωσή σου, ο daemon είναι ακριβώς γι’ αυτό.

Προαπαιτούμενα

  • Ένα σύγχρονο POSIX σύστημα (OpenBSD, FreeBSD ή Linux).
  • Perl 5 (ο daemon χρησιμοποιεί μόνο modules της standard library).
  • Ένα firewall ικανό να καταναλώσει μια επίπεδη λίστα IP:
    • OpenBSD pf με πίνακα <abusive>
    • Linux nftables set ή ipset
    • Apache mod_authz_host με Require not ip ...
    • Οδηγίες deny του nginx
  • Δικαιώματα εγγραφής σε έναν κατάλογο runtime για το αρχείο blocklist.

Αν έχεις όλα τα παραπάνω, ο Quickstart είναι περίπου δέκα λεπτά δουλειάς.