Hallo,
ich habe unter Debian Sarge OpenLDAP SASLauthd und Cyrus21 installiert. Bei der Konfiguration habe ich mich an http://wiki.bsd-crew.de/index.php/Projektseminar_Mailserver#Cyrus-SASL orientiert.
Im LDAP wurde ein Testuser als PosixAccount eingerichtet (via phpLDAPadmin). --------------------------
ldapsearch -x -v -LLL -b ou=mail,dc=mydomain,dc=de uid=testuser
ldap_initialize( <DEFAULT> ) filter: uid=testuser requesting: ALL dn: uid=testuser,ou=mail,dc=mydomain,dc=de uid: testuser givenName: test sn: user cn: testuser loginShell: /bin/bash uidNumber: 2000 gidNumber: 2000 homeDirectory: /home/testuser shadowMin: -1 shadowMax: 999999 shadowWarning: 7 shadowInactive: -1 shadowExpire: -1 shadowFlag: 0 objectClass: top objectClass: person objectClass: posixAccount objectClass: shadowAccount objectClass: inetOrgPerson --------------------------
ldapsearch -x -LLL -b "" -s base supportedSASLMechanisms
dn: supportedSASLMechanisms: NTLM supportedSASLMechanisms: DIGEST-MD5 supportedSASLMechanisms: CRAM-MD5 --------------------------
saslauthd wurde wie folgt gestartet: # saslauthd -a ldap -O /etc/saslauthd.conf --------------------------
cat /etc/saslauthd.conf
ldap_servers: ldap://localhost/ ldap_search_base: ou=mail,dc=mydomain,dc=de ldap_auth_method: bind ldap_filter: uid=%U --------------------------
Die Verbindung zwischen saslauthd und ldap scheint zu funktionieren: --------------------------
testsaslauthd -u testuser -p testpw
0: OK "Success."
testsaslauthd -u testuser -p falschesPW
0: NO "authentication failed" -------------------------- Dabei ist irrelevant, mit welcher Verschlüsselung das Passwort im LDAP abgelegt wurde. Das Ergebnis bleibt unverändert.
Cyrus: -------------------------- /etc/imapd.conf (veränderte Einstellungen): ... admins: testuser sasl_pwcheck_method: saslauthd ... # wahlweise ohne bzw. mit folgenden Einstellungen getestet: virtdomains: userid virtdomains: uid virtdomains: yes defaultdomain: mail.mydomain.de --------------------------
Der Verbindungsversuch mit:
cyradm --user testuser 127.0.0.1
cyradm: cannot authenticate to server as user testuser --------------------------
Die Meldung dazu in /var/log/mail.log: -------------------------- cyrus/imapd[15514]: badlogin: localhost[127.0.0.1] DIGEST-MD5 [SASL(-13): user not found: no secret in database] -------------------------- Bei Änderung in /etc/imapd.conf: - sasl_auto_transition: no + sasl_auto_transition: yes
lautet die Fehlermeldung in /var/log/mail.log: cyrus/imapd[15780]: badlogin: localhost[127.0.0.1] DIGEST-MD5 [SASL(-17): One time use of a plaintext password will enable requested mechanism for user: no secret in database] --------------------------
Woran könnte das Login scheitern?
Dankbar für Lösungen oder Denkanstöße.
Gruß Rico Körner
2006/12/7, Rico Koerner rico@netbreaker.de:
Hallo,
ich habe unter Debian Sarge OpenLDAP SASLauthd und Cyrus21 installiert. Bei der Konfiguration habe ich mich an http://wiki.bsd-crew.de/index.php/Projektseminar_Mailserver#Cyrus-SASL orientiert.
[...]
cyrus/imapd[15514]: badlogin: localhost[127.0.0.1] DIGEST-MD5 [SASL(-13): user not found: no secret in database]
Wenn du gehashte Passwörter im LDAP ablegst, dann funktioniert nur PLAIN und LOGIN als Authentifikationsmechanismus. Für das DIGEST Zeugs mußt Du die Passworter in der SASL Passwortdatenbank speichern.
Du solltest in /etc/imapd.conf folgende Zeile aufnehmen: sasl_mech_list: plain login
Viele Grüße, Gregor
Gregor Jasny schrieb:
Wenn du gehashte Passwörter im LDAP ablegst, dann funktioniert nur PLAIN und LOGIN als Authentifikationsmechanismus. Für das DIGEST Zeugs mußt Du die Passworter in der SASL Passwortdatenbank speichern.
Du solltest in /etc/imapd.conf folgende Zeile aufnehmen: sasl_mech_list: plain login
es hat zwar etwas bewirkt, allerdings noch immer nicht erfolgreich:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
:-(
werd mal weitersuchen
Gruß Rico
On Thu, Dec 07, 2006 at 11:00:31PM +0100, Rico Koerner wrote:
Gregor Jasny schrieb:
Hi Rico,
es hat zwar etwas bewirkt, allerdings noch immer nicht erfolgreich:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
Schau mal nach ob die Anfrage bis zum LDAP durchkommt (/var/log/slapd) oder ob sie bei SASL schon hängen bleibt.
Ciao, Tobias
Tobias Koenig schrieb:
On Thu, Dec 07, 2006 at 11:00:31PM +0100, Rico Koerner wrote:
Gregor Jasny schrieb:
Hi Rico,
es hat zwar etwas bewirkt, allerdings noch immer nicht erfolgreich:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
Schau mal nach ob die Anfrage bis zum LDAP durchkommt (/var/log/slapd) oder ob sie bei SASL schon hängen bleibt.
so siehts bei testsaslauthd aus: --------------------- slapd[16905]: conn=86 fd=19 ACCEPT from IP=127.0.0.1:53141 (IP=0.0.0.0:389) slapd[16905]: conn=86 op=0 BIND dn="" method=128 slapd[16905]: conn=86 op=0 RESULT tag=97 err=0 text= slapd[16905]: conn=86 op=1 SRCH base="ou=mail,dc=netbreaker,dc=de" scope=2 deref=0 filter="(uid=testuser)" slapd[16905]: conn=86 op=1 SRCH attr=dn slapd[16905]: <= bdb_equality_candidates: (uid) index_param failed (18) slapd[16905]: conn=86 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text= slapd[16905]: conn=86 op=2 BIND dn="uid=testuser,ou=mail,dc=mydomain,dc=de" method=128 slapd[16905]: conn=86 op=2 BIND dn="uid=testuser,ou=mail,dc=mydomain,dc=de" mech=SIMPLE ssf=0 slapd[16905]: conn=86 op=2 RESULT tag=97 err=0 text= ---------------------
bei cyradm kommt da erstmal nichts an.
Allerdings verwundert mich, daß bereits beim "cyrus21 restart" 4x folgende Anfrage beim LDAP-Server ankommt:
--------------------- slapd[16905]: conn=87 fd=25 ACCEPT from IP=127.0.0.1:54392 (IP=0.0.0.0:389) slapd[16905]: conn=87 op=0 BIND dn="" method=128 slapd[16905]: conn=87 op=0 RESULT tag=97 err=0 text= slapd[16905]: conn=87 op=1 SRCH base="dc=mydomain,dc=de" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uid=cyrus)" slapd[16905]: <= bdb_equality_candidates: (uid) index_param failed (18) slapd[16905]: conn=87 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text= slapd[16905]: conn=87 op=2 SRCH base="dc=mydomain,dc=de" scope=2 deref=0 filter="(&(objectClass=posixGroup)(memberUid=cyus))" slapd[16905]: conn=87 op=2 SRCH attr=gidNumber slapd[16905]: conn=87 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text= slapd[16905]: conn=87 fd=25 closed ---------------------
Es gibt aber gar keinen cyrus im LDAP, auch kein bind dahin in saslauthd oder keine LDAP-Clienteinstellung, die auf cyrus verweist. In der imapd.conf ist "admins: testuser" gesetzt, sowie *_admins auskommentiert. Auch das explizite setzen von "*_admins: testuser" ändert nichts an der Situation. *grübel*
Jetzt noch mehr verwirrt. Mal sehen ob mich der debug-Modus von saslauthd weiterbringt.
Gruß Rico
Tobias Koenig schrieb:
On Thu, Dec 07, 2006 at 11:00:31PM +0100, Rico Koerner wrote:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
Schau mal nach ob die Anfrage bis zum LDAP durchkommt (/var/log/slapd) oder ob sie bei SASL schon hängen bleibt.
anscheinend kommt es nicht mal beim saslauthd an, denn im debug-Mode gibt es bei der Anfrage vom cyradm keine Reaktion.
# saslauthd -d -a ldap -O /etc/saslauthd.conf saslauthd[19607] :main : num_procs : 5 saslauthd[19607] :main : mech_option: /etc/saslauthd.conf saslauthd[19607] :main : run_path : /var/run/saslauthd saslauthd[19607] :main : auth_mech : ldap saslauthd[19607] :ipc_init : using accept lock file: /var/run/saslauthd/mux.accept saslauthd[19607] :detach_tty : master pid is: 0 saslauthd[19607] :ipc_init : listening on socket: /var/run/saslauthd/mux saslauthd[19607] :main : using process model saslauthd[19608] :get_accept_lock : acquired accept lock saslauthd[19607] :have_baby : forked child: 19608 saslauthd[19607] :have_baby : forked child: 19609 saslauthd[19607] :have_baby : forked child: 19610 saslauthd[19607] :have_baby : forked child: 19611
bei testsaslauthd -u testuser -p testpw
saslauthd[19662] :rel_accept_lock : released accept lock saslauthd[19663] :get_accept_lock : acquired accept lock saslauthd[19662] :do_auth : auth success: [user=testuser] [service=imap] [realm=] [mech=ldap] saslauthd[19662] :do_request : response: OK
Warum kommt vom cyrus bzw, cyradm nichts an?
Gibt es noch einen anderen Weg, wie cyrus an die LDAP-Daten kommt? PAM ist allerdings auch nicht grad der ideale Weg, da die Mailaccounts keine Benutzeraccounts sind.
Auf Hilfe hoffend,
Rico
Rico Koerner rico.koerner@heico.net (Fr 08 Dez 2006 22:47:28 CET):
Tobias Koenig schrieb:
On Thu, Dec 07, 2006 at 11:00:31PM +0100, Rico Koerner wrote:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
Schau mal nach ob die Anfrage bis zum LDAP durchkommt (/var/log/slapd) oder ob sie bei SASL schon hängen bleibt.
saslauthd[19662] :do_auth : auth success: [user=testuser] [service=imap] [realm=] [mech=ldap] saslauthd[19662] :do_request : response: OK
Warum kommt vom cyrus bzw, cyradm nichts an?
Gibt es noch einen anderen Weg, wie cyrus an die LDAP-Daten kommt?
Es muß irgendwo einen Patch geben, der LDAP für auxprop (?) möglich macht.
Aber auch wir haben cyrus + saslauthd + LDAP. In imap.conf
sasl_mech_list: PLAIN sasl_pwcheck_method: saslauthd
Und schon sollte das gehen, wenn der saslauthd läuft, was er ja bei Dir zu tun scheint (und entsprechend konfiguriert, was er ja auch ist).
Bin mir jetzt nicht sicher, ob das schon jemand geschrieben hatte....
Tobias Koenig schrieb:
On Thu, Dec 07, 2006 at 11:00:31PM +0100, Rico Koerner wrote:
cyrus/imapd[16625]: badlogin: localhost[127.0.0.1] plaintext testuser SASL(-4): no mechanism available: checkpass failed
Schau mal nach ob die Anfrage bis zum LDAP durchkommt (/var/log/slapd) oder ob sie bei SASL schon hängen bleibt.
Etwas aufschlußreicher vielleicht: /var/log/auth.log (ohne sasl_mech_list in imapd.conf)
cyradm --user testuser 127.0.0.1
cyrus/imapd[19734]: sql_select option missing cyrus/imapd[19734]: auxpropfunc error no mechanism available cyrus/imapd[19734]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql cyrus/imapd[19734]: OTP unavailable because can't read/write key database /etc/opiekeys: No such file or directory cyrus/imapd[19734]: DIGEST-MD5 server step 1 perl: DIGEST-MD5 client step 2
und nach der Passworteingabe:
cyrus/imapd[19734]: DIGEST-MD5 server step 2 cyrus/imapd[19734]: no secret in database perl: NTLM client step 1 cyrus/imapd[19734]: NTLM server step 1 cyrus/imapd[19734]: client flags: 207 perl: NTLM client step 2 perl: No worthy mechs found
Das Ganze mit "sasl_mech_list: PLAIN LOGIN" in imapd.conf:
cyrus/imapd[19782]: sql_select option missing cyrus/imapd[19782]: auxpropfunc error no mechanism available cyrus/imapd[19782]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql perl: No worthy mechs found
nach dem Passwort: cyrus/imapd[19782]: unknown password verifier
Wieso eigentlich "plugin: sql"?
Statt Klarheit gibt's neue Rätsel. :-(
Rico
Rico Koerner schrieb:
Hallo,
/etc/imapd.conf (veränderte Einstellungen): ... admins: testuser sasl_pwcheck_method: saslauthd
^^^^^^^^^ Das Problem lag in einem hinterhältigen Schreibfehler (saslsautd statt saslauthd) :-(( Man sollte eben doch besser alles kopieren anstatt abzutippen.
Trotzdem danke für die Denkanstöße, hat zumindest geholfen, den Fehler einzukreisen.
Rico
lug-dd@mailman.schlittermann.de