Lets Encrypt, Memberserver, XMPP und Datenbank


#1

Moin,

ich habe einen Memberserver, wo ich einen XMPP Prosody Server drauf habe. Diesen würde ich gerne mit einem Zertifikat ausstatten. Kann ich die Subdomain bei Lets Encrypt mit eintragen und mir das Zertifikat auf den Memberserver schieben oder geht das vielleicht sogar mit Hausmitteln automatisch?

Zudem wollte ich fragen, ob es möglich wäre, Prosody mit der LDAP Datenbank zu verbinden? War da mit den Modulen noch nicht sehr erfolgreich. In einer SQL Datenbank werden die User wohl nicht vorhanden sein oder?

Grüße

Alex


#2

LE wird nur für “echte” Namen gehen NICHT für interne wie xmpp.company.local.

Die user sind nur im LDAP. Für Prosody: https://modules.prosody.im/mod_auth_ldap.html

Das mit dem LDAP-Setup könntest du hier ableiten: https://wiki.mhcsoftware.de/ecodms


#3

Soll für einen echten Namen laufen. Über eine Subdomain meiner gemieteten Domain soll dieser auch wie der Teamspeak server, den ich habe, erreichbar sein, halt nur mit LE zerfikat.

Werde das gleich mal bei LE eintragen und dann das Zertifikat manuell kopieren und testen.

Danke für die Links.

Die “auth_ldap” hab ich schon drin, kam nur mit der Konfiguration nicht weiter. Ich lese mir gleich mal den dritten Link durch. Darf ich bei Fragen diese hier stellen?

Grüße

Alex


#4

Das ist der Sinn so eines Forums :slight_smile:


#5

Nabend,

ich habe es nun soweit geschafft, dass ich mich als Admin und mit meinem Konto, welcher auch Admin ist, zu verbinden.

Leider kann sich sonst niemand verbinden. Es kommt die Meldung “Zugangsdaten ungültig”.

Habe, ausgenommen der default User, die sich in “Users” befinden in der Ldap Hierarchie, eine C-Lab\Benutzer Struktur aufgebaut und alle User dorthin verschoben für die AD GPOs und so.

grafik

Habe allerdings als Filter eine Gruppe gesetzt namens “Comm”. In dieser sind alle, die das nutzen sollen.

Hier ist meine Config. Kann ich hier noch was optimieren?

-- Authentication
authentication = "ldap"

ldap_base = "dc=c-lab,dc=one"
ldap_server = "10.0.0.100:7389"
ldap_rootdn = "uid=Administrator,cn=users,dc=c-lab,dc=one"
ldap_password = "Passwort"
ldap_filter = "(memberOf=cn=Comm,cn=Groups,dc=c-lab,dc=one)"
ldap_scope = "subtree"
ldap_mode = "bind"
ldap_admin_filter = "(memberOf=cn=administratoren,cn=users,dc=c-lab,dc=one)"

Wäre für einen Tipp sehr dankbar. Bin in Ldap leider noch nicht wirklich tief eingestiegen und lerne noch, was was ist und wie was geht.

Grüße

Alex


#6

Diesem und ähnlichen Fehlern bin ich lange hinterher gejagt. Schau die noch mal das hier an:

https://wiki.mhcsoftware.de/ucs_ldap

Du hat den Port 7389 genommen. Der zeigt auf den OpenLDAP. Da gibt es “memberOf” nicht, auch wenn es laut Aussage von @Moritz_Bunkus ab 4.3 anders sein sollte gibt es das bei mir nicht bzw. wenn ich es versuche wird nichts gefunden. Aber vielleicht mache ich da auch nur noch irgend etwas falsch. Ich weiss allerdings nicht ob man das im 4.3 nicht auch erst noch aktivieren muss. Entweder du nimmst einen der Samba Ports (389 oder 636). Dann geht das mit dem “memberOf”. Wichtig: Das geht NICHT ohne SSL! Oder du nimmst als Filter für Prodosy-User “(uid=%u)”. Die Gruppe “administratoren” gibt es per Default nicht, also musst du sie anlegen. Der “ldap_admin_filter” könnte dann für OpenLDAP anders aussehen: “(&(cn=administratoren)(memberUid=%u))” (ungetestet!)

Experimentiere mal mit dem Apache Directory Studio, damit bekommst du ein besseres Gefühl für die Sache:

https://directory.apache.org/studio/

Keine so gute Idee: ldap_rootdn = “uid=Administrator,cn=users,dc=c-lab,dc=one”

Mach besser einen nicht privilegierten User dort hin. Sonst kennt jeder, der die Prodsy-Config lesen kann das Administrator-Passwort. Das will man nicht. Noch besser wäre es den Benutzer mittels LDAP-ACLs einzuschränken, so dass er nur lesen darf:


#7

EDIT: Mid-Air collision detected :wink: , ich belasse meine Antwort aber wegen dem Hinweis auf das Overlay

Hallo,

wenn ich mal außer Acht lasse, dass Sie sich mit einem Konto authentifizieren können, würde ich als erstes fragen, ob memberOf überhaupt funktioniert. Dazu ist in UCS ein Modul zu aktivieren.
Für einen ersten Test ist es sicherlich möglich, DEN Administrator als Bind-User in ldap_rootdn anzugeben. Später sollte man einen weniger priviligierten Nutzer nehmen.

Viele Grüße,
Dirk Ahrnke


#8

Habe mir das alles mal angesehen und auch ausprobiert. Leider klappt bisher gar nichts.

Der “ldap_admin_filter” ist soweit ich weiß kein Muss.

Das Modul weist auch darauf hin, dass “ldaps” nicht unterstützt wird, wenn ich das richtig verstanden habe.

Enable TLS (StartTLS) to connect to LDAP (can be true or false). The non-standard ‘LDAPS’ protocol is not supported.

https://modules.prosody.im/mod_auth_ldap.html

Ja den User dafür wollte ich noch erstellen. Erstmal wollte ich allerdings erstmal eine korrekte Konfiguration zustande bekommen. Ohne die bringt mir auch der priviligierte User leider nichts.

Das Modul für “memberOf” war bereits installiert.

Komme gerade irgendwie nicht vom Fleck.

— ### —
Nachtrag:
Ich habe nun aus der Config den Filter gänzlich entfernt. Nun kann ich mich mit jedem User anmelden. Ist nun die Frage, ob ich den Filter so einrichten kann, dass lediglich die User der Gruppe “Comm” sich einloggen können.

Meine nächste Frage wäre, ob ich die Ldap Gruppen verwenden kann, um Gruppen innerhalb des Chats zu unterteilen, sodass sich die User sehen können. Das würde mir ganz neue Möglichkeiten eröffnen.

Ansonsten endlich mal ein Fortschritt, leider aber nur non-ssl.

Aktuelle Config:

authentication = "ldap"

ldap_base = "dc=c-lab,dc=one"
ldap_server = "10.0.0.10:7389"
ldap_rootdn = "uid=priviligierter-user,cn=users,dc=c-lab,dc=one"
ldap_password = "Passwort"
ldap_scope = "subtree"
ldap_mode = "bind"


#9

Danke! Gerad hab ich noch gelernt, dass das Paket scheinbar immer mit installiert wird aber eben nicht aktiviert:

ucr set ldap/overlay/memberof=true

Updated: https://wiki.mhcsoftware.de/ucs_ldap


#10

Ja das Problem ist bei dem Prosody Modul nur, dass es nur Openldap akzeptiert. Die Samba Ports, sowie die Änderungen haben keinerlei Ergebnis gebracht.

Bei jedem Port konnte nicht zum Server verbunden werden. Ausschließlich Port 7389 hat eine Verbindung akzeptiert, wo dann halt noch die Accountdaten des lesenden Users (Beim Test Administrator) abgefragt wurde.


#11

Ich habe jetzt ewig experimentiert und “memberOf” hat einfach keine Ergebnisse gebracht. Nach einigem Googlen konnte ich das Rätsel lösen:

“Jetzt muss man noch wissen, dass der Filter erst bei neuen Gruppen funktioniert. Alte Gruppen müssen gelöscht und neuangelegt werden.”

Tatsächlich ist ein Löschen der Gruppe aber nicht nötig. Die Benutzer aus der Gruppe zu löschen und wieder hinzuzufügen genügt.

Das dort empfohlen “slapindex” hat bei mir keine Wirkung gezeigt.

Updated: https://wiki.mhcsoftware.de/ucs_ldap