Einleitung:
Wir wollen auf einen Server mit Postfix und ohne ISP-Software schnell und unkompliziert mit SMTP-Auth einrichten um ein Open-Relay zu vermeiden.
Installation:
Für die vollständige Installation braucht man folgende Pakete:
apt-get install postfix postfix-tls sasl2-bin libsasl2 libsasl2-modules
Nun wird die Datei /etc/postfix/main.cf
erweitert:
smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Damit Postfix mit Sasl kommunizieren kann, braucht man folgende Datei /etc/postfix/sasl/smtpd.conf
:
pwcheck_method: saslauthd mech_list: PLAIN LOGIN saslauthd_path: /var/run/saslauthd/mux autotransition:true
Damit Sasl auch weiß, was es tun soll braucht es /etc/pam.d/smtp
.
(ACHTUNG! Bitte die unterschiedlichen Debian-Versionen beachten!)
Debian bis 5 (Lenny)
auth required /lib/security/pam_unix_auth.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_unix_passwd.so session required /lib/security/pam_unix_session.so
Debian ab 6.0 (Squeeze)
auth required /lib/security/pam_unix.so account required /lib/security/pam_unix.so password required /lib/security/pam_unix.so session required /lib/security/pam_unix.so
(Wie man sieht haben sich in Squeeze die Libraries in eine Einzige vereint.)
Wenn Postfix im chroot (default) läuft muß noch etwas getan werden:
mkdir /var/spool/postfix/etc/pam.d
cp -p /etc/pam.d/smtp /var/spool/postfix/etc/pam.d/
mkdir -p /var/spool/postfix/var/run
cd /var/run
mv saslauthd/ /var/spool/postfix/var/run
ln -s /var/spool/postfix/var/run/saslauthd/ saslauthd
#Da es vereinzelt Probleme gab noch sicherheitshalber die Rechte setzten:
chown -R postfix /var/spool/postfix/var/run/saslauthd
Nun noch in /etc/default/saslauthd
das #-Zeichen entfernen bei:
START=yes MECHANISMS="pam"
Der Postfix-User ist der Gruppe sasl hinzuzufügen:
adduser postfix sasl
Und nun kann man durchstarten:
/etc/init.d/saslauthd start /etc/init.d/postfix reload
Probleme:
Viele Probleme wurden mir hier berichtet. Meistens liegen sie daran, daß irgendwo ein Schritt nicht richtig ausgeführt wird oder ein Tippfehler war. Das häufigste Problem, war allerdings ein Rechte-Problem des Verzeichnises /var/spool/postfix/var/run/saslauthd
. (Lösung siehe oben im Text.)
Die Funktion von saslauthd
kann man übrigends wie folgt testen:
testsaslauthd -f /var/run/saslauthd/mux -u USER -p PASSWORT testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -u USER -p PASSWORT