PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mal wieder: Cyrus + SASLauthd/PAM und sasldb2 - Verständnisproblem



tschloss
18.12.05, 12:14
Hi,
ich habe zwar 2 Cyrus IMAP-Server am laufen (SUSE 9.2 und 9,3), kapiere aber den AUthentifizierungsvorgang nicht (mehr).
(Durch meinen Nachtrag glaube ich der Sache bereits auf der Spur zu sein: die Auth-KOnfig bezieht sich nur auf den imapd und auf den Login der IMAP-CLients. Die Tools wie cyradm verwenden wohl eine andere Methode - warum auch immer).

Also folgendes ist im imapd.conf eingestellt:

sasl_pwcheck_method saslauthd

Nichts mit "auxprop"!

Der "saslauthd" läuft mit

saslauthd -a pam

In /etc/pam.d/imap finde ich (indirekt über includes)

auth required pam_env.so
auth required pam_unix2.so
account required pam_unix2.so
password required pam_pwcheck.so nullok
password required pam_unix2.so nullok use_first_pass use_authok

Ich vermute, dass "unix2.so" im wesentlichen einen Authentifizierung gegen /etc/shadow bedeutet.

Jetzt habe ich gerade unter SUSE 10.0 einen frischen Cyrus eingespielt mit diesen Einstellungen und bekomme bei einem login-Versuch mit "cyradm" folgende Messages:


Dec 18 12:14:35 frodo master[7099]: about to exec /usr/lib/cyrus/bin/imapd
Dec 18 12:14:35 frodo imap[7099]: executed
Dec 18 12:14:35 frodo imap[7099]: accepted connection
Dec 18 12:14:35 frodo imap[7099]: DIGEST-MD5 server step 1
Dec 18 12:14:35 frodo perl: DIGEST-MD5 client step 2
Dec 18 12:14:38 frodo imap[7099]: DIGEST-MD5 server step 2
Dec 18 12:14:38 frodo imap[7099]: unable to open Berkeley db /etc/sasldb2: No such file or directory
Dec 18 12:14:38 frodo imap[7099]: unable to open Berkeley db /etc/sasldb2: No such file or directory
Dec 18 12:14:38 frodo imap[7099]: no secret in database
Dec 18 12:14:38 frodo imap[7099]: badlogin: localhost [127.0.0.1] DIGEST-MD5 [SASL(-13): user not found: no secret in database]
Dec 18 12:14:41 frodo perl: No worthy mechs found

NACHTRAG: Ein normaler Login vom IMAP-Client geht! Dort kommt entsprechend auch eine positive Message über einen erfolgreichen "plaintext login". Also scheint "cyradm" ein anderes Auth-Verfahren zu nutzen, als der IMAP-Client. Das führt zur Zusatzfrage 3 (s.u.)

Frage 1:
Warum in aller Welt brauche ich eine "sasldb2"???
Laut Doku ist die sasldb2 die Datenbank, die für "sasl_pwcheck_method auxprop" (bei Auswahl von sasldb als sasl_auxprop_plugin) ANSTELLE saslauthd verwendet werden könnte (bei mir aber nicht werden sollte). Auch in saslauthd gibt es keinen Hinweis, dass der in einer eigenen Datenbank nachschlagen sollte.

Frage 2:
Laut Doku ist das saslauthd Verfahren für eine direkte Password-verification, also nicht über einen Hash, wie bei den shared secret Mechanismen, wie z.B. Digest-MD5. In den Messages passiert aber etwas mit Digest-MD5. Wo kommt das bei obiger Konfig ins Spiel - ich hätte das nicht erwartet.

Nachtrag-Frage 3:
Wenn "cyradm" bzw. die Cyrus-Tools ein anderes Auth-Verfahren verwenden: welches? Kann man das einstellen? Ist es selbstverständlich, dass hier von dem für den imapd eingestellten Verfahren abgewichen wird oder warum macht man das so?


(Ich kann natürlich dem Server jetzt wieder eine /etc/sasldb2 mittel saslpasswd2 erzeugen, aber ich hätte gerne gewußt, wie der Kram zusammenhängt!)

Danke im voraus!
Grüße
Thomas

Roger Wilco
18.12.05, 13:36
Dir fehlt konsequent ein Doppelpunkt hinter "sasl_pwcheck_method". Wenn das in deiner Konfiguration genauso drinsteht, solltest du das korrigieren, da sonst die Default-Methode (sasldb2) genommen wird.

@Frage 2: Passe die Variable sasl_mech_list an. Darin kannst du die erlaubten Authentifizierungsmethoden auflisten.

@Frage 3: cyradm benutzt nur die Mechanismen, die vom imapd angeboten werden. Selbst greift es nicht auf die sasldb|saslauthd|auxprop zu. Wenn dein imapd also Mechanismen anbietet, die er nicht beherrscht...

tschloss
18.12.05, 13:38
Also ich habe jetzt herausgefunden, dass es halt einen Unterschied zwischen der Auth eines IMAP-Clients und der für "cyradm" gibt.

Die CLient-Auth funktioniert wie konfiguriert.

Es bleibt die Frage nach den Methoden der Auth des cyradm.
- Warum ist das eine andere Methode?
- Kann man das konfigurieren oder geht das "zwingend" über sasldb2 (zwingend heißt, bei meiner Distri, also Änderungen at compile time sind jetzt nicht so willkommen, aber interessant dennoch).

Thanks.
Thomas

tschloss
18.12.05, 14:01
Dir fehlt konsequent ein Doppelpunkt hinter "sasl_pwcheck_method". Wenn das in deiner Konfiguration genauso drinsteht, solltest du das korrigieren, da sonst die Default-Methode (sasldb2) genommen wird.
Danke für deine Hinweise!
Der ":" ist beim Abschreiben verloren gegangen, er ist aber tatsächlich vorhanden.



@Frage 2: Passe die Variable sasl_mech_list an. Darin kannst du die erlaubten Authentifizierungsmethoden auflisten.
DIese Variable habe ich im Moment gar nicht. Was wäre denn der Unterschied zu einer Auflistung der Methoden: "sasl_pwcheck_method: saslauthd auxprop"?


@Frage 3: cyradm benutzt nur die Mechanismen, die vom imapd angeboten werden. Selbst greift es nicht auf die sasldb|saslauthd|auxprop zu. Wenn dein imapd also Mechanismen anbietet, die er nicht beherrscht...
Stehe auf dem Schlauch: was definiert denn, was er "anbietet" und was er "beherrscht"? (Also laut Kmail bietet der frische Server tatsächlich "Plaintext" und "Cram-MD5" sowie "Digest-MD5" an.)

Vielen Dank auch für eine eventuelle zweite Antwort.
(Ich würde mich da gerne etwas konzentrierter einlesen, aber bis jetzt habe ich nichts gefunden - es bleibt also das Stück-für-Stück und man-page für man-page nebst Beitrag für Beitrag - Verfahren)

GReetz zum 4. Advent
Thomas

Roger Wilco
19.12.05, 18:12
DIese Variable habe ich im Moment gar nicht. Was wäre denn der Unterschied zu einer Auflistung der Methoden: "sasl_pwcheck_method: saslauthd auxprop"?
Wenn schon, dann "sasl_pwcheck_method: LOGIN PLAIN" (mal als Beispiel). Wenn der Wert nicht gesetzt ist, bietet Cyrus alles an, was er kann, ansonsten nur das, was in der Variable steht.


Stehe auf dem Schlauch: was definiert denn, was er "anbietet" und was er "beherrscht"?
Im Endeffekt der Authentifizierungsmechanismus. saslauthd kann z. B. nur mit Plaintext Passwörtern umgehen. Daher bringt es dir nicht viel, wenn der Client versucht, sich per DIGEST-MD5 zu authentifizieren. Ich denke mal, dass deine Probleme aus dieser Richtung kommen. ;)