====== Benutzerauthentifizierung für postfix ======
Vorraussetzung: [[postfix]] [[sasl]]
Empfohlen wird die Verwendung von [[postfix-tls|SSL]]
===== Benötigte Pakete =====
* ''postfix'' ( SuSE )
* ''postfix sasl2-bin'' ( Debian ab 4.0 ):
* ''cyrus-sasl cyrus-sasl-plain'' (CentOS ab 7 )
===== postfix - saslauthd =====
''/etc/postfix/main.cf'' :
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients = yes
''/etc/postfix/sasl/smtpd.conf'' : Debian (ab 3.1)
''/etc/sasl2/smtpd.conf'' : openSuSE ( ab 11.4 ), CentOS (ab 4):
pwcheck_method: saslauthd
mech_list: plain login
__Achtung__: Problem mit Postfix-Chroot.
Lösungsmöglichkeiten: Postfix ''smtpd'' aus Chroot entfernen, oder ''saslauthd'' Socket ins Chroot legen
==== Konfiguration ohne Postfix-Chroot ====
postfix ''smtpd'' aus der chroot Umgebung entfernen. Ist bei CentOS und openSuSE ( 11.1 ) per default der Fall
''/etc/postfix/master.cf'' :
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
=== saslauthd testen ===
testsaslauthd -s login -u username -p password
==== Konfiguration mit Postfix-Chroot ====
postfix ''smtpd'' in chroot Umgebung. Ist bei Debian ( 4.0 ) per default der Fall.
''/etc/postfix/master.cf'':
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
=== Debian ===
''/etc/default/saslauthd'' : (Debian 4.0)
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
rm -r /var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd/ /var/run/saslauthd
adduser postfix sasl
/etc/init.d/saslauthd restart
/etc/init.d/postfix restart
== SuSE 12.1 ==
mkdir -p /var/spool/postfix/var/run/
mv /var/run/sasl2 /var/spool/postfix/var/run/
ln -s /var/spool/postfix/var/run/sasl2 /var/run/sasl2
((
Nicht notwendig, erhöht aber vielleicht die Sicherheit:
groupadd sasl
groupmod -A postfix sasl
chgrp sasl /var/spool/postfix/var/run/sasl2
chmod 750 /var/spool/postfix/var/run/sasl2
))
/etc/init.d/saslauthd restart
/etc/init.d/postfix restart
=== SASL Testen ===
== Debian ==
testsaslauthd -u username -p password -f /var/spool/postfix/var/run/saslauthd/mux
== openSuSE 12.1 ==
testsaslauthd -u username -p password -s login -f /var/spool/postfix/var/run/sasl2/mux
===== postfix - auxprop =====
==== Benötigte Pakete ====
libsasl2-modules
==== Relay Server ====
''/etc/postfix/main.cf'' :
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients = yes
''/etc/postfix/sasl/smtpd.conf'' : Debian (ab 3.1)
''/usr/lib/sasl2/smtpd.conf'': SuSE, CentOS (ab 4):
pwcheck_method: auxprop
mech_list: plain login cram-md5 digest-md5
auxprop_plugin: sasldb
adduser postfix sasl
saslpasswd2 -c -u $(postconf -h myhostname) kimba
==== Relay Client ====
''/etc/postfix/main.cf'' :
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/relay-passwd
''/etc/postfix/sasl/relay-passwd'' :
# postmap hash:/etc/postfix/sasl/relay-passwd
notebook12.linuxhotel.de kimba:uqu3Phoo
postmap hash:/etc/postfix/sasl/relay-passwd
===== Testen =====
=== Benötigte Pakete ===
Debian:
swaks oder libmime-perl oder metamail
=== swaks ===
swaks -f from@example.com -t to@example.com -s localhost -a -au nutzer14 -ap test -apt
=== netcat / telnet ===
Encodiertes Passwort erzeugen:
perl -MMIME::Base64 -e 'print encode_base64("iw\0iw\0passwort")'
oder:
echo -en "iw\0iw\0passwort" | mimencode
Authentifizierung testen:
netcat -v localhost 25
220 notebook12.linuxhotel.de ESMTP Postfix (Debian/GNU)
EHLO localhost
250-localhost
250-AUTH LOGIN PLAIN
AUTH PLAIN aXcAaXcAdGVzdA==
235 Authentication successful
===== Verschlüsselung erzwingen =====
''/etc/postfix/main.cf'' :
smtpd_tls_auth_only = yes
===== Dokumentation =====
==== Debian ====
* /usr/share/doc/sasl2-bin/README.Debian