Um sich an einem SMTP Anzumelden gibt es 2 weit verbreitete Verfahren:
POP-Before-SMTP und SMTP_AUTH
Da POP-Before-SMTP einige Nachteile mit sich bringt, möchte ich hier kurz erklären wie man Postfix dazu bringt SMTP Authentifizierung anzubieten. Die Schnittstelle hierzu ist der SASL Server.
1. Installation der Pakete
apt-get install postfix-tls sasl2-bin libsasl2 libsasl2-modules
2. Konfiguration von SASL /etc/default/saslauthd
START=yes
MECHANISMS="pam"
3. Anlegen der Steuerdatei /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
saslauthd_path: /var/run/saslauthd/mux
autotransition: true
4. Konfiguration von Postfix
Der nächste Schritt ist abhängig davon ob Postfix im chroot laufen soll oder nicht. Dies entscheidet sich in der Datei /etc/postfix/master.cf in einer Zeile:
smtp inet n - - - - smtpd # Postfix SMTP ist in einem chroot
smtp inet n - n - - smtpd # Postfix SMTP ist nicht in einem chroot
Fall 1 - Wenn Postfix im chroot laufen soll:
rm -r /var/run/saslauthd
mkdir -p /var/spool/postfix/var/run/saslauthd
cd /var/run/
ln -s /var/spool/postfix/var/run/saslauthd saslauthd
chgrp sasl /var/spool/postfix/var/run/saslauthd
chgrp sasl /var/run/saslauthd
adduser postfix sasl
Anpassen der Konfiguration /etc/postfix/main.cf
### SMTP Auth ###
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes
Überall wo es wichtig ist "permit_sasl_authenticated" hinzufügen. z.B.:
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Fall 2 - Wenn Postfix nicht im Chroot laufen soll
adduser postfix sasl
Anschließend anpassen der Datei /etc/postfix/main.cf wie oben genannt.
5. Restart der Dienste
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
Anschließend sollte Postfix SMTP-AUTH mittels SASL verstehen und die Passwörter vom Client richtig verarbeiten und diesem zum Versand authentifizieren.