Slapd autentifiziert mahara-Anfragen, moodle-Anfragen aber nicht

hallo zusammen,

ich habe hier einen frisch installierten mahara-Server, der problemlos gegen den slapd auf einem lmn6-server authentifiziert.

Die anfragen eines moodle-servers quittiert slapd aber mit Fehler 49 (wrong credentials). Unten sind Auszuege aus der Logdatei auf dem lmn6-Server.

mahara fragt etwas anders an: was bedeuted mech=SIMPLE, ssf=0 ? Spielt das ueberhaupt eine Rolle? Auf der moodle-admin-Seite gibt es keine weiteren Details. Alle Anfrage-Einstellungen auf dem mahara-server stimmen mit denen auf dem moodle-Server ueberein.

Ich habe nun lange gesucht, aber nichts passendes gefunden.

Viele Gruesse
Michael

mahara:
Apr 8 14:44:12 vcaponova slapd[23100]: conn=1037 op=2 BIND dn=„uid=dt,ou=accounts,dc=wara,dc=de“ method=128
Apr 8 14:44:12 vcaponova slapd[23100]: conn=1037 op=2 BIND dn=„uid=dt,ou=accounts,dc=wara,dc=de“ mech=SIMPLE ssf=0
Apr 8 14:44:12 vcaponova slapd[23100]: conn=1037 op=2 RESULT tag=97 err=0 text=

moodle:
Apr 8 14:45:20 vcaponova slapd[23100]: conn=1040 op=2 BIND dn=„uid=dt,ou=accounts,dc=wara,dc=de“ method=128
Apr 8 14:45:20 vcaponova slapd[23100]: conn=1040 op=2 RESULT tag=97 err=49 text=

Hallo Michael,

trag mal im LDAP modul von moodle noch einen Bindnutzer mit credentials ein.
Das kann ein beliebiger Nutzer der lmn62 sein.

LG

Holger

hallo holger,

sehr anstrengend, ldap und moodle.

auf der shell funktioniert das:

22:08/34 vcaponova ~ # ldapsearch -D "uid=dt,ou=accounts,dc=wara,dc=de" -b "ou=accounts,dc=wara,dc=de" -W -x  "(uid=dt)"
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <ou=accounts,dc=wara,dc=de> with scope subtree
# filter: (uid=dt)
# requesting: ALL
#

# dt, accounts, wara.de
dn: uid=dt,ou=accounts,dc=wara,dc=de
cn: Michael Dienert
uidNumber: 10092
sambaPrimaryGroupSID: S-1-5-21-2616045414-2706686551-2415073437-21001
sambaAcctFlags: [UX]
gecos: Michael Dienert
sambaPwdLastSet: 1426597155
mail: dt@wara.de

mit demselben bind-pfad und passwort in moodle, schreibt slapd:

Apr  8 22:13:39 vcaponova slapd[23100]: conn=2334 fd=29 ACCEPT from IP=141.31.147.1:60524 (IP=0.0.0.0:389)
Apr  8 22:13:39 vcaponova slapd[23100]: conn=2334 op=0 BIND dn="uid=dt,ou=accounts,dc=wara,dc=de" method=128
Apr  8 22:13:39 vcaponova slapd[23100]: conn=2334 op=0 RESULT tag=97 err=49 text=
Apr  8 22:13:39 vcaponova slapd[23100]: conn=2334 op=1 UNBIND
Apr  8 22:13:39 vcaponova slapd[23100]: conn=2334 fd=29 closed

wenn ich
cn=admin,dc=wara,dc=de als bind-pfad mit dem admin passwort (nur zum testen) verwende und mich dann als beliebiger user anmelden moechte sieht es so aus:

Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 fd=29 ACCEPT from IP=141.31.147.1:60586 (IP=0.0.0.0:389)
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=0 BIND dn="cn=admin,dc=wara,dc=de" method=128
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=0 BIND dn="cn=admin,dc=wara,dc=de" mech=SIMPLE ssf=0
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=0 RESULT tag=97 err=0 text=
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=1 SRCH base="dc=wara,dc=de" scope=2 deref=0 filter="(&(objectClass=posixAccount)(uid=dt))"
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=1 SRCH attr=uid
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=2 BIND anonymous mech=implicit ssf=0
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=2 BIND dn="uid=dt,ou=accounts,dc=wara,dc=de" method=128
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=2 RESULT tag=97 err=49 text=
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 op=3 UNBIND
Apr  8 22:18:19 vcaponova slapd[23100]: conn=2347 fd=29 closed

viele gruesse

michael

Hallo Michael,

Du musst eine verschlüsselte Anfrage verwenden (ssf=0: keine Verschlüsselung). Unverschlüsselte Anfragen kann man nur am Server selbst verwenden, deshalb klappt auch Dein ldapsearch. Tests mit ldapsearch sollte man immer auf der Maschine machen, von der aus man auch die Anfrage stellen will, also in Deinem Fall von dem Moodle-Host.

Beste Grüße

Jörg

Hallo Jörg,

an der fehlenden Verschlüsselung kann es aber doch nicht liegen: ich habe parallel zu moodle auf einem anderen Host mahara installiert und slapd auf dem Schulserver authentifiziert die Anfragen von mahara völlig problemlos (err=0). Die Anfragen von moodle werden aber mit err=49 quittiert (laut slpad-log). Bei gleicher search-base, ldap-url, kein bind-benutzer, kein ssl usw.

Auch läuft ldapsearch vom moodle-host aus:

root@cloudia:/home/micha# ldapsearch -H ldap://141.31.147.113 -x -b "ou=accounts,dc=wara,dc=de" "(uid=dt)"

Beide, mahara und moodle senden alles im Klartext, schneide ich auf dem Schulserver per tcpdump mit, kann ich in beiden Fällen das Benutzer-Passwort mitlesen (Schock! Horror! Ich weiss …) . Da alle drei Hosts aber in einem Subnetz liegen, bin ich das Risiko zunächst mal eingegangen.

Viele Gruesse
Michael

Hallo Michael,

nun ja, in der /etc/ldap/slapd.copnf steht (um die Zeile 110) ganz klar, dass ein auth nur mit ssf=56 von einer anderen IP als Server oder IPFire möglich ist.

Was ich also verstehe ist, dass es in Moodle nicht geht. Was ich nicht verstehe ist, dass es mit ldapsearch und in Deinem Mahara funktioniert. Ein reines read (ohne auth) könnte dagegen klappen.

Hast Du denn mal ldaps ausprobiert? Ist ja nur ein minimaler Aufwand.

Beste Grüße

Jörg

Hallo Jörg,

vielen Dank fuer den entscheidenden Hinweis auf slapd.conf und die Umgebung von Zeile 110:

Natürlich hatte ich dort den anderen Host - der auf dem mahara laeuft - irgendwann mal als fuer anonyme binds berechtigt eingetragen.

Peinlich, peinlich, wie konnte ich das aber auch vergessen haben, ist keine 10 Tage her, …

Es tut mir leid für die unnötige Arbeit, die ich Euch gemacht habe.

Nochmals vielen Dank an Alle und alles Gute!

Viele Gruesse
Michael