LDAP und Webuntis - Lösung

Hallo,

da bei uns am Anfang der Ferien die neuen Stundenpläne über Webuntis verteilt werden sollen, muss (Schulleitung) als erstes die Authentifizierung von Webuntis gegen die AD funktionieren, damit die Kollegen zugreifen können. Untis verlangt einen von einer CA signierten AD. Bei der lmn6 habe ich da ein letsencryptzertifikat genommen.

Wie mache ich das bei der lmn7? …ich denke vor diesem Problem werden viele stehen, weil Webuntis sehr verbreitet ist…

Danke euch schon mal.

Gruß

Dominik

…pushe das nochmal hoch, weil es wirklich zeitlich dringend ist!

Welcher AD-/Sambaexperte kann beschreiben, wie man das selfsigned-Zertifikat der AD durch ein von einer CA signiertem tauscht ohne das alles kaputt ist.

Danke und Gruß.

Dominik

Hast du das schon mal probiert: https://wiki.samba.org/index.php/Configuring_LDAP_over_SSL_(LDAPS)_on_a_Samba_AD_DC#Using_a_trusted_certificate
?

Hallo Dominik,

ich gehe davon aus, dass du folgende Seite schon gelesen hast:

https://wiki.samba.org/index.php/Configuring_LDAP_over_SSL_(LDAPS)_on_a_Samba_AD_DC

Grüße,
Sven

…ja so habe ich das versucht…klappt nicht ansatzweise…

Woran hängt es denn? Technisch sehe ich nicht wieso das nicht klappen sollte?

Hallo,

habe das jetzt hinbekommen. Das Problem war, dass ich immer die falsche Datei als CA benutzt habe.

hier ist jetzt meine funktionierende Konfiguration:

less /etc/samba/smb.conf

[global]
---SCHNIPP---
tls enabled = yes
tls keyfile = /etc/letsencrypt/live/server.<FQDN>/privkey.pem
tls certfile = /etc/letsencrypt/live/server.<FQDN>/fullchain.pem
tls cafile = /etc/letsencrypt/live/server.<FQDN>/chain.pem
---SCHNAPP---

Man muss dann daran denken, die neue CA (chain.pem) auch an die passende Stelle im Linuxclient (/var/lib/samba/private/…) zu legen, da sonst die Netzwerkfreigaben zerschossen werden.

LG

Dominik

1 „Gefällt mir“

Hej,
Ich hänge auch bei der Konfiguration von samba für ein LE-Zertifikat und bräuchte den Blick eines Wissenden… :face_with_monocle:

Es läuft auf dem Schulserver certbot, das LE-Zertifikat wurde erfolgreich abgeholt. In der WebUI ist es als sowohl als „SSL-Zertifikats-Datei“ auch als „FQDN Zertifikatsdatei“ eingetragen. Surft man die WebUI von einem Client aus an, ist die Seite mit dem richtigen LE-Zertifikat gesichert.

Test funktioniert:

root@server:/# echo -n | openssl s_client -CApath /etc/ssl/certs/ -connect localhost:443 | grep issuer
[...]
issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
[...]

Soweit so gut. :+1:

Auf Port 636 läuft aber noch das selbssignierte Zertifikat, wie der Test hiermit zeigt: openssl s_client -CApath /etc/ssl/certs/ -connect localhost:636 .

Ich habe entsprechend das LE-Zertifikat in die smb.conf eingetragen.

[global]
tls keyfile = /etc/letsencrypt/live/server.<HiermeinFQDN>/privkey.pem
tls certfile = /etc/letsencrypt/live/server.<HiermeinFQDN>/fullchain.pem
tls cafile = /etc/letsencrypt/live/server.<HiermeinFQDN>/chain.pem

Das kommt auch korrekt an, wie testparm bestätigt.
AAAAber: Danach samba neu gestartet und getestet… Und Bämm! Fehlermeldung… :-1:

root@server:/etc/samba# vi smb.conf         <-- LE-Zertifikat eingetragen
root@server:/etc/samba# systemctl restart samba-ad-dc
root@server:/etc/samba# echo -n | openssl s_client -connect localhost:636
140511341945280:error:0200206F:system library:connect:Connection refused:../crypto/bio/b_sock2.c:110:
140511341945280:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
140511341945280:error:0200206F:system library:connect:Connection refused:../crypto/bio/b_sock2.c:110:
140511341945280:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=111

Der Server will die Verbindung gar nicht annehmen:

root@server:/etc/samba# tcptraceroute server.<HiermeinFQDN> 636
Selected device lo, address 10.16.1.1, port 45889 for outgoing packets
Tracing the path to server.<HiermeinFQDN> (10.16.1.1) on TCP port 636 (ldaps), 30 hops max
 1  10.16.1.1 [closed]  0.067 ms  0.036 ms  0.047 ms

Mache ich die Änderungen in der smb.conf rückgängig, geht alles wieder:

root@server:/etc/samba# vi smb.conf         <-- selbstsigniertes cert wieder rein
root@server:/etc/samba# systemctl restart samba-ad-dc
root@server:/etc/samba# systemctl restart linuxmuster-webui
root@server:/etc/samba# tcptraceroute server.<HiermeinFQDN> 636
Selected device lo, address 10.16.1.1, port 33015 for outgoing packets
Tracing the path to server.<HiermeinFQDN> (10.16.1.1) on TCP port 636 (ldaps), 30 hops max
 1  10.16.1.1 [open]  0.072 ms  0.052 ms  0.054 ms

Sieht jemand, was ich falsch mache?
Wie kriege ich denn das LE-Zertifikat auf den LDAP - ohne mir Benutzeranmeldung und shares und alles zu zerschießen? :exploding_head:

Bitte um Hilfe.
Grüße
Michael

Hej,
damit sich keiner mehr die Mühe macht, meinen Hilferuf zu beantworten: Die Sache ist gelöst.

Es war ein simpler Leichtsinnsfehler :confounded:. Die Dateien, die der Certbot holte, hatten einfach die falsche Berechtigung. In /var/log/samba/log.samba stand es dann doch sehr deutlich:

invalid permissions on file '/etc/letsencrypt/live/server.<FQDN>.de/privkey.pem': has 0640 should be 0600

Peinlich. :flushed:

Tja… und: Kaum macht man’s richtig, funktioniert’s… :fireworks:

Grüße
Michael

Hallo zusammen,

ich bin jetzt so weit, dass ich ein Let’s Encrypt Zertifikat für meinen LMN7-Server habe und WebUntis dieses auch akzeptiert. Nun hänge ich leider an der LDAP-Einstellungen in WebUntis. Anscheinend haben ja einige von euch WebUntis bereits erfolgreich mit dem LMN7-LDAP gekoppelt.

Wäre einer von euch so nett seine funktionierende Konfiguration hier zu posten?

Vielen Dank und viele Grüße
Christoph

Hallo Christoph,

wir verwenden folgende Einstellungen.

LDAP Benutzer:

CN=global-binduser,OU=Management,OU=GLOBAL,DC=linuxmuster,DC=lan

Muster DN:
sAMAccountName={0},ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan

Userfilter:

(&(sAMAccountName={0})(|(sophomorixStatus=U)(sophomorixStatus=E)(sophomorixStatus=A)))

BaseDn:

ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan

Rollenidentifizierung: Attribut

LDAP Personenrolle Atrribut

sophomorixrole

Lehrkraftrolle: teacher

Schülerrolle: student

Bei der Identifizierung verwende ich bei Lehrern Attribut für Familienname und Vorname und dann sn givenName

Bei Schülern nehme ich ein Einzelattribut und identifiziere über externe id

Dafür lass ich mir in ASV eine gleichbleibende ID pro Schüler exportieren und verwende die dann für LMN und Webuntis.

Grüße
Björn

3 „Gefällt mir“

Hallo Björn,

super, hat geklappt. Vielen Dank!

Viele Grüße
Christoph

Lieber Björn,

wie sind denn da die genauen Einträge? ich habe es mit
LDAP ID Attribute = sophomorixUnid und
Exemantdaten ID Feld = externKey
versucht und bekomme die besonders aufschlussreiche Fehlermeldung
ldap connection is ok: cn=xxx-webuntis-binduser,OU=Management,OU=xx,OU=SCHOOLS,DC=xxx,DC=lan,DC=xxx,DC=xxx
error: null

Vielleicht ist irgendwo auch noch ein anderer Fehler, aber in moodle klappen die restlichen Einstellungen und die ldap-Verbindung scheint ja auch ok zu sein.

Vielleicht hat auch siónst noch jemand eine Idee, was das Problem sein könnte.

Hallo!
Ich antworte mir mal selbst: (ich bin nämlich doof)
error: null heißt kein Fehler (ich hatte success oder so etwas erwartet), auf jeden fall klappt es jetzt und die SchülerInnen sind mit ihren Stundeplänen versorgt.

Gruß
Angelika (die sich wirklich blöd vorkommt)

Hallo Angelika!

Bis du bestimmt nicht! Das sind nämlich nur Menschen die sich nicht selbst reflektieren und aus den erkannten Fehlern lernen.

Beste Grüße

Thorsten

Hallo zusammen,

auch an meiner Schule muss ldap an Webuntis abgebunden werden.

Bei mir ist die interne Domain bei linuxmuster.lan geblieben, als externe Domain habe ich einen anderen FQDN. Für diesen habe ich auf dem Server mittels certbot ein Zertifikat bei LE erstellt (auf der opnsense hat das nicht geklappt) und in den Einstellungen von samba auf das neue externe Zertifikat verwiesen. openssl s_client -connect server:636 liefert mir dann auch das externe Zertifikat.

Für Webuntis habe ich die Einstellungen weiter oben verwendet und der Verbindungstest zum ldap-Server klappt für einen Testschüler mit Passwort.

Wenn ich mich nun jedoch mit dem Testschüler an der Weboberfläche anmelden möchte, dann wurde da das Passwort von ldap nicht übernommen. Die Schüler können sich ohne Passwort einloggen???

Hat jemand eine Idee, woran es hängt?

LG Daniel

Möglicherweise…
Du hast wahrscheinlich in WebUntis die Option deaktiviert, dass ggf. neue Benutzerkonten bei der Anmeldung via LDAP generiert werden sollen. Leider greift WebUntis hier aber nicht auf die schon bestehenden Benutzerkonten zurück sondern erstellt für den LDAP-Zugriff neue, die auf dieselben SuS verweisen. Daher muss die Erstellung von neuen Benutzerkonten aktiviert sein, damit der Login auch klappt.
Carsten

Hallo Björn (@MirDochEgal )
Ich hole diesen Beitrag nochmal nach oben, weil auch wir mit Webuntis experimentiert haben. Die Einstellungen wie in #10 angegeben funktionieren zwar grundsätzlich aber zwei-drei Dinge sind mir noch nicht ganz klar:

  • Der Eintrag für Schüler und „externe ID“ – was genau meintest du damit? Kann man da nicht die sophomorixUnid nehmen? So hatte es Angelika (@laueran) offenbar auch gemacht?
  • Obwohl ich bei den Lehrern sn givenName eingetragen habe, erhalte ich in den Kontakdaten nur den Nachnamen. Müssen die Felder anders getrennt werden? Ein Komma zu setzen hatte ich schon versucht – änderte aber nichts.
  • Zudem wäre es ja entscheidend, dass bei den Stammdaten auch das Lehrerkürzel importiert wird. Das wird aber meines Wissens gar nicht im LDAP/AD angelegt …
    Von daher: Wie habt ihr das gelöst?

Viele Grüße,
Michael

Hallo Michael,
genau, ich habe die Schüler über die ID aus ASV identifizieren lassen, das heißt, wir exportieren aus ASV die eindeutige ID der Schüler und haben die als letztes Feld in der students.csv. In Webuntis wird die in die Stammdaten der Schüler als „Schlüssel extern“ importiert.

Dann klappt das mit
LDAP ID Attribute = sophomorixUnid und
Exemantdaten ID Feld = externKey
zur Identifikation der Schüler.

Wenn man nicht das Kürzel als Anmeldename für die KuK verwendet wird es natürlich schwieriger. Bei uns kann die Identifikation z.B. nicht über Vor- und Nachname erfolgen, da bei uns alle KuK in Untis - und damit auch WebUntis - keinen Vornamen haben aber entweder Frau XXX oder Herr XXX als Name haben. Was meinst du denn mit den Kontaktdaten? Meinst du das Profil? Dort stehen ja die Stammdaten des Lehrers drin, oder?

Vielleicht noch kurz zur Funktion der Benutzer in WebUntis, insbesondere im Zusammenhang mit LDAP. In der Anleitung zu LDAP in WebUntis steht:

Wenn der Benutzer noch nicht existiert, legt WebUntis automatisch ein Konto für diesen Benutzer an. […] Das Passwort wird mit einem Zufallswert belegt, so dass sich der neue Benutzer nur über LDAP, aber nicht über WebUntis authentifizieren kann.

Aber nur, wenn man in den Einstellungen den entsprechenden Haken gesetzt hat, ohne klappt die Anmeldung aber wohl nicht, zumindest bei meinen Tests nicht, daher weiß ich auch nicht, wofür das gut sein soll.

Dieses Anlegen des Nutzers kann unterbunden werden für nicht identifizierbare Konten, indem man den Haken bei „Anmeldung für nicht identifizierten Benutzer verbieten“ setzt. Dann können sich Nutzer, die z.B. für WLAN-Zugänge angelegt wurden (Hausmeister o.ä.) nicht bei WebUntis anmelden, sie ja keiner Person in den Stammdaten zugeordnet werden können.

Ich selber habe einen WebUntis-Zugang mit einem mir bekannten Passwort, das anders ist als das in der Schule, jetzt kann ich mich mit jedem von beiden anmelden, es ist schlicht egal.

Wenn man in der Schule und in WebUntis dieselben Kürzel für die KuK verwendet muss man nur einmal die Benutzer für die KuK anlegen, gerne mit Zufallspasswort, solange der Anmeldename gleich ist klappt die Anmeldung.

Ich habe auch für die Kooperationsschüler der Nachbarschule, die v.a. für moodle ein Login bei uns in der Schule haben, Benutzer mit Zufallspasswort angelegt, danach können sie sich mit dem Passwort aus dem LDAP anmelden.

Als ich diese Zusammenhänge kapiert hatte war es ein riesen Aha-Moment für mich.

Ich hoffe, das war ein bisschen verständlich.

Liebe Grüße
Angelika

Warum habt ihr keine Vornamen unter Untis drin? Das Kürzel kommt doch sowieso über den Export/Import der Untis Daten nach Webuntis da rein – aber ob das LDAP Konto dann auch mit dem richtigen Lehrer verknüpft wird, hat bei uns noch nicht funktioniert. Ich kann mich zB anmelden aber mein Stundenplan ist leer… Etwas fehlt offenbar noch :thinking: