PAM
Die LDAP Module
für PAM die unter
Linux eingesetzt werden stammen meist von der Firma
PADL. Die Implementierung
hät sich weitestgehend an die Vorschläge der IETF, welche in
RFC 2703 dokumentiert sind.
Für die LDAP-Konfiguration müssen die RPM-Pakete pam_ldap,nss_ldap und autofs installiert sein. Sollte dies nicht der Fall sein, so installieren Sie diese bevor Sie fortfahren.
linux # zypper install pam_ldap nss_ldap autofs
Bei 64-bit Systemen benötigen Sie zusätzlich die RPM-Pakete pam_ldap-32bit, nss_ldap-32bit.
linux # zypper install pam_ldap-32bit nss_ldap-32bit
Um sowohl PAM als auch den Nameservice mit Daten aus dem LDAP-Verzeichnis zu versorgen, gilt es die entsprechenden Konfigurationsdateien anzupassen. Diese befinden sich unter /etc/pam.d/.
/etc/pam.d/common-session
Wichtig für Benutzersitzungen und spezielle Benutzerumgebung (z.B. Mailkonten, Home-Verzeichnis, etc.)
linux # cat /etc/pam.d/common-session session required pam_limits.so session required pam_unix2.so session optional pam_ldap.so session optional pam_umask.so
/etc/pam.d/common-password
Wichtig für die Spezifikation des Passwortwechsel und der Passwortzusammensetzung
linux # cat /etc/pam.d/common-password password requisite pam_pwcheck.so nullok cracklib password sufficient pam_unix2.so use_authtok nullok password required pam_ldap.so try_first_pass use_authtok
/etc/pam.d/common-auth
Wichtig für die Überprüfung der Authentizität des Benutzers
linux # cat /etc/pam.d/common-auth auth required pam_env.so auth sufficient pam_unix2.so auth required pam_ldap.so use_first_pass
/etc/pam.d/common-account
Wichtig für die Prüfung der Benutzerberechtigung zur Verwendung des angeforderten Dienstes
linux # cat /etc/pam.d/common-account account requisite pam_unix2.so account sufficient pam_localuser.so account required pam_ldap.so use_first_pass session optional pam_umask.so
/etc/ldap.conf
Die wichtigsten LDAP-Angaben sind in der Datei /etc/ldap.conf untergebracht. Diese kann weit ins Detail verfeinert werden, zunächst genügt aber die folgende Konfiguration.
linux # cat /etc/ldap.conf host ldapext1.rrze.uni-erlangen.de ldapext2.rrze.uni-erlangen.de base dc=rrze,dc=uni-erlangen,dc=de ldap_version 3 bind_policy soft timelimit 600 bind_timelimit 60 idle_timelimit 600 rootbinddn cn=<hostname>,ou=hostpamldap,ou=profile,dc=rrze,dc=uni-erlangen,dc=de pam_lookup_policy yes pam_password crypt ssl start_tls nss_map_attribute uniqueMember member pam_filter objectclass=posixAccount tls_checkpeer no
/etc/ldap.secret
Das Passwort des Proxy-Accounts (rootbinddn) wird in der Datei /etc/ldap.secret angegeben. Hierbei ist ratsam die Berechtigungen der Datei so abzuändern, dass lediglich der Besitzer diese lesen und schreiben darf.
linux # cat /etc/ldap.secret geheimesPW linux # ls -la /etc/ldap.secret -rw------- 1 root root 11 21. Mär 08:30 /etc/ldap.secret
/etc/nsswitch.conf
Die Reihenfolge in der eine FUnktion auf einen Dienst zugreift bzw. diesen abfragt wird in der Datei /etc/nsswitch.conf festgelegt. Hier muss passwd und group jeweils auf compat, sowie passwd_compat und group_compat auf ldap gesetzt werden. Dies ist nötig, um sicherzustellen, dass die durch "+" hinzugefügten Benutzerkennungen aus dem LDAP bezogen werden.
linux # cat /etc/nsswitch.conf passwd: compat group: compat hosts: files dns networks: files dns services: files ldap protocols: files rpc: files ethers: files netmask: files netgroup: files ldap publickey: files bootparams: files automount: files ldap aliases: files ldap passwd_compat: ldap group_compat: ldap
/etc/passwd
Tragen Sie nun die gewünschten Benutzerkennungen mittels "+<Benutzerkennung>::::::" in die Datei /etc/passwd ein.
linux # cat /etc/passwd ... +unrz193:::::: +:!!SSHBUGSUCKS:::::
/etc/shadow
Ans Ende der Datei /etc/shadow fügen Sie "+::::::::" an, um für alle weiteren Benutzerkennungen das Passwort am LDAP-Server abzufragen. Ein Eintrag für jede zusätzliche Benutzerkennung ist hierbei nicht erforderlich.
linux # cat /etc/shadow ... +::::::::
/etc/group
Auch in der Datei /etc/group genügt das einfügen von "+:::" in der letzten zeile, um für zusätzliche Benutzerkennungen die Gruppenanfrage an den LDAP-Server zu richten.
linux # cat /etc/group ... +:::
Dienste neu starten
Nach der Konfigurationsanpassung muss der Dienst nscd neu gestartet werden. Dieser ist für das Zwischenspeichern von name Service Anfragen zuständig. Dadurch wird sichergestellt, dass der LDAP-Server von den Clients benutzt wird.
linux # /etc/init.dnscd restart Shutting down Name Service Cache Daemon done Starting Name Service Cache Daemon done
automounter
Wenn Sie automounter aktiviert haben, tragen Sie folgendes in Ihre /etc/auto.master ein.
linux # cat /etc/auto.master ... +auto.master
Auch hier muss nach der Konfigurationsanpassung der Dienst neu gestartet werden. Damit dieser außerdem nach einem Reboot automatisch gestartet wird, aktivieren Sie das init-Skript mittels dem Kommando insserv.
linux # /etc/init.d/autofs restart Shutting down automount done Starting automount done linux # /sbin/insserv autofs



