Schlagwort-Archive: Postfix

adlerweb // BitBastelei 2024-01-25 19:13:48

Örks, unter greift wohl SASL Auth Fehler von nicht, Filter wohl kaputt. Problem insbesondere unser Lieblingshassobjekt / . Also manuell.

journald -t entspricht SYSLOG_IDENTIFIER bei journalmatch. Macht dann:

journalmatch = SYSLOG_IDENTIFIER=postfix/smtps/smtpd
failregex = \[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:(?! Connection lost to authentication server| Invalid authentication mechanism)

Ohne Gewähr und so.

Postfix: Alle ausgenenden Mails mit einer Absenderadresse

Standardmäßig versendet Postfix die Mails wie sie ankommen, also z.B. mit dem jeweiligen Nutzernamen als Absendeadresse. Nutzt man jedoch einen Smarthost, lässt ausgehende Mails also z.B. über den Server des Providers abwickeln, ist dies häufig nicht erlaubt, einzig die eigene E-Mail wird akzeptiert.

Mit diesen Schritten kann man Postfix anweisen alle ausgehenden Mails so umzuschreiben, dass die vorgegebene E-Mail-Adresse als Absender genutzt wird. Da so auch nicht mehr auf den ersten Blick ersichtlich ist wer die Mail versendet hat, eignen sich diese Schritte nur für Systeme, auf denen ausschließlich vertrauenswürdige Personen Zugang gewährt wurde. Weiterhin gehe ich davon aus, dass Postfix bereits funktionsfähig konfiguriert wurde und für den Versand per Smarthost eine Authentifizierung notwendig ist.

Fangen wir damit an das Passwort zu hinterlegen. Hierzu legen wir eine neue Datei /etc/postfix/relay_password an und tragen Benutzername und Passwort ein.

mail.myprovider.example myuser:mypass

Ggf. sollte die Datei über entsprechende Dateirechte vor neugierigen Blicken geschützt werden. Da Postfix üblicherweise aus geschwindigkeitsgründen Datenbankdateien nutzt müssen wir unsere Textdatei noch entsprechend umwandeln:

postmap /etc/postfix/relay_password

Nun bereiten wir noch eine Absenderersetzung vor. Die Datei sender_canonical biegt mWn den internen Absender um, welcher z.B. im Envelope verwendet wird, header_check kümmert sich um das FROM:-Feld. Je nach Provider kann es ausreichend sein nur eine der Varianten zu verwenden, beachtet jedoch, dass solche Mails gerne von SPAM-Filtern aussortiert werden.

/.+/ myuser@myprovider.example
/From:.*/ REPLACE From: myuser@myprovider.example

Hier sind die Dateien als regexp deklariert und können ohne Mapping genutzt werden.

Zuletzt machen wir diese Dateien noch in der Postfix-Konfiguration bekannt:

[...]
relayhost = mail.myprovider.example

smtp_sasl_password_maps=hash:/etc/postfix/relay_password
smtp_sasl_auth_enable=yes
smtp_sasl_security_options = noanonymous

sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
smtp_header_checks = regexp:/etc/postfix/header_check

In der ersten Zeile wird der eigentliche Server des Providers als ausgehender Server definiert – mit dieser Einstellung wird Postfix nicht mehr selbst versuchen Mails zuzustellen sondern alles an diesen weiterleiten. Im nächsten Block wird angegeben, dass für den ausgehenden Server eine Authentifizierung notwendig ist und wo die Passwörter zu finden sind. In den letzten Zeilen definieren wir unsere Filter, welche die Ersetzung vornehmen.

Nach dem nächsten Reload des MTA sollten nun alle E-Mails mit der gesetzten Absenderadresse über den angegebenen Smarthost versendet werden.

BitNotice #108 – Rspamd: Server-SPAM-Filter mit Postfix

BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix

(36 MB) 00:23:26

2017-04-30 10:30 🛈

Aktuell teste ich für einige meiner Server neue Setups, unter anderem zur SPAM-Abwehr. Einen recht soliden Eindruck macht hierbei Rspamd, ein in C geschriebener SPAM-Filter mit LUA-Modulen. Neben einer großen Liste an Header- und Contentfiltern für die Punktevergabe beherrscht er auch die üblichen Dinge wie SPF, DKIM, DCC und RBLs. Ergänzt durch einen selbstlernenden Bayes-Filter soll so der „Unrat“ abgehalten werden. Ergänzt wird das Ganze durch ein Webinterfact, welches Statistiken bietet und Parametereinstellungen zulässt.

Zusammen mit Postfix und RMilter lässt sich so ein Setup erstellen, welches die Prüfung bereits während des Empfangs durchführt. So lässt sich die Mail unverzüglich ablehnen und man belästigt keine Dritten mit ungewolltem Backscatter.

Hier mal kurz und etwas Planlos die Installation des Rspamd mit Zubehör sowie die Integration in Postfix.

Edit: Je nach Setup muss der Postfix-User der Gruppe rmilter hinzugefügt werden

policyd-weight: warning: child: err: Undefined subroutine &main::dn_expand called

Örks – nach dem letzten Neustart hatte einer meiner Mailserver etwas Schluckauf an den Tag gelegt: Mails wurden nicht mehr angenommen, im Log zeigte sich policyd-weight als Verursacher:

warning: child: err: Undefined subroutine &main::dn_expand called at /usr/libexec/postfix/policyd-weight line 3591, ...

Ursache ist offenbar ein veralteter Aufruf der Library Net::DNS dieses Perl-Monsters. Ein passender Patch ist bei Debian zu finden, mit 3 geänderten Zeilen ist der Fehler erledigt und die Software wieder lauffähig.

+++ policyd-weight
72 -use Net::DNS::Packet qw(dn_expand);
3591 -            my ($dn, $offset) = dn_expand(\$qb, 0);
3591 +	    my ($decoded, $offset) = decode Net::DNS::DomainName(\$qb);
3592 +            my $dn = $decoded->name;