Fail2Ban und Postscreen

Fail2Ban lässt sich dahingehend erweitern, um auf die Ausgaben von Postscreen zu reagieren und die IP Adressen zu blocken.

Man könnte Fail2Ban anweisen die ankommende IP zu blocken, falls diese von Postscreen auf einer Blacklist oder mehreren Blacklists gefunden wurde.
Der entsprechende Postscreen Log-Eintrag sieht so aus:

NOQUEUE: reject: RCPT from [x.x.x.x]:xxxx: 550 5.7.1 Service unavailable;
client [x.x.x.X] blocked using zen.spamhaus.org;
from=<spammer@domain.tld>, to=<spam@kupschke.net>, proto=ESMTP, helo=<...>

Nun muss man den Fail2Ban Postfix Filter entsprechend anpassen, diesen findet man
in der Datei /etc/fail2ban/filter.d/postfix.conf:

Original:

 failregex = reject: RCPT from (.*)\[<HOST>\]: 554

Meine Anpassungen:

 failregex = reject: RCPT from (.*)\[<HOST>\]: 554
             reject: RCPT from (.*)\[<HOST>\]:([0-9]{4,5}:)? 550

Sofern die Fail2Ban Standardeinstellungen gesetzt sind, würde ein Spammer jetzt nach 3 Versuchen für 10 Minuten gebannt werden.
Mein Postscreen fragt allerdings mehrere Blacklists ab und blockiert den Spammer erst wenn er in mehreren Blacklists eingetragen ist, diese Überprüfungen sind recht teuer, daher möchte ich den Spammer bei seinem ersten Versuch für eine Stunde blockieren.
Um diese Konfiguration einzurichten öffnen wir die Datei /etc/fail2ban/jail.conf und ändern die Einträge wie folgt ab:

Originial:

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log

Meine Anpassungen:

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 1
bantime = 3600

Ob man auch alles richtig eingestellt hat, und welchen Erfolg man bisher mit diesen Regeln gehabt hätte, kann man sich mit diesem Befehl anzeigen lassen:

fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf

Mithilfe von Fail2Ban kann man natürlich auch auf alle anderen Ausgaben von Postscreen und Postfix reagieren und die Spammer sehr effizient abwehren.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert