[Postfixbuch-users] Relay-Server benutzen

Alexander Dalloz ad+lists at uni-x.org
Mi Aug 4 21:20:49 CEST 2010


Am 04.08.2010 20:05, schrieb Stefan Bielenberg:
> Am 04.08.2010 19:13, schrieb Alexander Dalloz:

>> Welcher Floh hat Dir gehustet, mit smtp_sasl gingen nur plaintext
>> mechanisms? Es geht, was der $smtp_sasl_type unterstützt.
> 
> Also hier im "Postfix SASL Howto" steht:
> 
>     Important
> 
>     Do not specify any other mechanisms in mech_list than PLAIN or LOGIN
> when using saslauthd! It can only handle these two mechanisms, and
> authentication will fail if clients are allowed to choose other mechanisms.
> 
>     Important
> 
>     Plaintext mechanisms (PLAIN, LOGIN) send credentials unencrypted.
> This information should be protected by an additional security layer
> such as a TLS-encrypted SMTP session (see: TLS_README).

Dies ist aber schon eine gänzlich andere Aussage! Es bezieht sich auf
die Einrichtung von SMTP AUTH auf Serverseite mit dem saslauthd von
cyrus-sasl.

> Naja, so richtig habe ich es auch nicht verstanden. Vielleicht liegt es
> ja daran, dass bei mir "saslauthd -a shadow" läuft und gar nicht die
> sasldb benutzt? Hier meine /usr/lib/sasl2/smtpd.conf:
> 
> pwcheck_method: saslauthd
> mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
> log_level: 3
> 
> d.h. also ohne:
> 
> #pwcheck_method: auxprop
> #auxprop_plugin: sasldb
> 
> Oder habe ich da schon wieder was nicht richtig mitbekommen?
> 
> Gruss,
> Stefan

Hallo Stefan,

ich versuche mal mein Glück, das ein bischen zu ordnen. Leider drückst
Du Dich entweder sehr unglücklich aus, oder Du rührst einfach alles
durch den Mixer und am Ende kommt da nichts Gutes bei raus. Dabei
beziehe ich mich explizit auf Dein

"Wusste nur nicht, dass der eingebaut Postfix-SMTP-Client nur PLAIN und
LOGIN mag, hatte aber Name und Password nur in der sasldb2 angegeben,
daher hat er auch nichts gefunden beim authentifizieren..."

Also, in Deinem spezifischen Setup hast Du gleich beide Seiten, Postfix
als Server, der AUTH nutzt (smtpd_sasl_*), um Deinem Webserver das
Relaying zu erlauben, und eben den Webserver mit seinem Postfix, der
dort SASL aus Clientsicht (smtp_sasl_*) einsetzt.

Nun gut, Du richtest also auf dem Mailrelay SMTP AUTH unter Verwendung
von cyrus-sasl ein. Da hast Du die Wahl zwischen saslauthd oder auxprop
als Methode. Wie das von Dir zitierte Dokument richtig sagt, kannst Du
mit saslauthd kein CRAM-MD5 oder DIGEST-MD5 machen. Frage also: Warum
trägst Du beides dennoch unbeirrt in Deiner mech_list Anweisung ein?

Ich meine mich zu erinnern, dass der saslauthd unter Debian so
kompiliert ist, dass er eine sasldb als Backend nutzen kann - was in
meinen Augen aber Unfug ist. Prüfen kann man das mit

saslauthd -v

Willst Du shared secret Mechanismen einsetzen, dann musst Du statt des
saslauthd die cyrus-sasl Standardmethode auxprop einsetzen. Die
simpelste und default Pluginvariante von auxprop ist der Einsatz von
sasldb, der bei Einsatz von SASLv2 auf eine sasldb2 zugreift (cyrus-sasl
Version 1 setzt bestimmt niemand mehr ein).

Richtig ist also, dass bei Nutzung von "saslauthd -a shadow" keine
sasldb2 abgefragt wird, sondern der saslauthd die von Clientseite
übergebenen Credentials mit den shadow Systeminformationen abgleicht.

Wohlgemerkt, ich rede die ganze Zeit von der Konfiguration von SASL AUTH
auf der Seite, wo Dein Postfix als Authentifizierungsserver arbeitet. In
der main.cf sind dazu die smtpd_sasl_* Parameter von Bedeutung.

Auf Clientseite (bei Dir der Webserver mit Postfix) muss die
Authentifizierung gegen den Server natürlich passend eingerichtet
werden. Da Dein Server keine Authentifizerung per CRAM-MD5 unterstützt
(auch wenn Du dies in der smtpd.conf eingetragen hast), hat es keinen
Sinn, dies vom Client her zu versuchen. Also bleiben nur LOGIN und
PLAIN. Auf Seiten des Clients musst Du dafür aber weder die smtpd.conf
konfigurieren, noch einen saslauthd laufen lassen, noch eine sasldb2
füttern. Du widmest Dich ganz den smtp_sasl_* Optionen in der main.cf,
insbesondere smtp_sasl_password_maps. Kommen nun LOGIN und PLAIN als
plaintext Mechanismen zum Einsatz, ist es - wie von Dir zitiert -
unbedingt angeraten, die Verbindung zwischen Client und Server per
TLS/SSL abzusichern, da sonst Username und Passwort als base64 codierte
Werte mitgesnifft werden können.

Die beiden Seiten von SMTP AUTH in Postfix konfiguriert hat Patrick auf

http://postfix.state-of-mind.de/patrick.koetter/easterhegg2004/

Ersetzt keine vollständige Dokumentation, aber ist sehr komprimiert das
Wesentliche. Ich gebe zu, speziell cyrus-sasl ist hinsichtlich
Dokumentation und Implementierung nicht unbedingt eines der
Vorzeigeprojekte von OSS. Daher wundert es kaum, dass viele, die bereits
Dovecot für IMAP4/POP3 einsetzen, auch gleich dessen SASL
Implementierung für AUTH auf der Postfix Serverseite verwenden.

Gruß

Alexander



Mehr Informationen über die Mailingliste Postfixbuch-users