Arktur4 User in einen openLDAP (slapd) übertragen
Arktur4 – softwaremäßig absolut veraltet und mit recht ungewisser Zukunft – ist in vielen Schulen immer noch ein solides Arbeitspferd und verwaltet dort ganze Netzwerke. Integrales Konzept ist die zentrale Authentifizierung via openLDAP, ein zur Zeit der Einführung bei Arktur aus meiner Sicht zukunftsweisendes Konzept. Arktur4 spuckt periodisch einen Export seines LDAP-Baumes aus: gesamt.ldif. Eigentlich als Sicherung für Notfälle gedacht, lässt sich damit allerhand Nützliches bewerkstelligen: Zum Beispiel kann man Applikationen wie Moodle, Drupal, Mediawiki, phpgroupware an openLDAP anbinden. Jeder Benutzer muss sich dann nur ein Passwort merken (und seine Daten nicht in jede dieser Applikationen eintragen – das macht dann openLDAP automatisch).
Anbei ein kleines Script, um die User eines arktur4 in einen externen slapd (openldap) zu übertragen, der z.B. auf einem Rootserver läuft. Benötigt wird eine gesamt.ldif.
Per cronjob kann die notwendige Synchronisation stattfinden, wenn die gesamt.ldif etwa über scp ebenfall periodisch auf den Rootserver kopiert wird.
Das Script ist nicht besonders sexy:
Bei Aktualisierung killt es den gesamten LDAP-Baum und baut ihn neu auf. Besser wäre es, auf einen bestehenden Eintrag zu prüfen – ab dafür ist dieses uncoole Verfahren des Scripts effizient und schnell.
Das Script läuft entweder im Browser (dann erste Zeile mit Shebang löschen) oder bedeutend flotter auch als Shellscript (weniger als eine Minute bei einem P3-800 und 2000 Usern).
Nach den gleichen Prinzip könnte man auch einen arktur5 nachträglich und *zusätzlich* „ldapisieren“, um z.B. ebenfalls single-sign-on für Moodle oder MediaWiki zu realisieren. Auch eine datenschutzkonforme Anonymisierung ist durch entsprechendes mapping der Userdaten in diesen Anwendungen möglich.
Für Arktur5 muss man jedoch die passwd / shadow-Datei und nicht die gesamt.ldif auslesen, was einige Änderungen am Script erfordert. Wenn sich wider Erwarten herausstellen sollte, dass diese OPtion gewünscht wird, werde ich das gerne auch realisieren.
In der /etc/ldap/slapd.conf ist ggf. der Parameter sizelimit zu ergänzen (gerade bei großen Schule mit mehr als 500 SuS. sizelimit beschränkt standardmäßig die Antwortmenge des openLDAP auf 500 Einträge (Default-Einstellung von openLDAP). Wünscht man man mehr, muss der Parameter explizit in der slapd.conf angegeben werden.
Und ja:
Das ist ein ernstes Sicherheitsproblem, wenn das im Netz auf einem Rootserver eingesetzt wird.
Wer den slapd nicht an localhost zu binden vermag und nicht den anonymous-Bind verbieten kann, sollte dieses Script nicht verwenden.
Allerdings würde ich mich eher mit einem whiteshark an eine lokale Netzwerkdose in der Schule hängen und die Passworte des Arktur4/5 im Klartext mitlesen (etwa bei der Squidanmeldung), als einen Rootie zu hacken und die sha2-Hashes zu bruteforcen (dauert ja immer noch etwas), um dann nicht einmal eine Shell auf Arktur zu besitzen. Wenn dann die Daten dort (auf dem Rootie) zusätzlich noch anonymisiert sind, kann eigentlich kaum etwas geschehen…
Link zum Script: arktur4_to_slapd