Univention Bugzilla – Bug 20026
OpenLDAP Ports konfigurierbar machen
Last modified: 2011-12-13 15:49:59 CET
Für Samba4 wird es notwendig sein, OpenLDAP auf einem anderen Port zu starten und die UCS-Komponenten auf diesen Port zu konfigurieren.
Created attachment 2698 [details] tar-Ball mit angepassten Dateien files.txt listet die Dateien mit Paketname auf. Mit diesen Anpassungen funktionierte die Anmeldung an UDM und UMC, d.h. auch nss und pam. Eine neue UCR-Variable 'ldap/server/port' ist notwendig, analog zu der existierenden Variable 'ldap/port'.
Dazu kommen zumindest 7 weitere Pakete: univention-policy/lib/ldap.c base/univention-firewall/conffiles/etc/security/netfilter.d/20ldap base/pam-univentionmailcyrus/pam_univentionmailcyrus.c base/univention-server/debian/univention-managed-client.postinst base/univention-server/debian/univention-mobile-client.postinst desktop/univention-kde/univention-set-kdedirs kolab2/univention-mail-cyrus-kolab2/debian/univention-mail-cyrus-kolab2.postinst kolab2/univention-kolab2-webclient/conffiles/etc/horde/horde3/conf.d/20-kolab_ucs.php Zusätzlich sollten noch die Pakete nach ldap/server/name durchsucht werden um zu sehen, wo überall ldap/server/port verwendet oder gesetzt werden müsste.
Arvid hat für Samba4 schon einiges rausgesucht: http://billy.knut.univention.de/websvn/filedetails.php?repname=dev&path=%2Ftrunk%2Fcomponent%2Fsamba4%2Funivention-samba4%2Fscripts%2Fchange-ucs-ldap_port.patch
univention-bind r21681 r21688 univention-dhcp r21683 univention-directory-listener r21685 r21689 univention-directory-manager-modules r21686 r21690 univention-directory-policy r21687 univention-management-console r21691 univention-pam r21692 univention-updater r21693 univention-ldap r21694 ldap/port gibt an auf welchem Port der lokale slapd gestartet wird ldap/server/port gibt an auf welchem Port der lokale Rechner den LDAP Server erreichen kann ldap/master/port gibt an auf welchem Port der lokale Rechner den LDAP Master erreichen kann
univention-python r21696 r21710
univention-join r21776
dhcpd3 (58_ldap_port.patch) r8797 (patches)
Weitere Probleme: - Nagios Anmeldung erfolgt mit dem Administrator-Passwort aus Samba4 - Einige Nagios Tests schlagen fehl: UNIVENTION_JOINSTATUS: auth failed: ldapsearch -x -h s4master.deadlock.local -D <ldap_hostdn> UNIVENTION_KPASSWDD: 0 processes with command name 'kpasswdd' UNIVENTION_LDAP Could not search/find objectclasses in dc=deadlock,dc=local - UMC Anmeldung ist nicht erfolgreich
(In reply to comment #8) > Weitere Probleme: > - Nagios Anmeldung erfolgt mit dem Administrator-Passwort aus Samba4 > > - Einige Nagios Tests schlagen fehl: > UNIVENTION_JOINSTATUS: > auth failed: ldapsearch -x -h s4master.deadlock.local -D <ldap_hostdn> > UNIVENTION_KPASSWDD: > 0 processes with command name 'kpasswdd' > UNIVENTION_LDAP > Could not search/find objectclasses in dc=deadlock,dc=local joinstatus ist angepasst, kpasswdd und ldap check sind zunächst deaktiviert r21879
Änderungen für Samba4 sind soweit durch. Für 2.4-2 sehen wir die Anpassungen aber erstmal nicht vor.
Der OpenLDAP Server lauscht dann per Default in UCS auf Port 7389 (ldap) und 7636 (ldaps). Das sollte einheitlich gemacht werden, also auch wenn kein Samba 4 installiert ist. Das wird allerdings vermutlich zu Verwirrungen führen. Vielleicht gibt es eine einfache Möglichkeit, dass einfach der Port von 389 auf 77389 und 636 auf 7636 weitergeleitet wird, beispielsweise er iptables Port Redirection. Und zwar immer dann, wenn dort kein Samba 4 installiert ist, aber OpenLDAP. Zusätzlich sollte der Listener erkennen, falls er fälschlicherweise von einem Samba 4 LDAP repliziert. Diese Änderung sollten wir auch für UCS 2.4 veröffentlichen.
Ggf. kann man stat iptables einfach den slapd per init-Skript zusätzlich auf den original Ports aktivieren. Im samba4-Scope wird zur Zeit folgende Zeile verwendet um die Ports umzukonfigurieren: -h "ldap://0.0.0.0:$PORT/ ldapi:/// ldaps://0.0.0.0:$PORT_LDAPS/"
Wir haben im Moment (UCS 2.4 + S4 Scope) diese Variablen: ldap/master: Name des LDAP Master ldap/master/port: Port des LDAP Master ldap/port: Auf diesem Port lauscht der lokale LDAP Server ldap/port/ldaps: Auf diesem Port lauscht der lokale LDAP Server (ldaps) ldap/server/name: Der Name des LDAP Servers, welcher verwendet wird ldap/server/port: Der Port des LDAP Servers, welcher verwendet wird ldap/server/additional: Eine Liste von LDAP Servern, die zusätzlich eingebunden werden soll Die Mischung von ldap/port und ldap/server/port finde ich schwierig, gerade weil wir ldap/port früher als Client Konfiguration hatten, hier ist das aber als Server Konfiguration gedacht. Wünschenswert wären LDAP-URIs für alles zu verwenden, allerdings ist dafür das Update Szenario nicht ganz trivial. Vorschlag für 3.0: ldap/master: LDAP Master Adresse / Hostname ldap/master/port: Port des LDAP Master slapd/port: Port des slapd (das muss eine Liste sein können) slapd/port/ldaps: Port des lokalen LDAP für ldaps (das muss eine Liste sein können) ldap/server/name: Name des primären LDAP Servers ldap/server/port: Port der LDAP Server (ldap/server/name und ldap/server/additional) ldap/server/additional: Weitere LDAP Server Zusätzlich sollten wir ldap/debug/level nach slapd/debug/level umbenennen.
(In reply to comment #13) > > ldap/master: LDAP Master Adresse / Hostname > ldap/master/port: Port des LDAP Master > > slapd/port: Port des slapd (das muss eine Liste sein können) > slapd/port/ldaps: Port des lokalen LDAP für ldaps (das muss eine Liste sein > können) > > ldap/server/name: Name des primären LDAP Servers > ldap/server/port: Port der LDAP Server (ldap/server/name und > ldap/server/additional) > ldap/server/additional: Weitere LDAP Server Das ist soweit umgesetzt. Tests stehen noch aus. > > Zusätzlich sollten wir ldap/debug/level nach slapd/debug/level umbenennen. Das ist nicht gemacht worden.
Es gibt noch ldap/backup , ggf. braucht man dann auch ldap/backup/port ? Ggf. sollte der ldap_server listener auf ucs_3.0-0 Systemen dann zusätzlich zu ldap/master (bzw. ldap/backup) auch ldap/master/port=7389 setzen um sicher zu gehen, dass der OpenLDAP-Server erreichbar bleibt, selbst wenn samba4 auf Master (oder Backup) installiert wird.
In univention.uldap.getMachineConnection wurde noch ldap/port verwendet. Ich habe das jetzt erstmal so angepasst, dass dort für Verbindungen zu ldap/server/name bzw. ldap/server/additional die Variable ldap/server/port verwendet wird. Für Verbindungen zu ldap/master wird dort statt dessen ldap/master/port verwendet. In getAdminConnection wird jetzt ldap/master/port verwendet. Gleiches gilt jetzt vorerst für getBackupConnection. univention-python (6.0.8-1)
Ergänzung zu Comment 15: Ggf. sollte ldap/master/port auch in /usr/sbin/univention-join gesetzt werden.
* Typos aus svn diff -r24696:24697 dev/branches/ucs-3.0/ucs/management/univention-ldap/debian/univention-ldap-server.postinst wurden gefixed * für Backup, Slave, Memberserver, Mobile Client und Managed Client wird jetzt in unviention-join zusätzlich zu ldap/master auch ldap/master/port?7389 gesetzt. * für Master wird in univention-ldap-server.postinst ebenfalls ldap/master/port?7389 gesetzt (workaround da univention-join auf Master nicht ausgefürt wird). * in univention-installer/scripts/28_postconfigure_config_registry.sh wird jetzt für Master zusätzlich zu ldap/master auch ldap/master/port=7389 gesetzt und zusätzlich zu ldap/server/name und ldapServer/ip auch ldap/server/port=7389. Für andere Systeme wird zusätzlich zu ldap/master/ip ebenfalls ldap/master/port=7389 gesetzt.
Created attachment 3420 [details] Vorschlag für univention.uldap.access Anpassung. Der Patch verbessert die automatisch gewählten Defaults für den LDAP Port, insbesondere für SSL: Falls nicht explizit ein port (oder eine uri) angegeben ist, setzt die Anpassung als standard port 7389 (statt bisher 389), falls 'ldap/server/port' leer ist. Falls use_ldaps=true übergeben wurde, und der standard port unverändert ist, nimmt univention.uldap.access statt dessen den port 7636.
Das ist soweit umgesetzt. Für neue Probleme am besten einzelne Bugs öffnen. Changelog ist vorhanden. Am Release Notes Bug (Bug #22089) ist ein Hinweis, dass das entsprechend aufgenommen werden soll. Für UCS 2.4-4 soll auch bereits OpenLDAP zusätzlich auf 7389 lauschen: Bug #23220.
Verified. Funktioniert in MS1, Zusätzliche Anpassungen der Port-Defaults für Server-Prozesse (SRV-Record und netfilter) und Clients sind jetzt an Bug 23220 notiert. Releasenotes-Hinweis auf Portänderungen sind an Bug 22089 Comment 3 notiert.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"