Johannes Studt wrote:
vorweg erstmal ein Dankeschön, dass Du Dir die Zeit nimmst, meine Fragen derart ausführlich zu beantworten, das finde ich äußerst nett. :)
* Andreas Winkelmann
[2003-09-30 13:16]: MUA und dieser cyradm sind zwei verschiedene Dinge.
Zum Glück. ;)
Der MUA baut eine Verbindung zum Server auf und bekommt dann vom Server mitgeteilt, was der alles so an Authentifizierungsmechanismen kann. Dort sucht sich der Client dann das passende raus.
Und cyradm baut seine Verbindung zum Server anders auf als ein MUA? Oder warum benötigt der die Mechanismenansage?
Weil er sich dann wahrscheinlich "bessere" Authetifizierungsmechanismen raussucht, die aber nicht über saslauthd funktionieren. Deshalb versucht er dann die auxprop-plugins durch, wozu auch die sasldb gehört.
Aber woher nimmt er sich das Recht, dieses zu tun und mich zu verwirren? ;) Davon steht nämlich nix in der imapd.conf. Und vor allem: wenn er damit auf die Nase fällt, warum macht er es dann nicht so, wie es ihm in der imapd.conf vorgeschrieben wurde, nämlich mittels den über den saslauthd zur Verfügung stehenden Mechanismen?
Mich beschleicht irgendwie das Gefühl, dass da ein paar Sachen nebeneinander herentwickelt wurden und nix so recht aufeinander abgestimmt ist. Ich habe nämlich auch im Internet bei meiner Suche nicht wirklich viel dazu gefunden, was erklärt, /warum/ etwas /wie/ funktioniert, sondern immer nur einige kurze Anweisungen, wie man es konfigurieren kann, /dass/ es funktioniert. Mit den bei SuSE 8.0
Na denn "Willkommen im Cyrus-Land". Die Produkte aus dem Hause Cyrus, mit denen ich mich bisher beschäftigt habe, haben eines gemeinsam. Die Dokumentationen sind einfach nur bescheiden. Aber der Spitzenreiter ist SASL, es gibt zwar eine Handvoll Dokus, die man sich zusammensuchen muss, aber je mehr man findet, desto größer werden eigentlich die Lücken dazwischen. Und es scheint sich auch in absehbarer Zeit nicht wirklich zu bessern. SASL kommt einem manchmal ein wenig wie ein Flickenteppich vor. Die einzige sinnvolle Dokumentation zu SASL ist der Sourcecode ;-)
beiliegenden Versionen von Cyrus IMAP und SASL hab ich es auch ans Funktionieren bekommen, nur weiß ich eben gar nicht so recht, /warum/ es funktioniert, und das stört mich ein wenig... Auf dem SuSE 8.0-System steht in der /etc/imapd.conf der Eintrag
sasl_pwcheck_method: pam
Das ist von SASL-V1, unter V2 wird pam über saslauthd gemacht.
(das habe ich basierend auf einem Tip aus der Liste hier reingeschrieben) und nun werden dort seit Jahr und Tag die Clients entweder gegen die Logindatenbank oder gegen die sasldb authentifiziert, und zwar abhängig vom Client, und ich verstehe nicht, wieso. ;) Squirrelmail, welches direkt auf dem Rechner läuft, authentifiziert gegen die Logindatenbank, und wenn ich mit mutt von einem anderen Client aus eine Verbindung zu dem IMAP-Server aufbaue, wird dieser Versuch gegen die sasldb geprüft (ich merke das nur daher, weil die Passwörter der gleichen Benutzer in den Benutzerdatenbanken unterschiedlich sind). Mir fehlt hier einfach der eine Zwischenschritt, der mir klarmacht, anhand welcher Kriterien sich der IMAP-Server für die Benutzerdatenbank entscheidet. Ist sicher alles ganz einfach, und sobald ich das Brett vor meinem Kopf zerbissen habe, kann ich bestimmt selbst drüber lachen, aber momentan verzweifle ich echt daran... ;)
Hmm, bei der Initialisierung von SASL wird das /lib/sasl[2]/ Verzeichnis nach auth-mechs durchsucht. Das sind dann die Libs wie libplain.*, liblogin.*, libcrammd5.*, libdigestmd5.*.... Dann werden die erwünschten mit der Konfigurationsoption "mech_list" herausgefiltert. Dann wird nochmal vom Server gefiltert z.B. Postfix oder auch IMAPd und das Resultat wird dem Client dann angeboten. Nehmen wir mal an es wird kein Filter benutzt, dann sieht der Client "CRAM-MD5 DIGEST-MD5 PLAIN LOGIN". Dann wählt er daraus die raus die er unterstüzt, OutlookExpress z.B. kann nur PLAIN/LOGIN und sagt dem Server mit welchem Mechanismus er sich authentifizieren möchte. Normalerweise wählt der Client dann die "Sicheren" raus z.B. "DIGEST-MD5". So und da kommt Dein Problem, saslauthd kann das nicht. Jetzt ignoriert SASL die Konfigoption "pwcheck_method: saslauthd" und versucht die Auxprop-Plugins. Dort liegt standardmässig halt libsasldb.* und er greift auf die sasldb zu. Dieses verhalten könntest Du dann mit "mech_list: plain login" schon im Vorfeld unterdrücken. Ich vermute mal das könnte Dein oben angesprochenes Phänomen erklären.
/etc/imapd.conf: sasl_pwcheck_method: saslauthd auxprop sasl_auxprop_plugin: sasldb sasl_mech_list: plain login
Dabei gibt es aber ein bis zwei Wermutstropfen, saslauthd kann nur plain und login, deswegen musst Du sasldb ebenfalls beschneiden. Und ich weiss nicht wie er auf die realms reagiert, das müsstest Du mal ausprobieren.
Werde ich machen, wenn ich die einfachen Zusammenhänge begriffen habe, danke. :)
Die Konfiguration bietet es an, dass heisst aber nicht dass es auch funktioniert.
Aus dem Bauch heraus würde ich Dir dann doch lieber direkt die sasldb empfehlen.
Also in die /etc/imapd.conf
sasl_pwcheck_method: auxprop sasl_auxprop_plugin: sasldb
und den saslauthd disablen? Oder noch ganz anders?
Nö, das wäre oki.
Versteh mein hartnäckiges Nachfragen bitte nicht falsch, ich suche hier parallel dazu auch kräftig im Internet nach Antworten. Mir geht es nicht allein darum, das /irgendwie/ ans Rennen zu bekommen (das ginge bestimmt recht schnell), sondern vor allem auch darum, es zu /verstehen/. Wenn Du keine Lust oder Möglichkeit hast, mir ohne fehlenden dringenden Anlass jede Menge Zeit zu opfern, könnte ich das gut verstehen, Du musst es nur sagen und ich lass Dich mit meiner Fragerei in Ruhe. ;-) Allerdings wäre das schade, denn ich vermute fast, dass sich mit diesem Thema kaum einer ausser Dir richtig gut auskennt, sonst wäre ich hier sicherlich mit Hinweisen und Ratschlägen zugeschüttet worden wie fast alle anderen Hilfesuchenden hier...
-- Andreas