280 likes | 403 Views
Benutzerverwaltung mit LDAP. Norbert Klasen Directory Services Universität Tübingen norbert.klasen@directory.dfn.de 10.10.2000. Benutzerverwaltung. Authentifizierung. Kerberos, TLS. PAM. PAM_LDAP. Apache. Fazit. Benutzerverwaltung mit LDAP. aktueller Zustand.
E N D
Benutzerverwaltung mit LDAP Norbert Klasen Directory Services Universität Tübingen norbert.klasen@directory.dfn.de 10.10.2000
Benutzerverwaltung Authentifizierung Kerberos, TLS PAM PAM_LDAP Apache Fazit Benutzerverwaltung mit LDAP
aktueller Zustand Applikation / Datenbank Administrator Client LDAP Authentifizierung
Zentrale Struktur Applikation LDAP basiertes Verzeichnis Administrator Client LDAP Authentifizierung
LDAP als zentrales Repository • Offener Standard • Erweiterbares Datenmodell • Performance • Überwiegend Lesezugriffe • Skalierbarkeit • Replikation • loose consistency • mehrstufige Topologie LDAP Authentifizierung
Authentifizierung • Identitätsfeststellung • Mechanismen • Username und Passwort • public-key Zertifikate • Chip-Karte • Biometrie LDAP Authentifizierung
Autorisierung • Zulässigkeit einer Operation • Auswertung der Zugriffsrichtlinien (ACLs) anhand der • Zugriffsfaktoren • Identität • Ziel • Operation • IP-Adresse • Verschlüsselungsstärke • AuthentifizierungsID AutorisierungsID LDAP Authentifizierung
Authentifizierungs-Verfahren in LDAP (rfc2829) • anonym • simple bind (plain text) • SASL (Simple Authentication and Security Layer, rfc2222) • Challenge-Response (Digest-MD5) • GSSAPI (Kerberos 5) • EXTERNAL LDAP Authentifizierung
Kerberos • Network Authentication Protocol • Authentication Service (AS) stellt Tickets für Services aus • Ticket Granting Service (TGS) stellt Ticket für AS • ermöglicht Single-Sign-On • AS und TGS bilden Key Distribution Center (KDC) LDAP Authentifizierung
Kerberos 5 und LDAP • Kerberos 5 GSSAPI SASL • Standard in Windows 2000 • Interoperabel mit Unix Implementierungen • Active Directory integriert KDC und LDAP Server • Unterstützt in OpenLDAP 2.0 • Reines Authentifikations System • Kann keine weiteren Daten speichern LDAP Authentifizierung
Transport Layer Security • SSL auf Port 636 • TLS (rfc2830) • LDAP Extended Request (STARTTLS) • simple bind • SASL EXTERNAL Mechanismus • implizit: AutorisierungsID = Subject aus X.509 Zertifikat • explizite Angabe der AutorisierungsID LDAP Authentifizierung
Pluggable Authentification Modules • Modularisierung der Authentifizierung unter Unix • Module • /etc/passwd, Shadow, SMB, Radius, Kerberos, LDAP • Name Service Switch • Auflösung Namen Nummern • z.B. UID oder Ports • verfügbar unter Linux, FreeBSD, MacOS X, Solaris, HPUX, Irix LDAP Authentifizierung
Authentifizierung ohne PAM • Authentifizierung fest eincompiliert: pwd = getpwnam (user); if (strcmp(crypt(password,pwd->pw_passwd), pwd->pw_passwd) != 0) return AUTH_ERROR; return AUTH_SUCCESS; LDAP Authentifizierung
Applikation Applikation C Bibliothek C Bibliothek PAM Bibliothek “flat files” /etc/passwd /etc/hosts NSS Bibliothek flat files LDAP NIS SMB Unix Authentifizierung LDAP Authentifizierung
Authentifizierung mit PAM • PAM-Applikationen rufen generische PAM-Funktionen auf: pam_start (...); if (!pam_authenticate(...) || !pam_acct_mgmt(...)) { pam_end (...); exit (1); } pam_open_session (...); user_service (); pam_close_session (...); pam_end (...); LDAP Authentifizierung
Modul-Typen • auth - Login und Paßwortabfrage • account – Überprüft / setzt Systemressourcen • session – An- bzw. abmelden der Sitzung • password - Ändern des authenti-fizierungs Tokens, meistens das Paßwort LDAP Authentifizierung
Control-Flags • required - Erfolg des Moduls ist zwingend, trotzdem weitere abarbeiten • requisite - ähnlich, aber bei Mißerfolg sofort abbrechen • sufficient - Bei Erfolg sofort abbrechen, folgende Module werden ignoriert • optional - Ergebnis des Moduls wird ignoriert LDAP Authentifizierung
PAM Konfiguration • eine Konfigurationsdatei je Dienst • z.B. /etc/pam.d/login #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_pwdb.so auth sufficient /lib/security/pam_ldap.so account sufficient /lib/security/pam_ldap.so #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so use_first_pass account required /lib/security/pam_pwdb.so LDAP Authentifizierung
PAM_LDAP und NSS_LDAP • gemäß rfc2307 „LDAP as Network Information Service“ • Alternative zu NIS • sicher bei Verwendung von SSL • Migrationstools • Verwendbar mit allen LDAP-kompatiblen Servern, z.b. Novell NDS, Microsoft Active Directory LDAP Authentifizierung
PAM_LDAP Funktionen • auth • suche nach UID • bind • account • account und password expiration • Gruppenzugehörigkeit • Beschränkung auf bestimmte Hosts • password • Änderungs des Passworts LDAP Authentifizierung
PAM_LDAP Konfiguration • Konfigurationsdatei/etc/ldap.conf host 127.0.0.1 port 389 ldap_version 3 base dc=directory,dc=dfn,dc=de rootbinddn cn=dragon.directory.dfn.de, ou=hosts,dc=directory,dc=dfn,dc=de pam_filter objectclass=account pam_login_attribute uid pam_groupdn cn=PAM,ou=Groups,dc=directory,dc=dfn,dc=de pam_member_attribute uniquemember pam_min_uid 500 LDAP Authentifizierung
NSS_LDAP • Konfigurationsdatei/etc/nsswitch.conf passwd: files ldap group: files ldap hosts: files dns Name Service Caching Daemon • passwd, group und hosts LDAP Authentifizierung
Apache auth_ldap • Ausschnitt aus der httpd.conf <Directory /usr/local/htdocs/> AuthName ”LDAP Authentifizierung" AuthType Basic AuthLDAPURL ldap://host:port/ basedn?attribute?scope?filter AuthLDAPBindDN dc=directory,dc=dfn,dc=de AuthLDAPBindPassword geheim AuthLDAPRemoteUserIsDN on require valid-user </Directory> LDAP Authentifizierung
auth_ldap Funktionen • irgendein eingetragener Benutzer • require valid-user • ein bestimmter Benutzer • require user [USERNAME] • require dn [DN] • Benutzer einer Gruppe • require group [GROUPDN] • weitere Restriktionen über den filter Parameter • Cashing • SSL LDAP Authentifizierung
weitere Einsatzmöglichkeiten • Cyrus SASL Bibliothek • PAM backend für plain text • Sendmail 8.11 • Cyrus IMAPD • proftpd • SAMBA • Radius LDAP Authentifizierung
Fazit • Neben den reinen Authentifizierungsdaten können in einem Verzeichnisdienst auch Zugriffsrichtlinien gespeichert werden • Zusätzlich können White Pages Informationen abgelegt werden • Verzeichnisdienste als das zentrale Managementtool für Applikationen und Netzwerkdienste • Directory Enabled Networks (DEN) LDAP Authentifizierung
Fragen? norbert.klasen@directory.dfn.de http://www.directory.dfn.de
Links • Kerberos und Active Directory • http://www.pdc.kth.se/heimdal/ • http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp • http://msdn.microsoft.com/library/techart/kerberossamp.htm • http://www.microsoft.com/windows2000/sfu/psync.asp • SASL • http://asg.web.cmu.edu/sasl/ • PAM_LDAP • http://www.padl.com • OpenLDAP • http://www.openldap.org • LDAP im Netscape Navigator • http://developer.netscape.com/docs/manuals/communicator/ldap45.htm LDAP Authentifizierung