Das Problem
Du richtest grommunio neu ein oder migrierst auf einen neuen LDAP-Server. Die LDAP-Einstellungen in der Admin-Weboberfläche siehst du, du passt sie an — und danach ist das Ergebnis identisch zum Vorher. grommunio-admin ldap check scheitert weiterhin, Logins funktionieren nicht, User-Sync bleibt aus.
Oder du editierst direkt die Config-Datei, die du nach kurzem Suchen gefunden hast:
cat /etc/grommunio-admin-api/conf.d/ldap.yaml
ldap:
ldap_uri: ldap://dc-obiwan.darkside.lan:7389
ldap_bind_user: uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
ldap_bind_pass: MeinPasswort
Sieht gut aus. Dienst neu starten, nochmal prüfen — nichts.
Die Ursache: Zwei LDAP-Configs
grommunio besteht aus zwei separaten Schichten:
| Schicht | Zuständig für | LDAP-Config |
|---|---|---|
| grommunio-admin-api | Web-UI, Admin-Panel | /etc/grommunio-admin-api/conf.d/ldap.yaml |
| gromox | Eigentliche Dienste: IMAP, ActiveSync, CalDAV | /etc/gromox/ldap_adaptor.cfg |
ldap.yaml konfiguriert nur das Admin-Interface. Was du dort siehst (User-Liste, LDAP-Check-Button, User-Sync) — das liest aus dieser Datei.
Die eigentliche Authentifizierung für IMAP, POP3, ActiveSync und CalDAV/CardDAV läuft über gromox. Und gromox hat seine eigene LDAP-Config, komplett unabhängig.
Das ist kein Fehler in der Dokumentation — es steht irgendwo drin. Aber wenn du zum ersten Mal LDAP konfigurierst oder migrierst, findest du zuerst ldap.yaml, änderst sie, testest via grommunio-admin ldap check, siehst Erfolg — und denkst, du bist fertig.
Bis sich der erste User beschwert, dass er sich nicht einloggen kann.
Die Lösung
Beide Configs anpassen.
1. Admin-UI (ldap.yaml)
# Auf mail-chewbacca (grommunio-Server)
vim /etc/grommunio-admin-api/conf.d/ldap.yaml
ldap:
ldap_uri: ldap://dc-obiwan.darkside.lan:7389
ldap_bind_user: uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
ldap_bind_pass: MeinPasswort
ldap_search_base: cn=users,dc=darkside,dc=lan
ldap_user_filter: (objectClass=posixAccount)
ldap_user_username: mail
ldap_user_displayname: cn
ldap_starttls: false
ldap_object_id: entryUUID
ldap_user_template: Univention
systemctl restart grommunio-admin-api
2. gromox (ldap_adaptor.cfg)
vim /etc/gromox/ldap_adaptor.cfg
Relevante Parameter:
ldap_host=ldap://dc-obiwan.darkside.lan:7389
ldap_bind_user=uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
ldap_bind_pass=MeinPasswort
systemctl restart gromox-http gromox-zcore
Verifikation
# 1. Admin-UI LDAP Check
grommunio-admin ldap check
# Erwartete Ausgabe: "Checking X users... Everything is ok"
# 2. IMAP-Login testen (echter Auth-Test via gromox)
openssl s_client -connect localhost:993 -quiet 2>/dev/null <<< \
". login user@<DEINE-DOMAIN> <PASSWORT>" | head -5
# Erwartete Ausgabe: ". OK LOGIN completed"
Nur wenn beide Tests grünes Licht geben, ist alles korrekt konfiguriert.
Checkliste LDAP-Migration grommunio
-
/etc/grommunio-admin-api/conf.d/ldap.yamlaktualisiert -
grommunio-admin-apineu gestartet -
grommunio-admin ldap check→ OK -
/etc/gromox/ldap_adaptor.cfgaktualisiert -
gromox-httpundgromox-zcoreneu gestartet - IMAP-Login mit echtem User-Account getestet
Bonus: Aktive Config anzeigen
grommunio-admin hat einen Befehl um die tatsächlich geladene gromox-Config anzuzeigen:
grommunio-admin mconf dump ldap
Das zeigt was gromox gerade wirklich nutzt — nützlich zur Verifikation nach Änderungen.