Kategorien
Linux

Mit RSPAMD Spam und Anhänge aussortieren

Mein altes Setup hatte Amavis/Spamassassin im Einsatz und über Jahre gute Dienste in Sachen Spamfilter geleistet, ich fand es allerdings an der Zeit mal etwas Neues auszuprobieren!

Also Manuals gelesen und mich ans Werk mit rspamd gemacht, bisher hatte ich mein Mail Setup so gestaltet dass Spam Mails an ein eigenes Postfach gingen in dem sich diese Sammelten und das zentral abgearbeitet wurde. Ebenso handhabe ich unerwünschte Anhänge (EXE-Dateien, VB-Scripte, Srceensaver,…) – diese gingen ebenfalls in ein eigens Postfach, wurden manuell geprüft und gegebenenfalls per Umleitung zugestellt (Thunderbird Plugin – Mail Redirect).

Beim rspamd gibt es keine direkten Ziele die man definieren kann wenn ein Anhang als „BAD_ATTACHMENT“ gekennzeichnet wurde, ebenso sieht es beim X-SPAM-Flag aus.

Für das Aussortieren der Spam Mails wird gewöhnlich sieve genutzt, ich habe mich damit ein wenig gespielt und bin zu folgender sieve-Regel gekommen:

require [„mailbox“, „fileinto“, „envelope“, „copy“];
if allof (header :contains „X-Spamd-Result“ [„FILENAME_BLACKLISTED“, „MIME_BAD_ATTACHMENT“],
not envelope „To“ „banned@example.com“) {
redirect :copy „banned@example.com“;
discard;
stop;
}
if allof (header :contains „X-Spam-Flag“ „YES“,
not envelope „To“ „spam@example.com“) {
redirect :copy „spam@example.com“;
discard;
stop;
}
if allof (header :contains „X-Spam“ „Yes“,
not envelope „To“ „spam@example.com“) {
redirect :copy „spam@example.com“;
discard;
stop;
}

Damit werden entsprechende Mails in die Postfächer von banned@example.com und spam@example.com ausgefiltert.

Die sieve Regel wird im Dovecot als „sieve_before“ Regel ausgeführt, obiges Beispiel setzt natürlich eine funktionsfähige dovecot/sieve Integration voraus!

Kategorien
Linux

Amavis/Postfix Mailversand an bestimmte externe IP Adresse binden

Wenn ein Server zwei oder mehrere IP Adressen hat, dann sollte Postfix seine Mails möglichst über eine schicken damit der PTR Record vom empfangenden Mailserver korrekt aufgelöst werden kann.

Ist das nicht der Fall lehnen viele Mailserver die Mails ab. Oder wie bei meinem Fall die zweite Adresse liegt in einem dynamischen Bereich und wird von Blacklists entsprechend geführt und somit vom Mailserver auch abgelehnt.

Also muss Postfix an eine bestimmte Adresse gebunden werden und zwar für ausgehende Mails, das erledigt man mit folgender Zeile in der Datei /etc/postfix/main.cf

smtp_bind_address = öffentliche_ip_adresse

So weit so gut – nur verhindert die default Einstellung von Amavis den Versand der Mail noch mit folgender Fehlermeldung:

Jul 22 18:52:39 servername amavis[11337]: () (!)DENIED ACCESS from IP öffentliche_ip_adresse, policy bank “

Aber auch das kann man umgehen indem man Amavis bei bringt von welchen Adressen es Mails zu akzeptieren hat, dafür editieren wir die Datei /etc/amavis/conf.d/50-user und tragen folgende Zeile ein:

@inet_acl = qw( 127.0.0.1 öffentliche_ip_adresse weitere_interne_ipadressen );

Nachdem Neustart von Postfix und Amavis sollte die Mails dann wie gewollt über die richtige Adresse versendet werden!