Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:fail2ban

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:fail2ban [2018/02/02 11:16]
ingo_wichmann [Apache Basic Auth]
lpi2:fail2ban [2026/01/10 22:35] (aktuell)
ingo_wichmann
Zeile 1: Zeile 1:
 Pakete: ​ Pakete: ​
-  * Debian (ab 7): ''​fail2ban''​+  * Debian (ab 12): ''​fail2ban ​python3-pyinotify python3-systemd''​
  
 Per default überwacht fail2ban bei debian ssh: Per default überwacht fail2ban bei debian ssh:
Zeile 65: Zeile 65:
  
   less /​var/​log/​fail2ban.log   less /​var/​log/​fail2ban.log
 +
 +====== Apache Log mit HTTP Status 400 (Bad Request) ======
 +Beispiel für Zeile aus ''​access.log''​ mit Status 400:
 +
 +<file txt /​var/​log/​apache/​access.log>​
 +server.example.org:​80 139.162.173.209 - - [10/​Jan/​2026:​21:​10:​46 +0000] "GET default.asp HTTP/​1.1"​ 400 444 "​-"​ "​-"​
 +</​file>​
 +
 +===== Filter =====
 +<file txt /​etc/​fail2ban/​filter.d/​apache-badrequest.local>​
 +[Definition]
 +failregex = ^\S+ <​ADDR>​ - - \[[^\]]*\] "​[^"​]+"​ 400
 +</​file>​ (( ''<​ADDR>''​ siehe 
 +^Tag^Description^Example regex in filter file^
 +|<​HOST>​|Matches IPv4/IPv6 address or hostname|''​^Failed login from <​HOST>​$''​|
 +|<​IP4>​|Matches IPv4 address only|''​^Failed login from <​IP4>​$''​|
 +|<​IP6>​|Matches IPv6 address only|''​^Failed login from <​IP6>​$''​|
 +|<​ADDR>​|Matches IPv4/IPv6 address (no hostname)|''​^Connection from <​ADDR>​$''​|
 +|<​SUBNET>​|Matches IP with optional CIDR notation|''​^Connection from <​SUBNET>​$''​|
 +|<​F-USER>​...</​F-USER>​|Captures a username|''​^Failed login for <​F-USER>​\S+</​F-USER>​$''​|
 +|<​F-ID>​...</​F-ID>​|Captures a failure ID|''​^Error <​F-ID>​\d+</​F-ID>​ from <​HOST>​$''​|
 +|<​SKIPLINES>​|Used for multi-line matching|''​^Start pattern$<​SKIPLINES>​^End pattern$''​|
 +))
 +
 +Filter testen:
 +  fail2ban-regex '​server.example.org:​80 139.162.173.209 - - [10/​Jan/​2026:​21:​10:​46 +0000] "GET default.asp HTTP/​1.1"​ 400 444 "​-"​ "​-"'​ /​etc/​fail2ban/​filter.d/​apache-badrequest.local
 +-> sollte ''​1 matched''​ ausgeben
 +
 +  fail2ban-regex /​var/​log/​apache2/​access.log /​etc/​fail2ban/​filter.d/​apache-badrequest.local
 +-> sollte die korrekte Anzahl Zeilen mit Status 400 ausgeben.
 +
 +===== Jail =====
 +
 +<file txt /​etc/​fail2ban/​jail.d/​apache-badrequest.local>​
 +[apache_bad_request]
 +enabled = true
 +port    = http,https
 +filter ​ = apache-badrequest
 +logpath = /​var/​log/​apache*/​*access.log
 +maxretry = 3
 +</​file>​
 +
 +Testen:
 +  fail2ban-client reload
 +-> ''​OK''​
 +  fail2ban-client status
 +-> ''​Jail list: … apache_bad_request…''​
 +  fail2ban-client status apache_bad_request
  
lpi2/fail2ban.1517570191.txt.gz · Zuletzt geändert: 2018/02/02 11:16 von ingo_wichmann