RocketChat Anleitung - Welche Version?

Liebe Kollegen,

ich möchte gerne RocketChat betreiben und dazu die Anleitung von @dorian verwenden. Leider ist die Version, die ich im Docker benutze (6.2.11) in wesentlichen Punkten abweichend von der in der Anleitung.

Kann mir jemand sagen, welche Version im Tutorial verwendet wird?

Hallo Heiko,

wir sind schon vor einer Weile von Rocket.Chat zu Matrix gewechselt, weil Rocket.Chat einfach eine ziemlich schlechte Software ist und nix taugt. Ich rate sehr von der Nutzung ab! (mehr Details hier).

Wenn du eine Chatlösung haben willst, rate ich zu Matrix oder Mattermost.

VG,
Dorian

Hallo Dorian,

Ok, das erklärt, warum aktuell wesentliche Einstellungsmöglichkeiten gegenüber der Anleitung weggefallen sind.

Da ich noch relativ ungeübt in der Benutzung von LDAP bin, frage ich mich, ob es eine Anleitung gibt, wie man die Verbindung zu LM7 herstellt?

Hallo Heiko,

für Mattermost und Matrix gibt es bisher leider keine Anleitung, nein.

VG,
Dorian

Mattermost bietet die LDAP Verbindung nur gegen eine kostenpflichtige Lizenz. Damit kommt nur Matrix in betracht. Ich bin derzeit unsicher, welche Docker-Compose Umgebung ich für Matrix und Ldap benutzen soll. Hast Du eine Empfehlung?

Hallo Heiko,

Ich versteh die Frage nicht ganz. Was meinst du mit „welche docker compose umgebung“?
Du brauchst im Grunde zwei Services, den Synapse Server und den Datenbank server. Dann die Synapse config Datei anlegen und anpassen und dann sollte das passen.
Hier gibt es das offizielle Beispiel:

VG,
Dorian

es gibt ein umfangreicher ansible script von spanateev mit dem alle möglichen Matrix Module installiert werden via Docker

[

spantaleev/matrix-docker-ansible-deploy: :whale: Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
github.com

](GitHub - spantaleev/matrix-docker-ansible-deploy: 🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker)

Ich selber hab das nicht per Docker laufen, weil ich ansible zu dem Zeitpunkt nicht gut kannte. Auch wenn das ein tolles Komplettpaket ist muss man es trotzdem auf die Eingenen Bedürfnisse anpassen.

Ich hab Synapse als apt-paket installiert und die Postgres Datenbank, alles gemäß der Anleitung von decatec.https://decatec.de/home-server/matrix-synapse-auf-ubuntu-server-20-04-lts-mit-nginx-postgresql-und-lets-encrypt/

Wenn man die Homeserver.yaml in das Konfiguratonsverzeichnis etc/matrix-synapse/conf.d ablegt wird die Konfiguration beim update auch nicht überschrieben. Ich hab da dann die Federation ausgeschaltet…
Für die LDAP Anbindung gibt es auch zwei verschiedene Lösungen. Einmal das Paket ma1sd Installation https://github.com/ma1uta/ma1sd
via Docker oder als Debian Paket (so hab Ichs) oder die alternative ist das plugin Matrix-synapse-ldap3 https://github.com/matrix-org/matrix-synapse-ldap3 . Funktioniert beides. Auch eine oidc Anbindung funktioniert tadellos.
Bei ma1sd ist aber ein identity server dabei (den man allerdings nicht braucht, wenn man die Federation sowieso abschaltet).

Das oben waren die wichtigen Grundbausteine dass alles mal läuft. Weiterhin empfiehlt sich aber:

Zur Verwaltung des Matrix-Synapse servers empfehle ich von spantaleev Matrix-corporal https://github.com/devture/matrix-corporal
. Installation nur per Docker möglich.
Matrix-corporal ermöglich die Kontrolle auf dem Server via policies. Hier lassen sich zb alle Account automatisiert anlegen der Schueler und man mit einer Konfigurationsdatei viele dinge erlaufen oder verbieten. (hat aber leider keine gut, läuft alles über eine policy.yaml die man aber generieren kann mit einem Skript (zb. https://github.com/cmuller/ldap_matrix )Das lässt sich gut auf die eigenen Bedürfnisse anpassen.

Für die Administrative Verwaltung des servers ist https://github.com/Awesome-Technologies/synapse-admin
zu empfehlen. Damit kann man als Admin in ner gut die räume löschen oder Nutzer deaktivieren ohne jetzt tiefe Matrix Kenntnisse besitzen zu müssen.

Also ziemlich Modular das ganze wie man sieht. Wenn es aber mal läuft ist es klasse. Ich lösch zum SJ Wechsel nur die Datenbank. Und dann werden alle accounts rein syncronisiert. Ist halt für das erste mal ein größerer Aufwand… aber dann in der Wartung ist der Aufwand dafür minimal.

1 „Gefällt mir“

Ich bin Suchers Empfehlungen gefolgt und habe abgesehen von dem veralteten Letsencrypt Teil die Anleitung: https://decatec.de/home-server/matrix-synapse-auf-ubuntu-server-20-04-lts-mit-nginx-postgresql-und-lets-encrypt/ und GitHub - matrix-org/matrix-synapse-ldap3: An LDAP3 auth provider for Synapse befolgt.

Ich hänge mal wieder etwas bei der LDAP Config. Derzeit können sich die LDAP User noch nicht anmelden. Lokale User können sich anmelden. Hier der relevante Teil des homeserver.yaml


modules:
 - module: "ldap_auth_provider.LdapAuthProviderModule"
   config:
     enabled: true
     uri: "ldaps://ldap.meineschule.de:636"
     start_tls: true
     base: "OU=default-school,OU=SCHOOLS,DC=schule,DC=meineschule,DC                                             =de"
     attributes:
        uid: "samaaccountname"
        mail: "sophomorixCustom1"
        name: "samaccountname"
     bind_dn: "CN=chat-binduser,OU=Management,OU=default-school,OU=SCHOOLS,DC=s                                 chule,DC=meineschule,DC=de"
     bind_password: weroiuerj202934803942j
     filter: "(&(objectClass=person)(|(sophomorixRole=teacher)(sophomorixRole=st                                             udent)))"
     # Additional options for TLS, can be any key from https://ldap3.readthedocs                                             .io/en/latest/ssltls.html#the-tls-object
     tls_options:
       validate: false
     #  local_certificate_file: foo.crt
     #  local_private_key_file: bar.pem
     #  local_private_key_password: secret


was gibt es für Fehlermeldungen? Homeserver.log? oder systemctl Status Matrix-synapse?

evtl (ich weiss das schon nicht mehr so genau) muss der account schon lokal vorher erstellt werden sein mit dem zugehörigen Namen und das ldap Modul liefert dann nur den alternativen Passwort Zugang.
also bitte folgendes mal testen:
lokal nen account machen @schuelerA:matrix.meine-schule.de und dann den Schüler auch auf dem linuxmuster Server erstellen und sich dann mit schuelerA und dem ldap Passwort versuchen einzuloggen.

falls das die Lösung war, kann man die “lokalen accounts” mit Matrix-corporal im bulk erstellen oder natürlich auch mit nem selber gestrickten Skript.

ok, ein Tippfehler. War heute ohne Lesebrille unterwegs. :slight_smile:

Nächste Frage: wie bekomme ich nun die Gruppen und Projekte aus LM7 in Matrix?

also der nächste schritt wäre erstmal dass du SharedSecretModul installiert kriegst. https://github.com/devture/matrix-synapse-shared-secret-auth Ich bin da glaub ich den weg über pip gegangen aber man muss es da in die richtige umgebung reininstallieren.
gerade für dich nachgeschaut:

cd /opt/venvs/matrix-synapse/bin
source activate
pip install git+https://github.com/devture/matrix-synapse-shared-secret-auth

das fand ich ein bissel hakelig damals. aber tut ohne weitere pflege. entsprechend dann in der Homeserver.yaml die eintrage setzen, gemäß der Anleitung https://github.com/devture/matrix-synapse-shared-secret-auth#configuring

Das ist Voraussetzung für Matrix-corporal zum Laufen zu kriegen und eine super Sache um selber pythonskripte zu schreiben, die räume automatisch erstellen und Nutzer einschreiben.
Mit dem SharedSecret kann man nämlich Logindaten jeglicher Nutzer erzeugen und dann an ihrer stelle agieren. daher muss das auch streng geheim bleiben, alles intern auf dem server.

wenn du das hast, gehts mit Matrix-corporal weiter.

die Installation geht ganz schnell mit diesem Docker Befehl:

docker run --name=matrix-corporal --detach \
-it \
--restart=always \
--add-host=matrix.meine-schule.de:192.168.x.x  \
-p 127.0.0.1:41080:41080 \
-p 127.0.0.1:41081:41081 \
-v /etc/matrix-synapse/matrix-corporal/config.json:/config.json \
-v /home/irgendeinbenutzer/matrix_ldap/policy.json:/policy.json:ro \
devture/matrix-corporal:2.3.2    
~                                

Anmerkung: ich verwende die veraltete Version 2.3.2 weil nur damit bei mir die REST-API Schnittstelle funktioniert. die aktuelle Version funktioniert bei mir nicht richtig mit der REST-API (die du im Moment aber (noch) gar net brauchst). man kann die beiden konfigdateien Policy.json und config.json auch wo anders ablegen)

dabei ist 192.168.x.x die ipadresse des Matrix-synapse servers die natürlich keine 192er Adresse sein muss :slight_smile:
und die config.json ist die Konfigurationsdatei von Matrix-corporal (siehe: https://github.com/devture/matrix-corporal/blob/master/docs/configuration.md )

dann muss man noch nginx umkonfigurierten dass es auf Matrix-corporal umleitet. siehe hier: https://github.com/devture/matrix-corporal/blob/master/docs/setup.md#reverse-proxy-configuration Matrix Corpora ist quasi ne „firewall“ die jegliche Anfragen an den Synapse server abfängt.
Die Idee ist dass man von aussen die Matrix anfragen auf den Matrix-corporal port 41080 leitet und Matrix corpoal dann die anfragen weiterleitet auf den eigentlichen Matrix Synapse server mit port 8008 normalerweise. wenn man von aussen auf Matrix.meine.schule.de zugreift landet man also immer auf Matrix-corporal.
vom Matrixserver selber aus kann man natürlich weiterhin direkt auf den Synapse server zugreifen. mit docker logs Matrix-corporal kann man immer schön sehen was für anfragen bei Synapse eingehen.

Matrix-corpoal braucht ne policy.json Das ist die Datei anhand derer Matrix-corporal die Benutzeraccounts erstellt und die Benutzer in Räume einschreibt.
das ist wichtig weil man ja alle Schüler eingeschrieben haben will und nicht warten will bis sie sich einloggen (Moodle lässt gruessen).

Die policy.json kann man dann per Python-skripte generieren. da gibt es das von cmueller https://github.com/cmuller/ldap_matrix oder mein Fork GitHub - Reis-A/ldap_matrix: Matrix Corporal Policy Specification Using LDAP Groups (das ist meine angepasste Version, wo ich dann langsam mal python gelernt hab. inzwischen hab ich was besseres, habs aber noch nicht veröffentlich) meine Version sollte grob passen. die ldapgruppen suche solltest du auf alle Fälle prüfen. ich hab kein lmm und daher muss das entsprechend angepasst werden. da ist das von cmueller näher dran, vermutlich.

1 „Gefällt mir“