Fail2ban Postfix/Dovecot

agarbathi

New Member
[gelöst] Fail2ban Postfix/Dovecot

Hallo zusammen,

ich geh mittlerweile am Stock.. hab bisher verzweifelt versucht fail2ban einzurichten... ich denke ich hab mittlerweile jedes Tutorial durch das ich finden konnte! Vielleicht habt Ihr ja eine Idee!?! System ist ein Debian 6

meine /etc/fail2ban/filter.d/dovecot.conf:

Code:
[INCLUDES]

[Definition]
failregex = authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=\S* rhost=<HOST> user=\S*
ignoreregex =

Auszug aus meiner /etc/fail2ban/jail.local:

Code:
[dovecot]
enabled  = true
port     = imap,imaps,pop3,pop3s
filter   = dovecot
action   = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath  = /var/log/mail.log
maxretry = 4
findtime = 1200
bantime  = 600

Hab schon mehrfach mail.log mit syslog oder auth.log getauscht... jedoch alles ohne das es funktionierte..

Was mich allerdings auch wundert ist, bei Eingabe von iptables -L unter der obigen Konfig.
Code:
Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-dovecot  tcp  --  anywhere             anywhere            multiport dports pop3,pop3s,imap2,imaps

denn wenn ich das richtig verstehe scheint die Regel ansich ja in iptables zu laufen??

Naja, hoffentlich habt ihr vielleicht eine Idee!

Danke
 
Last edited by a moderator:
So ganz verstehe ich dein Problem nicht. Fail2Ban legt beim Starten für jedes JAIL eine eigene Chain in iptables an und füllt diese bei Bedarf mit den entsprechenden IPs.
Ob deine Regel auch greift, kannst du übrigens mit fail2ban-regex prüfen.
 
ok, das ist ein guter Hinweis gewesen den ich noch nicht kannte..!

Bitte korrigiert mich wenn ich einen Fehler mache, ich hab jetzt mal folgenden Befehl eingegeben:

Code:
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot.conf
/usr/share/fail2ban/server/filter.py:442: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import md5

Running tests
=============

Use regex file : /etc/fail2ban/filter.d/dovecot.conf
Use log file   : /var/log/mail.log


Results
=======

Failregex
|- Regular expressions:
|  [1] authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=\S* rhost=<HOST> user=\S*
|
`- Number of matches:
   [1] 0 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Sorry, no match

Look at the above section 'Running tests' which could contain important
information.

Was bedeutet die Fehlermeldung, und wenn ich das jetzt richtig interpretiere dann greift die Regel nicht?
 
Die Warnung am Anfang kannst du derzeit ignorieren: Das MD5-Modul wurde zugunsten von Hashib als veraltet gekennzeichnet, wird also irgendwann komplett durch Hashlib abgelöst.
Ansonsten: 0 matches found - also befindet sich in der Logdatei keine Zeile, auf der reguläre Ausdruck paßt. Das muß ja nicht unbedingt heißen, daß die Regex falsch ist, im Gegensatz zu SSH beobachte sehr wenige fehlerhafte Login-Versuche bei mir per SMTP/IMAP/POP3.
Wenn aber in der entsprechende Log-Datei fehlerhafte Logins enthalten sind, dann solltest du mal solche Zeilen hier posten, das macht es einfacher, den Fehler in deiner Regex zu finden.
 
erstmal vielen Dank für die Hilfe, ich hab den logpath nochmal auf die auth.log gelegt da es sich auch um die betreffende Log handelt. Folgendes aus der heutigen auth.log

Code:
Sep 10 12:17:56 xxxxxxx dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=harrypotter rhost=1$
Sep 10 12:18:00 xxxxxxx dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown

hab dann noch mal die regex mit dem Befehl gecheckt: fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/dovecot.conf
mit folgender Ausgabe:

Code:
Running tests
=============

Use regex file : /etc/fail2ban/filter.d/dovecot.conf
Use log file   : /var/log/auth.log


Results
=======

Failregex
|- Regular expressions:
|  [1] authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=\S* rhost=<HOST> user=\S*
|
`- Number of matches:
   [1] 0 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Sorry, no match

Look at the above section 'Running tests' which could contain important
information.

das hilft hoffentlich weiter eine Lösung zu finden!

nochmals besten Dank
 
ok.. ich schein den Fehler gefunden zu haben!

statt:

Code:
failregex = authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=\S* rhost=<HOST> user=\S*

muss es wohl:

Code:
failregex = authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=\S* rhost=<HOST>

heißen... Danke für die Hinweise und die richtige Fragestellung! :-)
 
schade, so ganz läuft es noch nicht!! Die Regeln funktionieren laut Fail2ban regex aber ich habe heute morgen die Logs kontrolliert und musste feststellen das Fail2ban die Zugriffe leider noch nicht blockt?! Bin wirklich mit meinem Latein am Ende... vielleicht hat jemand von euch noch eine gute Idee!!
 
Versuch mal bei dir:

Code:
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*

Bei mir gehts damit wunderbar.
 
Die Regex paßt aber nicht zu o.g. Logauszug (auch wenn die Zeile IMHO nicht vollständig angegeben wurde).
 
ok der Auszug ist tatsächlich nicht vollständig.. entschuldigt! Hier nochmal der vollständige Auszug aus der auth.log:

Code:
Sep 12 10:53:01 xxx.xxx.xxx.xxx dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=webuser rhost=xxx.xxx.xxx.xxx
Sep 12 10:53:11 xxx.xxx.xxx.xxx dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown
 
Kommen denn auch genug fehlerhafte Login-Versuche von der gleichen IP im in Fail2ban eingestellten Zeitraum zusammen?
 
na ich glaube jetzt läufts.. :-)

es musste in der /etc/fail2ban/jail.local eine Änderung vorgenommen werden!

statt:
Code:
action   = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps", protocol=tcp]

in:

Code:
action   = iptables-multiport[name=dovecot-auth, port="pop3,pop3s,imap,imaps", protocol=tcp]

geändert werden!

Besten Dank für die Hinweise und hoffentlich hilft es anderen auch noch weiter!
 
Back
Top