Navigation
- Startseite
- Alle Kategorien
- Univention Corporate Server (UCS)
- Installation
- Services for Windows
- Kolab2 für UCS
- Scalix für UCS
- Nagios
- Backup
- Virtualisierung
- Softwarepflege und Paketverwaltung
- Bootloader und Bootsplash
- LDAP-Server und Listener/Notifier-Replikation
- SSL-Zertifikate
- Univention Directory Manager (UDM)
- Maildienste, Viren- und Spamerkennung
- Univention Management Console (UMC)
- AD Connector
- DNS und DHCP
- Basis-Systemdienste
- Univention Configuration Registry (UCR)
- Freigaben
- Weitere Serverdienste
- 3rd Party Produkte
- Univention Corporate Desktop (UCD)
- UCS Thin Client Services (UCS TCS)
- UCS@school
- UCS Desktop Virtualization Services (DVS)
- Sitemap
FAQs in dieser Kategorie
- eGroupWare in UCS
- GoogleEarth in UCS
- Skype in UCS
- Alfresco in UCS
- Können Windows Programme unter UCS ausgeführt werden
- Das Root-Dateisystem eines in VMware ESX betriebenen UCS Servers wird read-only gemountet
- MySQL root Passwort zurücksetzen
- Windows Gruppenrichtlinien mit Nitrobit group policy
- Einrichtung von Fremdsystemen auf Basis von Debian und Ubuntu zur Anbindung an LDAP und Kerberos
- SEP unter UCS installieren
Tags
Univention Corporate Server (UCS) » 3rd Party Produkte
Einrichtung von Fremdsystemen auf Basis von Debian und Ubuntu zur Anbindung an LDAP und Kerberos
Problem:
Sowohl Debian als auch Ubuntu sind ohne Modifikationen nicht in der Lage sich an UCS anzumelden um dessen Benutzerverwaltung zu verwenden. Ebenfalls ist standardmäßig keine Kerberos-Authentifizierung aktiviert.
Lösung:
Über eine Konfiguration des Name-Service-Switches können diese Systeme an die UCS Benutzerverwaltung angebunden werden.
Getestet wurde dieses Vorgehen erfolgreich mit:
- Ubuntu Jaunty Jackalope (9.04)
- Ubuntu Hardy Heron (8.04)
- Ubuntu Gutsy Gibbon (7.10)
- Ubuntu Feisty Fawn (7.04)
- Ubuntu Dapper Drake (6.06)
Ebenfalls wurden folgende Versionen von Debian getestet:
- Debian Lenny (5.0)
- Debian Etch (4.0)
Die in diesem Dokument verwendete Beispieldomain ist mit den folgenden Einstellungen konfiguriert:
- Domain: univention.test
- baseDN: dc=univention,dc=test
- Kerberos: cn=kerberos,dc=univention,dc=test
Installation:
Zur Authentifizierung gegenüber LDAP werden folgende Pakete benötigt:
- libnss-ldap (universe)
- libpam-ldap (universe)
- nscd (universe)
- portmap
Anmerkung: In älteren Ubuntu-Versionen wurden andere Paketnamen verwendet:
- libnss-ldap -> nss-ldap
- libpam-ldap -> pam-ldap
Zu installieren sind die Pakete wie folgt:
sudo apt-get install libnss-ldap libpam-ldap nscd portmap
Während der Installation werden diverse LDAP-Einstellungen abgefragt. Diese können mit leerem Inhalt bestätigt werden, da im Anschluss an die Installation die Konfiguration per Hand erfolgt und die automatisch eingegeben Werte teilweise falsch eingerichtet werden.
Konfiguration:
Um eine Authentifizierung gegenüber LDAP zu ermöglichen sind Anpassungen an den folgenden Dateien notwendig:
- /etc/nssswitch.conf
- /etc/ldap.conf (in älteren Ubuntu-Versionen /etc/ldap/ldap.conf)
- /etc/nsslib-ldap.conf (betrifft nur ältere Ubuntu-Versionen)
- /etc/pam-ldap.conf (betrifft nur ältere Ubuntu-Versionen)
- /etc/pam.d/common-auth
- /etc/pam.d/common-account
- /etc/pam.d/common-password
- /etc/pam.d/common-session
/etc/nsswitch.conf
Die nsswitch.conf stellt die System-Datenbank dar und legt fest, welche Orte/Dienste für die Auflösung von Benutzerinformationen verwendet werden.
Die Standardkonfiguration sieht folgendermaßen aus:
group: compat
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
und wird wie folgt geändert:
group: files ldap
shadow: files ldap
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
/etc/ldap.conf (Konfiguration des LDAP-Zugriffs)
Damit die Benutzerinformationen aus dem entfernten LDAP-Server bezogen werden können, muss dem Client mitgeteilt werden wo diese Informationen zu beziehen sind. Es wird sowohl der Name des LDAP-Servers als auch der Ort der Informationen benötigt. Daraus ergibt sich folgender Inhalt für die ldap.conf:
host qamaster.univention.test
Gibt die Adresse des LDAP-Servers an
base dc=univention,dc=test
Entspricht dem Startpunkt der Suche. Es ist zu berücksichtigen, dass sowohl Gruppeninformationen als auch Benutzerinformationen gesucht werden. Somit würde ein cn=users,dc=univention,dc=test zwar die Benutzer finden allerdings nicht entsprechenden Gruppen. Ermittelt lässt sich base durch das Ausführen des folgenden Befehls auf dem UCS-System:
univention-config-registry get ldap/base
ldap_version 3
UCS verwendet Version 3
pam_password md5
Art des Passwortaufbaus
TLS_CACERT /etc/ssl/CAcert.pem
Die verschlüsselte Datenübertragung erfordert ein gültiges Zertifikat. Das Zertifikat liegt auf dem UCS Master und kann wie folgt auf das Fremdsystem kopiert werden:
scp root@<ucs-master>:/etc/univention/ssl/ucsCA/CAcert.pem /etc/ssl/
Dadurch ergibt sich folgender Inhalt der /etc/ldap.conf:
base dc=univention,dc=test
ldap_version 3
pam_password md5
TLS_CACERT /etc/ssl/CAcert.pem
Sollte eine ältere Version von Ubuntu verwendet werden, so befindet sich diese Datei unter /etc/ldap/ldap.conf. Weiterhin ist zu berücksichtigen, dass bei älteren Versionen zusätzlich die Dateien /etc/nss-ldap.conf und /etc/pam-ldap.conf mit dem gleichen Inhalt versehen werden müssen.
Test der LDAP-Abfrage
Zur Überprüfung ob die Änderungen an der /etc/nsswitch.conf und /etc/ldap.conf korrekt waren, lassen sich durch die Befehle
- getent passwd
- getent group
- getent shadow
die Benutzerinformationen des Clients und LDAP-Servers abfragen.
Einrichtung der LDAP-Authentifizierung
Nachdem die Anbindung an den LDAP-Server erfolgreich durchgeführt worden ist, werden anschließend die PAM-Module konfiguriert.
Bei dieser Methode versucht sich der Client beim Passwort Check gegen den LDAP Server anzumelden. Bei der zweiten Möglichkeit werden die Passwort Hashes vom LDAP Server zum Client mit Hilfe von NSS exportiert.
Durch „Pluggable Authentication Modules (PAM)“ ist die Authentifizierung für Benutzer, aber auch Maschinen und einzelnen Diensten möglich. Zur Authentifizierung gegen LDAP oder die lokalen Benutzer ist eine Modifikation der folgenden Dateien unter /etc/pam.d/ notwendig.
common-account
account sufficient pam_ldap.so
account required pam_unix.so use_first_pass
common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so use_first_pass nullok_secure
common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
common-session
session sufficient pam_ldap.so
session required pam_unix.so
session optional pam_foreground.so
Nach der erfolreichen Modifikation der o.g. Dateien, müssen die Dienste nscd, portmap und libnss-ldap neu gestartet werden:
- sudo /etc/init.d/nscd restart
- sudo /etc/init.d/portmap restart
- sudo /etc/init.d/libnss-ldap restart
Ab sofort kann der Login sowohl durch die Angabe eines lokalen als auch eines LDAP-Benutzers erfolgen.
Automatische Ticketvergabe und Passwortänderung durch Kerberos
UCS verwendet die Kerberos-Implementierung Heimdal. Es sollte daher auf den Fremdsystemen auch die Heimdal- und nicht die MIT-Implementierung verwendet werden, da es ansonsten zu Problemen bei der Passwortänderung kommen kann.
Installation
Folgende Pakete werden für die Nutzung von Kerberos benötigt:
- heimdal-clients
- libpam-krb5
welche wie folgt zu installieren sind:
sudo apt-get install heimdal-clients libpam-krb5
WICHTIG: Im auftauchenden Assistenten ist die automatische Anpassung der Konfiguration zu deaktivieren. Nachdem die o.g. Pakete installiert worden sind, wird die Authentifikation in der Datei /etc/pam.d/common-auth bekannt gemacht. Dies geschieht durch das Hinzufügen folgender Zeile:
auth sufficient pam_krb5.so forwardable ccache =/tmp/krb5_%u
so dass sich zusammen mit den vorherigen Änderungen (Siehe LDAP-Authentifizierung) folgender Inhalt ergibt:
auth sufficient pam_krb5.so forwardable ccache =/tmp/krb5_%u
auth sufficient pam_ldap.so
auth required pam_unix.so use_first_pass nullok_secure
Weiterhin ist die neu hinzugekommene Datei /etc/krb5.conf mit folgenden Angaben zu füllen (bisherige Einträge können gelöscht werden):
default_realm = UNIVENTION.TEST
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md4 des-cbc-md5 des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md4 des-cbc-md5 des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
permitted_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md4 des-cbc-md5 des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
kdc_timesync = 1
forwardable = true
proxiable = true
# debug = true
[realms]
UNIVENTION.TEST = {
acl_file = /var/lib/heimdal-kdc/kadmind.acl
kdc = qamaster.univention.test
admin_server = qamaster.univention.test
}
[kdc]
hdb-ldap-create-base = cn=kerberos,dc=univention,dc=test
database = {
acl_file = /var/lib/heimdal-kdc/kadmind.acl
dbname = ldap:dc=univention,dc=test
log_file = /var/log/heimdal-database.log
mkey_file = /var/heimdal/m-key
}
Nach diesen Änderungen bekommt jeder Benutzer bei der Anmeldung ein Kerberos-Ticket, welches mit klist abgefragt werden kann. Sollte kein Ticket vergeben worden sein, kann ein Ticket auch manuell mit kinit bezogen werden. Der Grund für die Nichtvergabe von Tickets ist in der Regel auf eine stark abweichende Uhrzeit zurück zu führen. Um die Uhrzeit vom qamaster zu beziehen, sollte folgender Befehl verwendet werden:
ntpdate qamaster.univention.test
Nach erfolgreicher Zuteilung eines Tickets, kann sich der Benutzer ohne weitere Passwortangabe innerhalb der Domain an die Kerberos-Dienste anmelden. Darunter fällt z.B. ssh.
Passwortänderung
Die Änderung des Passworts erfolgt durch den Befehl kpasswd. Eine Nutzung von passwd ist nicht mehr möglich. Bei Bedarf kann der Befehl passwd auf den Befehl kpasswd gemapped werden. Eine Inkonsistenz der Kennwörter durch die Nutzung von passwd und kpasswd ist nicht möglich, da durch die in diesem Dokument aufgezeigte Vorgehensweise, die Nutzung von passwd unterbunden wird, so dass per passwd keine Passwörter am LDAP-Server mehr geändert werden können.
Tags: Ubuntu Debian nsslib pam Kerberos kpasswd LDAP libnss
Verwandte Artikel:
- Erneuern der SSL-Zertifikate
- Einführung in Bacula
- UCS Pakete selbst erstellen
- Übergabe von Werten an den Univention Directory Manager mittels Import einer CSV Datei
- Replikationsstörung durch nicht beendete Prozesse beheben.
Letzte Änderung der FAQ: 2012-01-30 11:06
Autor: Michael Basse
Revision: 1.2
Kommentieren nicht möglich