auf Facebook teilen auf Google+ teilen auf LinkedIn teilen auf Pinterest teilen twittern
Werbehinweise
» Startseite » Blog » Mailserver daheim: Senderabhängige Authentifizierung 

Blog

August 2017 April 2017 März 2017 Februar 2017 Dezember 2016 Juli 2016 Februar 2016 Januar 2016 Oktober 2015 Juli 2015 Juni 2015 März 2015 Januar 2015 Dezember 2014 November 2014 Oktober 2014 September 2014 Juni 2014 April 2014 März 2014 Februar 2014 Januar 2014 Dezember 2013 November 2013 Oktober 2013 August 2013 Juli 2013 März 2013 Februar 2013 Januar 2013 Dezember 2012 November 2012 Oktober 2012 September 2012 August 2012 Juli 2012 Juni 2012 Mai 2012 April 2012 März 2012 Februar 2012 Januar 2012 Dezember 2011 November 2011 Oktober 2011 September 2011 August 2011 Juli 2011 Juni 2011 Mai 2011 April 2011 März 2011 Februar 2011 Januar 2011 Dezember 2010 November 2010 Oktober 2010 September 2010 Ein Hoch auf alle Pappkartons dieser Welt! VirtualBox: Netzwerkkarte unter Linux plötzlich eth1 Thunderbird: Adressbuch synchronisieren Roundcube: IMAP Error: Empty startup greeting VirtualBox: Imagedatei »einschrumpfen« LC-Power 525B-PS USB 2.0 Gehäuse 5,25" Eine neue, regelmäßige Besucherin GUI für grub-Konfiguration Mailserver daheim: Senderabhängige Authentifizierung August 2010 Juli 2010 Juni 2010 Mai 2010 April 2010 März 2010 Februar 2010 Januar 2010 Dezember 2009 November 2009 Oktober 2009 September 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 Mai 2007 Februar 2007 Januar 2007 September 2006 August 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 November 2005 Oktober 2005 September 2005 Juli 2005 Juni 2005 Mai 2005 Mai 2004 Oktober 2003 September 2003 Juli 2003 Juni 2002 Mai 2002 März 2002 Februar 2002 Januar 2002 November 2001 Oktober 2001 Juli 2001 Juni 2001 Mai 2001 März 2001 Februar 2001 Januar 2001
get Opera
get Mozilla Firefox
get Konqueror
get Mozilla Thunderbird
get Ubuntu Linux

Anzeige
ALL-INKL.COM - Webhosting Server Hosting Domain Provider

27.

September

2010

Mailserver daheim: Senderabhängige Authentifizierung

Vor einem knappen Monat habe ich die Installation und Konfiguration von Postfix für das Versenden von E-Mails über einen Smarthost beschrieben. Wer mehrere E-Mailadressen hat und diese ebenfalls über seinen eigenen Mailserver nutzen möchte, muss Postfix dafür entsprechend konfigurieren.

Mailserver erkennen inzwischen in der Regel keine E-Mails mehr an wenn die E-Mailadresse des Absenders nicht in die Liste der zulässigen Domains des Mailservers passt. Daher muss man sich beim Versand der E-Mails beim jeweilig zuständigen Mailserver authentifizieren.

In der offiziellen Dokumentation ist dies unter dem Punkt Configuring Sender-Dependent SASL authentication auf Englisch zu finden.

Basierend auf dem bereits ganz oben verlinkten Informationen muss der bereits bestehende Mailserver nun noch entsprechend konfiguriert werden. Die bestehende Konfiguration sendet bereits E-Mails über einen als Smarthost angegebenen Server weiter, lokale Benutzernamen werden über die /etc/postfix/sender_canonical in real existierende E-Mailadressen umgeschrieben.

/etc/postfix/main.cf

In der Konfigurationsdatei /etc/postfix/main.cf müssen ein paar Einträge hinzugefügt werden. Einige Zeilen sind bereits bei der bestehenden Konfiguration vorhanden gewesen. Ich habe sie dennoch mit aufgeführt, da sie für den Betrieb notwendig sind.

 smtp_sender_dependent_authentication = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_connection_cache_on_demand = no smtp_sasl_password_maps = hash:/etc/postfix/sasl_password sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent sender_canonical_maps = hash:/etc/postfix/sender_canonical 

smtp_sender_dependent_authentication = yes aktiviert die senderabhängige Authentifizierung.

smtp_sasl_auth_enable = yes aktiviert die SASL-Authentifikation mit den externen Mailservern.

smtp_sasl_security_options = noanonymous erzwingt die Anmeldung, es werden keine anonyme Anfragen abgeschickt.

smtp_connection_cache_on_demand = no da bei SSL/TLS-Verbindungen ohnehin nicht das »connection cashing« funktioniert, wird es von vorneherein deaktivert.

smtp_sasl_password_maps = hash:/etc/postfix/sasl_password gibt an, wo sich die für die Authentifizierung benötigten Informationen als »lookup table« befinden.

sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent gibt an, wo sich die Informationen über die Zuweisung der Absenderadressen zum (externen) Mailserver befinden.

sender_canonical_maps = hash:/etc/postfix/sender_canonical gibt an, wie lokale Benutzernamen in real existierende E-Mailadressen umgeschrieben werden sollen.

Neben dem Aktivieren der senderabhängigen Authentifizierung müssen somit noch zwei weitere Dateien erstellt beziehungsweise mit Informationen gefüllt werden. Der Verweis auf die sender_canonical_maps ist bei diversen Anleitungen nicht zu finden. Ich habe sie dennoch mit aufgeführt, da beim Umschreiben lokaler Benutzer Fehler auftreten können.

/etc/postfix/sender_canonical

In der Datei /etc/postfix/sender_canonical wird angegeben, in welche real existierende E-Mailadresse die Mail lokaler Benutzer umgeschrieben werden soll. Als Beispiel:

 amy foo@bar.tld root foo@bar.tld 

Mails der lokalen Benutzer amy und root werden somit durch Postfix umgeschrieben und als foo@bar.tld an den externen Mailserver oder als Default angegebenen Smarthost weitergeleitet.

Die E-Mailadresse muss somit entweder über den Smarthost verschickt werden können oder ein entsprechender Eintrag in der Konfiguration für das senderabhängige Authentifizieren existieren. Ansonsten bleiben die E-Mails in der Queue liegen da sie nicht vom externen Mailserver angenommen werden.

Dies sei nur am Rande zur Vermeidung von Fehlern erwähnt und hat mit der eigentlichen Konfiguration für das senderabhängige Authentifizieren nichts zu tun.

/etc/postfix/sasl_password

In der Konfigurationsdatei /etc/postfix/sasl_password werden die Zugangsdaten für die externen Mailserver abgelegt. Die Passwörter werden dabei im Klartext gespeichert, daher ist nach dem Anlegen der Dateien auf die entsprechenden Rechte zu achten, damit nicht jeder Benutzer die Datei einfach auslesen kann.

Der Aufbau einer Zeile in der Datei kann unterschiedlich ausfallen.

 # Authentifizierung anhand der E-Mailadresse des Absenders # (bezogen auf sender_dependent_relayhost_maps) foo1@bar.tld login1:pass1 foo2@bar.tld login2:pass2 # Authentifizierung anhand der Domain des Absenders #(bezogen auf sender_dependent_relayhost_maps) smtp.foo.tld login2:pass3 # Authentifizierung für den default relayhost smtp.bar.tld login:pass 

In der Regel werden bei Anleitungen für smtp_sender_dependent_authentication mal die eine, mal die andere Variante für den Eintrag in der /etc/postfix/sasl_password behandelt. Die unterschiedlichen Varianten sind oben eigentlich schon erklärt, dennoch ein paar Zeilen zu den beiden Schreibweisen.

Soll explizit eine bestimmte E-Mailadresse mit einem bestimmten Login verwendet werden, so ist das oberste Beispiel zutreffend. Dies ist bei manchen Mailservern auch zwingend notwendig, bei anderen können alle E-Mails mit gültiger Domain über einen beliebigen Login verschickt werden.

Dafür wäre das zweite Beispiel zutreffen. Alle E-Mails von einer bestimmten Domain werden über die gegebenen Zugangsdaten verschickt. Jedoch ist hier ein Missbrauch möglich. Jede beliebige an den lokalen Postfix gerichtete E-Mail mit der passenden Domain wird über diese Authentifizierung verschickt. Wer die Konfiguration kennt, kann so mit beliebigiem [NAME]@foo.tld E-Mails versenden.

Wobei diese Gefahr natürlich auch beim standardmäßig als Relay angegebenen Mailserver vorhanden ist – sofern der lokale Postfix nicht auf eine Authentifizierung besteht.

/etc/postfix/sender_dependent

Bei meiner Konfiguration befinden sich die Informationen welche Absenderadressen mit einem Mailserver verbinden in der /etc/postfix/sender_dependent. Je nachdem was in der /etc/postfix/main.cf als Wert für sender_dependent_relayhost_maps angegeben wurde, kann es auch eine andere Datei sein. Daher die entsprechend angegebene Datei für die folgenden Zeilen auswählen:

 # Nach Absenderadresse aufgelöst (bezogen auf /etc/postfix/sasl_passwd) foo1@bar.tld [smtp.bar.tld] foo2@bar1.tld [smtp.bar1.tld]:587 # Nach Absenderdomain aufgelöst (bezogen auf /etc/postfix/sasl_passwd) @foo.tld [mail.foo.tld]:465 

Wird der Standardport für SMTP (25) verwendet, wird keine zusätzliche Angabe hinter dem Namen des Mailservers benötigt. Ansonsten wird sie einfach durch einen Doppelpunkt abgetrennt hinzugefügt.

Nicht dokumentiert aber zumindest bei meiner Version (Postfix 2.5.5) problemlos funktionierend: Nach der Domain der E-Mail aufgelöste Verbindung mit einem SMTP-Server.

postmap nicht vergessen!

Nachdem alle Daten in die Konfigurationsdateien eingegeben wurden, muss mit postmap noch der Hash für die jeweiligen Dateien erzeugt werden:

 sudo postmap /etc/postfix/sender_dependent sudo postmap /etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical 

Danach Postfix neu starten damit die Konfiguration übernommen wird:

 sudo /etc/init.d/postfix restart 

Nun sollte eigentlich alles funktionieren. Wer einen MUA wie Thunderbird oder Roundcube verwendet, kann nun zusätzliche Identitäten bei dem bestehenden Benutzerprofil erstellen. Eingehende E-Mails werden zumindest von diesen beiden MUAs nach einem Klick auf den Beantworten-Button mit der korrekten Identität für den Absender versehen.

Ebenso sollte nun der Versand mit einer solchen zusätzlichen Identität möglich sein. Falls es nicht klappt hilft der nächste Abschnitt eventuell weiter

Fehlersuche

Sollte Postfix bei den ersten Versuchen nicht wie gewünscht funktionieren hilft ein Blick in /var/log/mail.log. Dort teilt Postfix mit wenn etwas mit der Authentifizierung am externen Mailserver nicht funktioniert oder ein anderes Problem aufgetreten ist.

 sudo tail /var/log/mail.log 

Mit tail lässt man sich einfach die letzten Zeilen der Logdatei anzeigen. Viel bequemer als sie mit einem Editor zu öffnen oder vollständig mit cat ausgeben zu lassen.

Die vorhandenen Logdaten sollten eine Fehlerdiagnose ermögliche, welche schnell zur Problemlösung führt.

Tipp für Googlemail (TLS aktivieren/erzwingen)

Googlemail beziehungsweise gmail wollte zunächst keine Verbindung von meinem Postfix annehmen. Erst der Eintrag folgende Eintrag in der /etc/postfix/main.cf ließ die Verbindung zustandekommen:

 smtp_tls_security_level = encrypt 

Die Verbindung wurde vermutlich deshalb abgelehnt, da keine TLS-Anfrage an den Server gesendet wurde.

Hintergrund: Die Datenübertragung inklusive der Authentifizierung zwischen meinem lokalen Postfix und dem externen SMTP-Server erfolgt standardmäßig unverschlüsselt. Daher besteht die Gefahr das die Übermittlung der Daten von unbefugten Personen durch einen sogenannten »man in the middle«-Angriff mitgelesen werden.

Damit diese Sicherheitslücke geschlossen wird, kann Postfix angewiesen werden in jedem Fall eine SSL- beziehungsweise TLS-Verbindung (transport layer security) zum externen Server aufzubauen. Die Übermittlung der Daten erfolgt dann verschlüsselt.

Achtung: Nicht die Anmeldung am Server mit einer Verschlüsselung verwechseln. Die Anmeldung am Server ist lediglich der Nachweis dafür, dass man berechtigt ist auf den Server zuzugreifen. Die Datenübertragung selbst ist unverschlüsselt. Erst wenn man eine verschlüsselte Übertragung verlangt, wird das Senden von Passwörtern und dem Inhalt der E-Mail selbst geschützt.

Voraussetzung für eine verschlüsselte Übertragung ist natürlich, dass der externe SMTP-Server auch TLS unterstützt.

Da ich weiß das alle von mir verwendeten externen Mailserver TLS unterstützen, habe ich den Wert auf encrpyt gesetzt. Sollten sich in der Liste der verwendeten externen SMTP-Server auch welche befinden welche kein TLS unterstützen, ist folgender Eintrag vorzunehmen:

 smtp_tls_security_level = may 

Durch die Angabe von may wird TLS dann aktiviert, wenn der externe SMTP-Server TLS anbietet. Sollte dies nicht der Fall sein, wird eine unverschlüsselte Verbindung aufgebaut.

Googlemail beziehungsweise gmail scheint auf die verschlüsselte Übertragung zu bestehen. Daher war die Angabe dieser Option bei Postfix notwendig.

X_FISH


 
 
Das Generieren dieser Seite dauerte genau 0.04949 Sekunden.