Eigenes Fail2Ban Jail funktioniert nicht

ismon

Lieutenant
Registriert
Dez. 2006
Beiträge
706
Hallo,

vielleicht kann mir jemand helfen.
Und zwar möchte ich für eine Anwendung die innerhalb eines Docker Containers läuft einen Fail2ban Jail anlegen.
Dazu habe ich in der jail.local folgenden Eintrag hinzugefügt:

Code:
[mailman]
enabled=true
port=80,443
protocol=tcp
maxretry=5
bantime=1800
filter=mailman
logpath=/var/lib/docker/containers/8a0a03c30cd1d6b903eb9f50278b6a4740a0a5b3e9a190f4e5733a577e759f5c/8a0a03c30cd1d6b903eb9f50278b6a4740a0a5b3e9a190f4e5733a577e759f5c-json.log

Zusätzlich dazu habe ich den Filter /etc/fail2ban/filter.d/mailman.local mit diesem Inhalt erzeugt:
Code:
[Definition]
failregex=^{"log":".*/mailman/api/auth/authenticate.*33m401.*}^

Die Regex sollte im oben genannten Log nach folgenden Einträgen suchen:
Code:
{"log":"\u001b[0mPOST /mailman/api/auth/authenticate \u001b[33m401 \u001b[0m2.191 ms - 34\u001b[0m\n","stream":"stdout","time":"2018-07-20T13:04:52.394825709Z"}

Laut https://www.regextester.com kann ich mit diesem (sehr primitiven) regex entsprechende Einträge finden.

Fail2ban sagt im logfile auch
2018-07-20 15:50:43,888 fail2ban.jail [21962]: INFO Jail 'mailman' started

Aber auch nach 20 fehlgeschlagenen Anmeldungen führt Fail2ban keine Aktion durch.

Hat jemand eine Idee?

gruß
Simon
 
teste deine config mit fail2ban-regex:
Code:
fail2ban-regex  /pfad/zum/log /pfad/zum/filter
also z.b.
Code:
fail2ban-regex  /var/log/sshd/current /etc/fail2ban/filter.d/sshd.conf

der gesuchte eintrag sollte dann im output sein. entweder am regex schrauben oder der pfad zum log stimmt vllt. nicht?

edit:
in deinem jail eintrag gibt es keine action? bei mir sieht das so aus:
Code:
[ssh]
enabled = true
filter  = sshd
action  = iptables-allports[name=ssh]    # -> action aus /etc/fail2ban/action.d/
          sendmail[name=ssh, dest=user@domain.de]
logpath = /var/log/sshd/current
 
Zuletzt bearbeitet:
Hey, danke für den Tipp mit dem testen, das kannte ich nicht.
Ich glaube da liegt euch das Problem. Hier das Ergebnis:

Use failregex filter file : mailman, basedir: /etc/fail2ban

ERROR: No failure-id group in '^{"log":".*/mailman/api/auth/authenticate.*33m401.*}^'
Verstehe die Meldung aber nicht wirklich und google hat mich bis jetzt auch nicht weiter gebracht.

Wegen der Aktion, ich denke wenn ich keine angebe wird die Standard Aktion ausgeführt.
 
Zuletzt bearbeitet:
Ok ich glaube auch unabhängig von der Fehlermeldung wird es wohl nicht funktionieren.
In dem Logfile der Anwendung wird nicht die IP des Client Protokolliert. Ohne die (die ich mit <host>) kennzeichnen müsste in der Regex kann Fail2ban auch nichts bannen....
 
Zurück
Oben