[Postfixbuch-users] SMTP_AUTH

Patrick Ben Koetter p at state-of-mind.de
So Okt 24 22:22:14 CEST 2004


* Silvio Siefke <listen at silvio-siefke.de> [041024 22:08]:
> saslfinger -s
> saslfinger - postfix Cyrus sasl configuration Son Okt 24 22:02:52 CEST 2004
> version: 0.9.4
> mode: server-side SMTP AUTH
> 
> -- basics --
> Postfix: 2.1.4
> System: Debian GNU/\s 3.0 \n \l
> 
> -- smtpd is linked to --
>         libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x40186000)

Postfix unterstützt SASL 2.

> -- active SMTP AUTH parameters for smtpd --
> smtpd_sasl_auth_enable = yes
> 
> 
> -- listing of /usr/lib/sasl --

ignorieren wir...

> -- listing of /usr/lib/sasl2 --
> insgesamt 980
> drwxr-xr-x    2 root     root         4096 24. Okt 16:26 .
> drwxr-xr-x   38 root     root         8192 24. Okt 16:27 ..
> -rw-r--r--    1 root     root        12030  8. Okt 20:19 libanonymous.a
> -rw-r--r--    1 root     root          851  8. Okt 20:19 libanonymous.la
> -rw-r--r--    1 root     root        12092  8. Okt 20:19 libanonymous.so
> -rw-r--r--    1 root     root        12092  8. Okt 20:19 libanonymous.so.2
> -rw-r--r--    1 root     root        12092  8. Okt 20:19
> libanonymous.so.2.0.19
> -rw-r--r--    1 root     root        14660  8. Okt 20:19 libcrammd5.a
> -rw-r--r--    1 root     root          837  8. Okt 20:19 libcrammd5.la
> -rw-r--r--    1 root     root        14596  8. Okt 20:19 libcrammd5.so
> -rw-r--r--    1 root     root        14596  8. Okt 20:19 libcrammd5.so.2
> -rw-r--r--    1 root     root        14596  8. Okt 20:19 libcrammd5.so.2.0.19
> -rw-r--r--    1 root     root        42534  8. Okt 20:19 libdigestmd5.a
> -rw-r--r--    1 root     root          860  8. Okt 20:19 libdigestmd5.la
> -rw-r--r--    1 root     root        39704  8. Okt 20:19 libdigestmd5.so
> -rw-r--r--    1 root     root        39704  8. Okt 20:19 libdigestmd5.so.2
> -rw-r--r--    1 root     root        39704  8. Okt 20:19
> libdigestmd5.so.2.0.19
> -rw-r--r--    1 root     root        21522  8. Okt 20:19 libgssapiv2.a
> -rw-r--r--    1 root     root          972  8. Okt 20:19 libgssapiv2.la
> -rw-r--r--    1 root     root        21244  8. Okt 20:19 libgssapiv2.so
> -rw-r--r--    1 root     root        21244  8. Okt 20:19 libgssapiv2.so.2
> -rw-r--r--    1 root     root        21244  8. Okt 20:19 libgssapiv2.so.2.0.19
> -rw-r--r--    1 root     root        21854  8. Okt 20:19 libkerberos4.a
> -rw-r--r--    1 root     root          902  8. Okt 20:19 libkerberos4.la
> -rw-r--r--    1 root     root        22068  8. Okt 20:19 libkerberos4.so
> -rw-r--r--    1 root     root        22068  8. Okt 20:19 libkerberos4.so.2
> -rw-r--r--    1 root     root        22068  8. Okt 20:19
> libkerberos4.so.2.0.19
> -rw-r--r--    1 root     root        12524  8. Okt 20:19 liblogin.a
> -rw-r--r--    1 root     root          831  8. Okt 20:19 liblogin.la
> -rw-r--r--    1 root     root        12776  8. Okt 20:19 liblogin.so
> -rw-r--r--    1 root     root        12776  8. Okt 20:19 liblogin.so.2
> -rw-r--r--    1 root     root        12776  8. Okt 20:19 liblogin.so.2.0.19
> -rw-r--r--    1 root     root        28646  8. Okt 20:19 libntlm.a
> -rw-r--r--    1 root     root          825  8. Okt 20:19 libntlm.la
> -rw-r--r--    1 root     root        28456  8. Okt 20:19 libntlm.so
> -rw-r--r--    1 root     root        28456  8. Okt 20:19 libntlm.so.2
> -rw-r--r--    1 root     root        28456  8. Okt 20:19 libntlm.so.2.0.19
> -rw-r--r--    1 root     root        17988  8. Okt 20:19 libotp.a
> -rw-r--r--    1 root     root          825  8. Okt 20:19 libotp.la
> -rw-r--r--    1 root     root        40200  8. Okt 20:19 libotp.so
> -rw-r--r--    1 root     root        40200  8. Okt 20:19 libotp.so.2
> -rw-r--r--    1 root     root        40200  8. Okt 20:19 libotp.so.2.0.19
> -rw-r--r--    1 root     root        12472  8. Okt 20:19 libplain.a
> -rw-r--r--    1 root     root          831  8. Okt 20:19 libplain.la
> -rw-r--r--    1 root     root        12620  8. Okt 20:19 libplain.so
> -rw-r--r--    1 root     root        12620  8. Okt 20:19 libplain.so.2
> -rw-r--r--    1 root     root        12620  8. Okt 20:19 libplain.so.2.0.19
> -rw-r--r--    1 root     root        18734  8. Okt 20:19 libsasldb.a
> -rw-r--r--    1 root     root          837  8. Okt 20:19 libsasldb.la
> -rw-r--r--    1 root     root        16604  8. Okt 20:19 libsasldb.so
> -rw-r--r--    1 root     root        16604  8. Okt 20:19 libsasldb.so.2
> -rw-r--r--    1 root     root        16604  8. Okt 20:19 libsasldb.so.2.0.19
> 
> 
> -- mechanisms on localhost --
> 250-AUTH GSSAPI NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5

Alle mech libs von oben werden als mechs angeboten. Das ist gut.

> -- content of /etc/postfix/sasl/smtpd.conf --
> pwcheck_method: saslauthd

saslauthd unterstützt ausschließlich plaintext Mechanismen. Es wird aber
alles angeboten. Das müssen wir unterbinden, sonst wählt ein client
vielleicht einen nicht-plaintext Mech und saslauthd meldet:
authentication failed zurück, weil er das halt nicht handeln kann...
also fügen wir hinzu:

mech_list: PLAIN LOGIN

> -- active services in /etc/postfix/master.cf --
> # service type  private unpriv  chroot  wakeup  maxproc command + args
> #               (yes)   (yes)   (yes)   (never) (100)
> smtp      inet  n       -       -       -       -       smtpd

so so... wir fahren Postfix chrooted... Da liegt der Hund begraben, denn
Postfix kann so nie den socket von saslauthd erreichen. Nimmt mindestens
den smtpd aus dem chroot, restarte Postfix und dann teste nochmal. Wenn
es nicht auf Anhieb klappt, dann teste mit "testsaslauthd" ohne Postfix.

> > Erkläre noch einmal wie Du dir die Authentisierungskette vorstellst:
> > "Postfix soll PLAIN und LOGIN anbieten. Die Authentisierung soll
> > saslauthd übernehmen, der dazu User in der passwd prüft."
> 
> Postfix soll auf die Linux Benutzerdatenbank zurückgreifen, außer es
> verletzt die Sicherheit grob. Die Passwörtern in die Datenbank von
> SASL2 ablegen, wäre eine Option, aber ist es sinnvoll? Was meinen die
> profis.

Eine separate DB ist dann sinnvoll, wenn Du z.B. shell-user von SMTP
AUTH usern trennen willst oder auf keinen Fall willst, das SMTP AUTH auf
eine Quelle zugreift in der auch der root account, sein pass etc.
abgelegt sind.

Eine separate DB erfordert aber auch separate Administrationstools zum
anlegen, ändern und löschen von Einträgen.

Eine separate DB ist vielleicht von Interesse, wenn man (völlig um die
Ecke gedacht) mehr als nur plaintext Mechanismen anbieten muss. Denn die
pwcheck_method auxprop bietet zwar alle nur erdenklichen Mechanismen
(plaintext, shared-secret, kerberos ...) aber keinen Zugriff auf das
authentication backend passwd/shadow.

Einen Rat à la "Tu dies und es wird gut sein" kann ich Dir also nicht
geben. Deine Anforderungen und Deine Policy bestimmen, was Du wählen
solltest. 

In jedem Fall solltest Du aber erst mal bei saslauthd bleiben, bis es
läuft. Dann hast Du erst mal alle Stolpersteine aus dem Weg geräumt und
kannst ein komplexeres Setup in Angriff nehmen.

p at rick



-- 
SMTP AUTH
Howto: <http://postfix.state-of-mind.de/patrick.koetter/smtpauth/>
Debug: <http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>




Mehr Informationen über die Mailingliste Postfixbuch-users