[docker] MRBS im Container / MRBS im orangen Netz laufen lassen

Hi.
Gerade habe ich erfreut festgestellt, dass (natürlich – wie sollte es auch anders sein!?) auch MRBS per docker Container verfügbar ist. Das habe ich hier ganz schnell ausprobiert – lief ootb!

https://hub.docker.com/r/systemsector/mrbs/

Bei uns soll dieser Service in Kürze in Orange/DMZ ausgelagert werden, damit man auch von zu Hause aus Räume reservieren kann. Dazu ist eine LDAP(S)-Abfrage am linuxmuster-Server notwendig. Hat das jemand so laufen und kann bei der Syntax Nachhilfe geben?

Schöne Grüße,
Michael

Hallo Michael,

warum willst Du das ins Netz stellen. Einer Verbindung per OpenVPN und danach ganz normal das MRBS aufrufen tuts doch.

Gruß

Alois

Hallo Alois.
Ja, aber ich habe größere Probleme, den KuK OpenVPN beizubringen als einen Link auf der Homepage bereit zu stellen, wo man sich mit seinen Schuldaten einloggen kann …
Michael

Nabend zusammen.
Ok, ich habe mir die aktuelle Version 1.7.1 gerade nochmal angesehen (ohne docker, da dort “nur” 1.5 lief).

Die Version läuft jetzt und sieht ganz schick aus – allerdings gibt es (auch laut Doku) das Problem, dass eine Auth. per LDAP über das Internet evtl scheitert. Das war so natürlich nicht mein Plan. Ist das der Grund, warum MRBS immer “fester Bestandteil” direkt mit auf dem linuxmsuter-Server war/ist? (Ich würde nur ungern einen Dienst im grünen Netz nach außen durchreichen.)

Bis später,
Michael

… und noch etwas später: Es läuft!
Jetzt können sich Lehrer via LDAPS über das Internet Räume und alles mögliche andere reservieren. Feine Sache!

Falls jemand Interesse an der config.inc.php hat, kann ich sie hier posten.

Hallo Michael,

" Falls jemand Interesse an der config.inc.php hat, kann ich sie hier posten. "

Bitte gern, das hilft sicher anderen weiter.

Gruß

Alois

Ok – hier der Schnelldurchlauf.
Ich habe mrbs 1.7.1 nach Anleitung installiert: Paket entpackt, web-Ordner auf Webserver verlinkt, neue mySQL-Datenbank erzeugt, mit adminer.php einen neuen mySQL-User mit allen Rechten für die neue DB eingerichtet. Danach die Tabellen erzeugt mit

mysql -u <angelegterUser> -p <DatenbankName>  <   tables.my.sql 

Anschließend muss man sich aus den beiden Dateien

systemdefaults.inc.php und
areadefaults.inc.php 

eine config.inc.php basteln. Und dort schaltet man dann alles scharf, was man braucht.
Im Abschnitt

"Authentication settings "

habe ich „$auth[„type“] = „ldap“;“ aktiviert.

Hier die passenden LDAP-Settings, die nur noch Lehrer reinlassen:

// 'auth_ldap' configuration settings

// Where is the LDAP server.
// This can be an array.
$ldap_host = "ldaps://meine.dynamische-dns-adresse.de";

// If you have a non-standard LDAP port, you can define it here.
// This can be an array.
$ldap_port = 636;

// If you do not want to use LDAP v3, change the following to false.
// This can be an array.
$ldap_v3 = true;

// If you want to use TLS, change the following to true.
// This can be an array.
$ldap_tls = false;

// LDAP base distinguish name.
// This can be an array.
$ldap_base_dn = "ou=accounts,dc=linux,dc=lokal";

// Attribute within the base dn that contains the username
// This can be an array.
$ldap_user_attrib = "uid";

// nur Lehrer sollen rein:
$ldap_filter = "gidNumber=10000";

// Set to true to tell MRBS to look up a user's email address in LDAP.
// Utilises $ldap_email_attrib below
$ldap_get_user_email = false;

// The LDAP attribute which holds a user's email address
// This can be an array.
$ldap_email_attrib = 'mail';

// The LDAP attribute which holds a user's name. Another common attribute
// to use (with Active Directory) is 'displayname'.
// This can be an array.
$ldap_name_attrib = 'cn';

// The DN of the LDAP group that MRBS admins must be in. If this is defined
// then the $auth["admin"] is not used.
// This can be an array.
// $ldap_admin_group_dn = 'cn=admins,ou=whoever,dc=example,dc=com';

// The LDAP attribute that holds group membership details. Used with
// $ldap_admin_group_dn, above.
// This can be an array.
$ldap_group_member_attrib = 'memberof';
  
// Set to true if you want MRBS to call ldap_unbind() between successive
// attempts to bind. Unbinding while still connected upsets some
// LDAP servers
$ldap_unbind_between_attempts = false;

// Output debugging information for LDAP actions
$ldap_debug = false;
//$ldap_debug = true;

Einen Nachteil hat es bisher noch – man kann sich NUR noch als Lehrer einloggen. Es gibt im Moment keinen Admin. Wenn man das kurzfristig ändern will, muss man oben aus $auth[“type”] = “ldap”
wieder ein „none“ machen und dann kann sich wieder jeder einloggen (um zB Räume zu ändern/anzulegen/zu löschen etc).
Wenn jemand weiß, wie ich die Admin-Gruppe unter " $ldap_admin_group_dn " herausfiltern kann, würde ich aber auch das einstellen.

Vielleicht hilft es ja auch anderen weiter … ich bin jedenfalls froh, dass der Service jetzt im orangen Netz läuft und vom linuxmuster-Server (fast) unabhängig ist…

Schöne Grüße,
Michael

Hallo Michael,

Einen Nachteil hat es bisher noch – man kann sich NUR noch als Lehrer
einloggen. Es gibt im Moment keinen Admin. Wenn man das kurzfristig
ändern will, muss man oben aus $auth[“type”] = “ldap”
wieder ein “none” machen und dann kann sich wieder jeder einloggen (um
zB Räume zu ändern/anzulegen/zu löschen etc).
Wenn jemand weiß, wie ich die Admin-Gruppe unter " $ldap_admin_group_dn
" herausfiltern kann, würde ich aber auch das einstellen.

kannst du nicht einfach mit der Zeile:

$mrbs_admin = „administrator“;

den adminitrator, den es im ldap gibt, zum admin machen?
So ist es, meine ich, im linuxmuster-mrbs Paket gelößt

LG

Holger

Hallo Holger,
Nee, klappt nicht. Vermutlich, weil der LDAP-Filter sehr restriktiv eingestellt ist.
Zudem ist ja nirgendwo eingstellt, wo das (lokale?) Administrator-Passwort abgespeichert sein soll (wenn’s nicht aus dem LDAP-tree kommt).
Dazu ist wahrscheinlich genau der Eintrag $ldap_admin_group_dn da

Michael

Hallo Michael,

Nee, klappt nicht. Vermutlich, weil der LDAP-Filter sehr restriktiv
eingestellt ist.

… dann nimm halt deinen Lehrer accoount.
Der ist Lehrer: Administrator nicht.

LG

Holger

Hi.
Ich kann keine Räume anlegen/ändern, wenn ich als Lehrer eingeloggt bin. Nur anzeigen aber keine Änderungen. Ist aber auch gar nicht soooo schlecht, da man die Einstellungen ja in aller Regel einmal macht und dann fertig damit ist.

Oder meinst du das so, dass ich als Admin auch den LDAP Eintrag zu meinem Lehrer Account eintragen soll?? Das wäre evtl ne Möglichkeit – sofern die Einschränkung auf einen Account hinhaut
Michael

Hallo Michael,

Oder meinst du das so, dass ich als Admin auch den LDAP Eintrag zu
meinem Lehrer Account eintragen soll?? Das wäre evtl ne Möglichkeit –
sofern die Einschränkung auf /einen/ Account hinhaut

genau das meinte ich: trag
hagedorn

ein.

LG

Holger

Hi.
Ja, ich habe da nochmal etwas experimentiert … die admin-Gruppe lässt sich so wie es jetzt ist nicht herausfiltern, da der Gruppenfilter NUR gid=10000 (teachers) rein lässt. Ich hatte zwischendurch auch mal beide Gruppen mit “oder” getrennt ausprobiert:

(|(gidNumber=10000)(gidNumber=512))

aber das hat nicht geklappt.
Es gibt aber ein grundsätzliches anderes Problem, wenn man die Auth. per LDAP macht: Früher oder später wollen User Termine verschieben/ändern/löschen – und zwar auch von anderen Leuten (mit denen sie im besten Fall vorher gesprochen haben :slight_smile: ). Das geht im Moment so nicht. Man kann zwar eigene Termine bearbeiten aber natürlich keine fremden. Ich fürchte, dass das früher oder später zu Stress führen wird – auch wenn man mal einen Tag für eine Sonderaktion blocken will und dort bereits Einträge stehen, die dann nicht überschreibbar sind.
Daher nochmal die Frage in die Runde: Vielleicht ist es doch besser, mit einem User-Account zu arbeiten, der gleich alles darf??? Mir ist natürlich klar, dass es dann auch den Fall geben kann, dass jemand versehentlich Einträge überschreibt/löscht … und vor allem, dass man es dann nicht mehr richtig nachhalten kann, wer’s verbockt hat. Aber eine 100%ig zurfriedenstellende Lösung sehe ich im Moment noch nicht.

(Übrigens ist an Version 1.7.1 ganz nett, dass man Termine per Drag & Drop nach oben/unten verlängern kann. Leider kann man (noch?) nicht den Tag ändern, indem man den Block einfach rüber schiebt …)

Schöne Grüße,
Michael

Ausschnitt aus dem debug-Logfile (/var/log/apache2/error.log)

[Sat Jun 16 11:05:17.901385 2018] [:error] [pid 14916] [client 92.XXX.XXX:35392] authValidateUserCallback: Successful authenticated bind checking 'gidNumber=10000', referer: https://my.domain.com/mrbs/admin.php
[Sat Jun 16 11:05:17.901423 2018] [:error] [pid 14916] [client 92.XXX.XXX:35392] authValidateUserCallback: Trying filter: (gidNumber=10000): dn: uid=<user>,ou=accounts,dc=linux,dc=lokal: method: ldap_read, referer: https://my.domain.com/mrbs/admin.php

Hallo Michael,

Es gibt aber ein grundsätzliches anderes Problem, wenn man die Auth. per
LDAP macht: Früher oder später wollen User Termine
verschieben/ändern/löschen – und zwar auch von anderen Leuten (mit denen
sie im besten Fall vorher gesprochen haben :slight_smile: ). Das geht im
Moment so nicht.

… und genau das ist der große Vorteil von MRBS: ein user kann den
Eintrag eines anderen nicht löschen/verschieben.
Genau das ist der Hauptgrund, weswegen wir von Zetteln weg gegangen
sind: immer wenn ein Termin belegt war, den ein anderer wollte, dann ist
der Zettel verschwunden.
Nee, mach das nicht: wenn du das einmal erlaubst, dann bekommst du das
nie wieder schmerzfrei weg.

Bei uns ist es seit Jahren so: es gibt einen administrator (mich), der
macht die Stundenplangeplanten Stunden rein: alles andere ist „Freiwild“
und wer zuerst kommt, mahlt zuerst.
Hat die Realschule Methodentag, dann wird der Computerraum von mir für
zwei Tage geblockt: wer schon drin steht, wird von mir rausgeschmissen
und informiert (2 Wochen vorher, oder wann das mir bekannt gemacht wird,
dass die Realschule den Raum braucht).

Ich habe sogar 3 Farben im MRBS:
Rot - Realschule
Gelb - Gymnasium
Grün - wenn jemand selber was einträgt.

Will jemand eine Stunde eines Kollegen, dann kann er den direkt
ansprechen (Nutzername steht ja dabei) und das ausknobeln: das läuft
dann gar nicht über mich.

Funktioniert seit Jahren in MRBS nicht nur mit Computerräumen, sondern
auch mit Besprechungszimmern, Aula, GTR Kästen, KOnzentrationshilfen,
Beamerwagen und Visualizern.
Alles Buchbar: super Sache.

LG

Holger

Hi Holger.
Wahrscheinlich hast du Recht – überschreiben “kann” man ja in der analogen Variante auch nicht, ohne vorher mit dem Kollegen zu sprechen. (Wenn man’s doch macht, ist es jedenfalls asozial :slight_smile: ).

Hier läuft die linuxmuster-Version MRBS eigentlich auch schon seit Jahren – nur nutzt es niemand (auch, weil es nur im grünen Netz direkt auf dem Server zu erreichen war und nicht von zu Hause aus).
Aber jetzt sollen Tablets für’s Kollegium her und das ist die Gelegenheit einen Neuanfang zu machen.

Ich habe mittlerweile auch herausgefunden, wie das mit den Admin-Einstellungen läuft.
Bei MRBS steckt in der config.inc.php folgende Möglichkeit: Entweder man nutzt den Eintrag

$auth["admin"][] = "login (aus LDAP)";
$auth["admin"][] = "admin2";
$auth["admin"][] = "admin3";
...

ODER man schaltet den Eintrag:

//$ldap_admin_group_dn = "cn=administrators,ou=groups,dc=linux,dc=lokal";

scharf. Dann sind o.g. Einträge aber nicht mehr aktiv! Also muss man sich entscheiden, wie man’s haben will. Das zusätzliche Problem dabei: Der LDAP-Eintrag funktioniert so nicht – man kann sich zwar als Administrator einloggen, hat aber trotzdem nicht die vollen Rechte. Wie es aussieht, ist das ein Bug in MRBS.

Daneben habe ich mit Version 1.7.1 eine sehr brauchbare Neuigkeit, die gerade erst ihren Weg in den Code gefunden hat, erfolgreich umgesetzt: Hier wird jetzt nicht mehr das Lehrer-Kürzel aus LDAP angezeigt sondern der volle Name. Das halte ich für sinnvoll. Ist bei Euch der Kalender für alle sichtbar (auch Schüler) oder habt ihr das so eingestellt, dass sich nur eingeloggte User (also Lehrer) die Daten ansehen dürfen?
(Oder fällt sowas “neuerdings” auch unter Datenschutz? :open_mouth: )

Schöne Grüße,
Michael

P.S.: Was sind “Konzentrationshilfen”?

Hallo Michael,

P.S.: Was sind “Konzentrationshilfen”?

:slight_smile:
Ein wunderbarer Euphemismus.
Das Sind große Taschen mit Pappklappblenden.
Wenn man die so auf den Tisch stellt, dann ist das, als wäre eine
Pappwand zwischen zwei Schülern etwas größer als ein DIN A3 Block.
…hilft den Schülern während Klassenarbeiten beim „konzentrieren“

:slight_smile:

LG

Holger

… ach die Teile … ja, die haben wir auch (wurden von den Fachgruppen angeschafft).

Übrigens noch so ein Gedanke zur Terminverwaltung: Man könnte ja auch die Fachobleute als Admin mit eintragen. Dann verteilt sich die Last…

… und noch ein Nachtrag. ich habe mich gefragt, ob man mit MRBS auch Daten (insbesondere Kalender im .ics, .ical Format) importieren kann. Und ja – man kann offenbar!

https://sourceforge.net/p/mrbs/support-requests/1127/

Damit kann man die Ferien und Feiertage bequem reinholen.
Gerade ausprobiert. Diese ics-Dateien nimmt MRBS an:
https://www.ferienwiki.de/exports/de

Nachteil: Man kann scheinbar bisher nicht einen Kalender direkt in viele Räume importieren. Das ist ein echter Nachteil … dann wird man diese Möglichkeit wahrscheinlich nicht langfristig nutzen!??