Hallo,
passend zum heutigen Erscheinen von Ubuntu 12.04 LTS “Precise Pangolin” habe ich meine Aufzeichnungen herausgekramt und aktualisiert. In meinem LAN habe ich auf meinem der Einfachheit halber für OpenDirectory (noch) kein SSL eingeschaltet.
Ausgehend von einem frisch installierten Linux-System Ubuntu 12.04 LTS ist zunächst einmal in Vorbereitung auf ein Zusammenwirken der Nummernkreise für Benutzer- und Gruppennummern der gerade von dem Ubuntu Installationsprogramm angelegte erste Benutzer umzubauen. Um ein Sicherheitsnetz als Rückhalt zu haben, sollte in einem Terminalfenster eine Benutzerumgebung mit privilegierten Rechten eingeschaltet werden.
sudo su -
Dieses Terminalfenster wird nicht für den weiteren Installationsvorgang verwendet, sondern dient nur als Notfall-Terminal, falls mit dem Zusammenwirken aus PAM, NSS, LDAP und Kerberos etwas durch einen Tippfehler “in die Hose” gehen sollte.
In einem weiteren Terminalfenster wird der Benutzer nun umgebaut. Mit einem Editor und privilegierten Rechten sind in den Dateien “/etc/passwd” und “/etc/group” die Benutzer- und Gruppennummern des ersten Benutzers von “1000” auf “501” zu ändern. Sicherheitshalber werden auch in diesem Terminalfenster die privilegierten Rechte vorübergehend eingeschaltet.
sudo su -
Mit
nano /etc/passwd
die Zeile
benutzername:x:1000:1000:Der Erste,,,:/home/benutzername:/bin/bash
in
benutzername:x:501:501:Der Erste,,,:/home/benutzername:/bin/bash
ändern.
Entsprechend in der Datei “/etc/group”
roth:x:1000:
in
roth:x:501:
Das Benutzerverzeichnis ist noch auf die neuen Benutzer- und Gruppennummern umzustellen.
chown -R 501:501 /home/benutzerverzeichnis
Nach dieser Umstellung können aus Sicherheitsgründen die dauerhaft eingeschalteten privilegierten Rechte wieder zurückgegeben werden.
exit
Die Benutzerverzeichnisse werden von Linux-Systemen in “/home/” angelegt, während Mac OS X an dieser Stelle “/Users/” verwendet. Für ein problemloses Zusammenarbeiten mit Netzwerkbenutzern aus OpenDirectory wird der Einfachheit halber auf dem Linux-Rechner ein Link von “/home/” auf “/Users/” gelegt. Auf die korrekte Groß-/Kleinschreibung ist zu achten!
sudo ln -s /home /Users
Die für den Zugriff auf die Benutzer- und Gruppeninformationen aus OpenDirectory erforderlichen Pakete können mit der Paketverwaltung in einem Schritt installiert und grundlegend eingerichtet werden.
sudo apt-get install libnss-ldapd libpam-ldapd auth-client-config ldap-auth-client ldap-auth-config nslcd nscd heimdal-clients libpam-heimdal heimdal-kcm kstart
Die folgenden zusätzlichen Pakete werden installiert:
krb5-config ldap-utils libhdb9-heimdal libkadm5clnt7-heimdal
libkadm5srv8-heimdal libkafs0-heimdal libotp0-heimdal libsl0-heimdal
Vorgeschlagene Pakete:
heimdal-docs
Die folgenden NEUEN Pakete werden installiert:
auth-client-config heimdal-clients heimdal-kcm krb5-config kstart
ldap-auth-client ldap-auth-config ldap-utils libhdb9-heimdal
libkadm5clnt7-heimdal libkadm5srv8-heimdal libkafs0-heimdal libnss-ldapd
libotp0-heimdal libpam-heimdal libpam-ldapd libsl0-heimdal nscd nslcd
0 aktualisiert, 19 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 1.250 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 4.030 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
Im Rahmen der Installation werden bereits die für den Zugriff auf OpenDirectory erforderlichen Einstellungen für LDAP und Kerberos abgefragt. Es ist darauf zu achten, daß in den URI für LDAP nicht das Protokoll “ldap***i***”, sondern “ldap” eingetragen wird.
Konfiguriere nslcd
URI des LDAP-Servers:
ldap://ldaprechnername.domain.tld/
Suchbasis des LDAP-Servers:
dc=ldaprechnername,dc=domain,dc=tld
Konfiguriere libnss-ldapd
Namensauflösungsdienste, die eingerichtet werden sollen:
] aliases
] ethers
*] group
] hosts
] netgroup
] networks
*] passwd
] protocols
] rpc
] services
*] shadow
[code]Konfiguriere ldap-auth-config
LDAP server Uniform Resource Identifier:
ldap://ldaprechnername.domain.tld/
Distinguished name of the search base:
dc=ldaprechnername,dc=domain,dc=tld
LDAP version to use:
3
Make local root Database admin:
Nein
Does the LDAP database require login?
Nein[/code]
[code]Konfiguration der Kerberos-Authentisierung
Voreingestellter Realm für Kerberos Version 5:
LDAPRECHNERNAME.DOMAIN.TLD
Kerberos-Server für Ihren Realm:
ldaprechner.domain.tld
Administrations-Server für Ihren Kerberos-Realm:
ldaprechner.domain.tld[/code]
Damit sind die Grundlagen bereits gelegt und ein Zugriff auf OpenDirectory funktioniert schon “aus der Schachtel heraus”. Das kann mit “getent” geprüft werden.
getent passwd
Nach den lokalen Systembenutzern und dem lokal angelegten (einsortierten) Benutzer werden die Netzwerkbenutzer aus OpenDirectory aufgelistet.
Auch ein Anmelden funktioniert bereits für einen Netzwerkbenutzer.
su - netzwerkbenutzername
Password:
Kein Verzeichnis, Anmeldung mit HOME=/
Auch ein Kerberos-Ticket wurde ausgestellt:
klist
[code]Credentials cache: FILE:/tmp/krb5cc_1025_P3VbcN
Principal: netzwerkbenutzername@LDAPRECHNERNAME.DOMAIN.TLD
Issued Expires Principal
Apr 27 18:36:55 2012 Apr 28 04:36:57 2012 krbtgt/LDAPRECHNERNAME.DOMAIN.TLD
@LDAPRECHNERNAME.DOMAIN.TLD[/code]
Es fehlt aber noch die automatische Erstellung der Benutzerverzeichnisse durch PAM. Um nicht manuell in den Konfigurationsdateien herumzudoktern, werden die Mechanismen von PAM und den Konfigurationswerkzeugen genutzt. Daher wird eine entsprechende Konfigurationsdatei für das Modul “pam_mkhomedir” angelegt.
sudo editor /usr/share/pam-configs/pam_mkhomedir
Name: Aktivieren von mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0077 skel=/etc/skel
Des Weiteren kann auch gleich das PAM-Modul “pam_groups” eingebaut werden.
sudo editor /usr/share/pam-configs/pam_groups
Name: Aktivieren von /etc/security/group.conf
Default: yes
Priority: 900
Auth-Type: Primary
Auth:
required pam_group.so use_first_pass
Diese Konfigurationsdateien werden mit “pam-auth-update” in die PAM-Konfiguration eingebaut.
sudo pam-auth-update
PAM-Konfiguration
Zu aktivierende PAM-Profile:
*] Cracklib password strength checking
*] Aktivieren von mkhomedir
*] Aktivieren von /etc/security/group.conf
*] Kerberos authentication
*] Unix authentication
*] LDAP Authentication
*] GNOME Keyring Daemon - Login keyring management
*] ConsoleKit Session Management
*] Inheritable Capabilities Management
Das war alles.
War doch gar nicht so schwer.
Gruß
Sven