Wenn Postfix als SMTP Server arbeiten soll, gegen den sich die
Clients per SMTP AUTH authentisieren sollen, muß dem Parameter
smtpd_recipient_restrictions
die Option
permit_sasl_authenticated
hinzugefügt werden.
smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination ...
Die Konfiguration der SASL Bibliothek für den smtpd Dienst
erfolgt in der Datei /etc/postfix/sasl/smtpd.conf
. Hier wird die
Prüfungsmethode des Checks und die erlaubten Mechanismen angegeben.
pwcheck_method: saslauthd mech_list: cram-md5 plain login
sasldb
SASL bietet mehrere Möglichkeiten die Passwürter zu verwalten. Neben der eigenen Passwortdatenbank sasldb können die die Benutzerdatenbanken des Systems genutzt werden.
Die Passwärter werden per Default in der Datei/etc/sasldb2
gespeichert. Der Postfix Prozess smtpd benötigt
Lesezugriff auf diese Datei. Auf Debian Systemen muss sasldb2 für den Benutzer
postfix (bzw. die Grupppe postfix) lesbar sein.
Falls der SMTP Daemon in einer Chroot- Umgebung betrieben wird, muss diese Datei auch unter $CHROOT/etc/sasldb2 erreichbar sein. Unter Umständen müssen die Postfix- Init-Scripte (Debian Sarge) so angepasst werden, dass diese Datei bei einem Restart des Postfix Daemons in die Chroot-Umgebung kopiert wird.
Die Pflege der Benutzerpasswörter erfolgt mit Hilfe des
Kommandos saslpasswd2
. Hierbei ist die korrekte Nutzung
der SASL Domain (realm) wichtig. Bei der Prüfung der Autentisierung wird in der Passwortdatenbank
ein Benutzername gesucht, dessen Realm den Wert besitzt, der mit der Postfix-Konfigurationsdirektive
smtpd_sasl_localdomain = $myhostnamefestgelegt wird. Im obigen Fall kann der zu konfigurierende Realm mit Hilfe des
postconf
Befehls ermittelt.
postconf -h myhostnameDas SASL Passwort kann dann mit dem folgenden Kommandoaufruf gesetzt werden:
saslpasswd -c -u `postconf -h myhostname` martinwNach dem Update der SASL-Passwort Datei muss der Postfix-Daemon unter Debian Sarge neu gestartet werden, um die Passwort Datei in die Chroot-Umgebung zu kopieren.
Die SASL Authentisierung erfolgt mit Benutzername / Passwort und einem zugehörigen Realm. Die Prüfung ist nur erfolgreich, wenn alle 3 Parameter mit den Daten in der SASL Passwortdatenbank übereinstimmen.
Der Schalter -u
legt den (SASL) Realm für die Authentisierungsdaten
fest. Per Default prüft Postfix die Authentisierung mit dem Realm des Hostnamens
(genauer gesagt: mit dem Wert des Parameters $myhostname).
Der Realm zur Überprüfung der Authentisierung wird von Postfix festgelegt und an den SASL Layer
übergeben. Die Einstellungen des Clients haben hierauf keinen Einfluss.
In aktuellen Postfix-Versionen kann der Realm mit Hilfe der Postfix- Konfigurationsdirektive smtpd_sasl_local_domain explizit festgelegt werden.
SASL bietet auch die Möglichkeit die Authentisierung gegen die Passwortdatenbank(en) des jeweiligen Systems durchzuführen. Diese Konfiguration bietet den Vorteil, daß nicht eine weitere Benutzerdatenbank gepflegt werden muß.
Das SASL Paket liefert hierfür den pwcheck
Daemon
mit, so daß das Postfix Subsystem nicht mit root Berechtigungen
laufen muß. Der pwcheck
Daemon kann
/etc/{passwd,shadow}
direkt oder die Möglichkeiten
der PAM Bibliothek nutzen.
Bei Debian (Woody) Systemen werden hierfür zwei
unterschiedliche Daemons installiert. Je nach Konfiguration wird
pwcheck_standard
oder pwcheck_pam
gestartet. Die Einstellung des Daemons wird in
/etc/default/saslauthd
vorgenommen. Bei Problemen mit der
SASL Authentifizierung sollte zuerst überprüft werden, ob der
korrekte Daemon gestartet wurde.
Die SASL Pakete von Debian Sarge ((das sasl2-bin Paket) installieren
anstat pwcheck den Daemon saslauthd. Dieser wird allerdings nicht
benötigt, falls Postfix mit sasldb2 als Benutzerdatenbank
für SMTP AUTH betrieben wird.
Die Konfiguration von saslauthd wird in der Datei /etc/default/saslauthd
vorgenommen. Hier kann die Passwortdatenbank mit mit dem Parameter MECHANISMS angegeben
werden:
MECHANISMS="pam shadow"