Fail2ban Filter Regexp

Fail2ban Filter Regexp

ich benutze centos8 +fail2ban + haproxy

Ich habe ein spezielles Jail „my-haproxy404“ mit diesen Einstellungen:

[my-haproxy404]
enabled  = true
port     = http,https
filter   = my-haproxy404
logpath  = /var/log/my-haproxy.log
backend  = poller
journalmatch =
maxretry = 3
bantime  = 86400
findtime  = 3600

und Filter:

[Definition]
failregex = .*:<HOST>(?::\d+)?\s+.*\d* 404

Meine Beispiel-Protokollzeile lautet:

Sep 19 14:38:21 localhost haproxy[53925]: 77.77.77.77:55763 [19/Sep/2021:14:38:21.483] backend1 line1/test1 0/0/12/88/100 404 687 - - ---- 1/1/0/0/0 0/0 "GET /test/string HTTP/1.1"

also, ... vielleicht funktioniert das, aber in fail2ban.log sehe ich eine IP wie:

INFO    [my-haproxy404] Found 0.0.217.211 - 2021-09-19 14:38:21

dies ist keine echte IP (die echte IP ist: 77.77.77.77), fail2ban blockiert diese IP (0.0.217.211) ....aber (77.77.77.77) funktioniert immer noch

ich weiß, ich habe ein Problem mit regulären Ausdrücken

können Sie mir mit der richtigen Regexp-Regel für diesen 404-String helfen

Sep 19 14:38:21 localhost haproxy[53925]: 77.77.77.77:55763 [19/Sep/2021:14:38:21.483] backend1 line1/test1 0/0/12/88/100 404

Grüße

Antwort1

failregex = ^\s*\S+ haproxy\[\d+\]: <ADDR>:\d+(?: \[[^\]]+\])? \S+ \S+ \d+(?:/\d+)+ 404\b

Sie können es auch 404\bdurch ersetzen (?!401)[45]\d\d\b, um jeden „schlechten“ Code abzugleichen 4xxund 5xxAusnahmen zu machen 401(es sind einige Voraussetzungen erforderlich, um Autorisierungs-Handshakes richtig zu berücksichtigen, und es gibt einen Filter haproxy-http-auth, der dafür verwendet werden kann).

verwandte Informationen