Kerberos - Single Sign-on in gemischten Linux/Windows-Umgebungen

Kerberos - Single Sign-on in gemischten Linux/Windows-Umgebungen

von: Mark Pröhl

dpunkt, 2012

ISBN: 9783864910951

Sprache: Deutsch

558 Seiten, Download: 10912 KB

 
Format:  EPUB, PDF, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Kerberos - Single Sign-on in gemischten Linux/Windows-Umgebungen



  Inhaltsverzeichnis 13  
  I Kerberos 25  
     1 Kerberos im Überblick 27  
        1.1 Ursprung am MIT: Das Athena-Projekt 27  
        1.2 Versionen des Kerberos-Protokolls 29  
        1.3 Standardisierung 29  
        1.4 Implementierungen 30  
           1.4.1 Kerberos v4 30  
           1.4.2 Kerberos v5 31  
           1.4.3 Interoperabilität 32  
     2 Grundlagen der Netzwerkauthentisierung mit Kerberos 33  
        2.1 Authentisierung 33  
           2.1.1 Authentisierungsmerkmale 34  
           2.1.2 Problematik der Passwörter 36  
           2.1.3 Lokale Anmeldung vs. Netzwerkauthentisierung 37  
        2.2 Authentisierung mit Kerberos 39  
           2.2.1 KDC 39  
           2.2.2 Realm 40  
           2.2.3 Principals 40  
           2.2.4 Tickets 41  
           2.2.5 Gegenseitige Authentisierung 42  
           2.2.6 Lokale Anmeldung und Kerberos 42  
        2.3 Delegation 43  
        2.4 Autorisierung, Zugriffskontrolle und Namensdienste 44  
           2.4.1 Authentisierung ist Voraussetzung 45  
           2.4.2 Dienste und Identitäten 45  
           2.4.3 Autorisierung und Kerberos 46  
        2.5 Single Sign-on (SSO) 47  
        2.6 Zusammenfassung 49  
     3 Kerberos aus Anwendersicht 51  
        3.1 Die Beispielumgebung 51  
        3.2 Lokale Anmeldung 52  
        3.3 Der Credential Cache 53  
        3.4 Anmeldung an Netzwerkdiensten 54  
        3.5 Delegation 56  
        3.6 Eine Demo-Webseite 58  
        3.7 Umgang mit dem Credential Cache 64  
        3.8 Zusammenfassung 65  
     4 Sicherheit und Kryptografie 67  
        4.1 Sicherheitsüberlegungen 67  
           4.1.1 Allgemeine Sicherheitsanforderungen 67  
           4.1.2 Die beteiligten Systemkomponenten 68  
           4.1.3 Anforderungen an Kerberos 71  
        4.2 Kryptografie in der Netzwerksicherheit 74  
           4.2.1 Vertraulichkeit 74  
           4.2.2 Integrität 77  
           4.2.3 Authentisierung 78  
           4.2.4 Passwörter, Schlüssel und Schlüsselaustausch 83  
           4.2.5 Zusammenfassung 87  
     5 Wie funktioniert Kerberos v5? 89  
        5.1 Das Funktionsprinzip im Überblick 89  
           5.1.1 Voraussetzungen 89  
           5.1.2 Das einstufige Kerberos-Verfahren 91  
           5.1.3 Diskussion 94  
           5.1.4 Das zweistufige Kerberos-Verfahren 95  
           5.1.5 Zusammenfassung 98  
        5.2 Das Funktionsprinzip im Detail 99  
           5.2.1 Die KDC-Datenbank 100  
           5.2.2 Der Authentication Service (AS) 100  
           5.2.3 Zugriff auf kerberisierte Dienste 105  
           5.2.4 Der Ticket-Granting Service (TGS) 109  
        5.3 Zusammenfassung 112  
     6 Kerberos für Fortgeschrittene 115  
        6.1 KDC-Optionen 115  
           6.1.1 Optionen für Ticket Renewing 116  
           6.1.2 Optionen für Ticket Postdating 116  
           6.1.3 Optionen für die Kerberos-Delegation 117  
           6.1.4 Sonstige Optionen 117  
        6.2 Ticket Flags 118  
           6.2.1 Flags für Ticket Renewing 118  
           6.2.2 Flags für Ticket Postdating 118  
           6.2.3 Flags für die Kerberos-Delegation 119  
           6.2.4 Sonstige Flags 119  
        6.3 AP-Optionen 120  
        6.4 Tickets automatisiert erneuern 120  
        6.5 Tickets für die Zukunft 123  
        6.6 Delegation zum Ersten 125  
           6.6.1 Ticket Forwarding 125  
           6.6.2 Ticket Proxying 127  
        6.7 Authentisierung zwischen Realms 129  
           6.7.1 Grundsätzliches zu Vertrauensstellung 129  
           6.7.2 Zwei Realms 131  
           6.7.3 Mehr als zwei Realms 133  
        6.8 Namenskanonisierung und Referrals 136  
           6.8.1 Kanonisierung der Client-Principal-Namen 137  
           6.8.2 Kanonisierung der Dienste-Principal-Namen 138  
           6.8.3 Verweise an entfernte Realms 139  
        6.9 Kerberos und Autorisierungsdaten 139  
        6.10 User-to-User-Authentisierung 140  
        6.11 Delegation zum Zweiten 141  
           6.11.1 Constrained Delegation 142  
           6.11.2 Protocol Transition 143  
           6.11.3 Diskussion 144  
        6.12 Initiale Authentisierung mit Zertifikaten 145  
           6.12.1 Eine Lösung für die Passwort-Problematik 145  
           6.12.2 Das Funktionsprinzip von PKINIT 146  
           6.12.3 Fazit 147  
  II Zentrale Infrastrukturen 149  
     7 Grundlegende Infrastruktur 153  
        7.1 Überblick 153  
        7.2 DNS-Namensauflösung mit BIND 154  
           7.2.1 BIND installieren 155  
           7.2.2 Zonen einrichten 155  
           7.2.3 Starten und Testen 157  
        7.3 Zeitsynchronisation mit NTP 157  
        7.4 Certificate Authority (CA) mit OpenSSL 158  
           7.4.1 Einrichtung der CA 158  
           7.4.2 Einen Zertifikats-Request erzeugen 160  
           7.4.3 Das Zertifikat unterschreiben 161  
        7.5 Verzeichnisdienst mit OpenLDAP 163  
           7.5.1 Installation und Konfiguration 163  
           7.5.2 LDAP-Datenbank für dc=example,dc=com 166  
           7.5.3 Ein erster Test 168  
           7.5.4 Sicherheit 169  
     8 Das Key Distribution Center von MIT Kerberos 173  
        8.1 Übersicht 173  
        8.2 Softwareinstallation 173  
        8.3 Konfiguration 174  
           8.3.1 Der Master Key der KDC-Datenbank 174  
           8.3.2 Zeitangaben bei MIT Kerberos 175  
           8.3.3 Verschlüsselungstypen 176  
           8.3.4 Die Datei kdc.conf 176  
        8.4 Initialisierung der KDC-Datenbank 181  
           8.4.1 Die Datenbank mit kdb5_util initialisieren 181  
           8.4.2 Die initiale Datenbank 183  
           8.4.3 Mit kadmin.local weitere Principals anlegen 184  
           8.4.4 Master Key in Stash-Datei ablegen 185  
        8.5 Starten des KDC 187  
        8.6 Ein erster Test 187  
     9 Die Administration von MIT Kerberos 189  
        9.1 Der Kadmin-Dienst 189  
        9.2 Administrative Zugriffe kontrollieren 191  
        9.3 Der Kpasswd-Dienst 193  
        9.4 Starten der administrativen Dienste 193  
        9.5 Principals verwalten 195  
           9.5.1 Passwortrichtlinien 195  
           9.5.2 Principal-Eigenschaften 198  
           9.5.3 Anwender-Principals anlegen 203  
           9.5.4 Dienste-Principals anlegen 205  
           9.5.5 Verschlüsselungstypen der Principals verwalten 206  
        9.6 Keytabs verwalten 207  
        9.7 Service Keys ändern 208  
     10 Die Clientkommandos von MIT Kerberos 211  
        10.1 Installation und Konfiguration 211  
        10.2 Die Kommandos kinit und klist 211  
           10.2.1 Tickets holen 211  
           10.2.2 Ticket-Eigenschaften anzeigen und beeinflussen 213  
           10.2.3 Protokoll-Requests beeinflussen 215  
           10.2.4 Sonstige Kommandozeilenoptionen 215  
           10.2.5 Service Tickets holen 216  
           10.2.6 Mit Keytabs arbeiten 216  
        10.3 Das Kommando kvno 218  
        10.4 Das Kommando kpasswd 219  
        10.5 Das Kommando kdestroy 220  
        10.6 Die Kommandos k5start und krenew 220  
           10.6.1 krenew 220  
           10.6.2 k5start 221  
     11 Die Konfiguration der MIT Libraries 223  
        11.1 Die Datei krb5.conf 223  
           11.1.1 Die Struktur der krb5.conf 224  
           11.1.2 Konfigurationsabschnitte 225  
           11.1.3 Parameter im Abschnitt [libdefaults] 226  
           11.1.4 Parameter im Abschnitt [realms] 230  
           11.1.5 Parameter im Abschnitt [domain_realm] 232  
           11.1.6 Parameter im Abschnitt [appdefaults] 233  
           11.1.7 Parameter im Abschnitt [logging] 235  
           11.1.8 Die krb5.conf für den Realm EXAMPLE.COM 235  
        11.2 Konfiguration über DNS 236  
           11.2.1 SRV Records 236  
           11.2.2 TXT Records 239  
        11.3 Konfiguration mit Umgebungsvariablen 239  
     12 Ausfallsicherheit für MIT Kerberos 241  
        12.1 Backup der KDC-Datenbank 241  
        12.2 Wiederherstellung der KDC-Datenbank 242  
        12.3 Replikation der KDC-Datenbank 243  
           12.3.1 Möglichkeiten der Kerberos-Replikation 243  
           12.3.2 Sicherheit der Replikation 244  
        12.4 Replikation bei MIT Kerberos 244  
           12.4.1 Ein Slave KDC einrichten 245  
           12.4.2 Schritte auf dem Master KDC 247  
           12.4.3 Das Slave KDC starten 248  
           12.4.4 Das Slave KDC bekannt machen 248  
           12.4.5 Regelmäßig replizieren 248  
     13 Ein LDAP-Backend für die MIT-Datenbank 251  
        13.1 Überblick 251  
           13.1.1 Erweiterte Funktionalitäten 251  
           13.1.2 Vorgehensweise 252  
           13.1.3 Sicherheit 252  
        13.2 Software, Schema und Objekte 254  
           13.2.1 Software installieren 254  
           13.2.2 Das Schema erweitern 254  
           13.2.3 Konvention 257  
           13.2.4 Objekte anlegen 258  
           13.2.5 Limits für LDAP-Suchvorgänge 259  
           13.2.6 LDAP-Berechtigungen 260  
        13.3 Das KDC auf LDAP umstellen 260  
           13.3.1 Vorbereitungen 260  
           13.3.2 Konfiguration 261  
           13.3.3 Die KDC-Datenbank im LDAP initialisieren 263  
           13.3.4 Den Realm einrichten 265  
        13.4 Existierende Nutzerobjekte 266  
        13.5 Principal-Aliase 269  
           13.5.1 Client-Aliase 270  
           13.5.2 Dienste-Aliase 271  
        13.6 Ausfallsicherheit mit LDAP 271  
           13.6.1 OpenLDAP auf kdc01 vorbereiten 272  
           13.6.2 LDAP-Server auf kdc02 einrichten 277  
           13.6.3 Ausfallsicherheit für das KDC 279  
           13.6.4 Die Clientkonfiguration anpassen 280  
        13.7 Lockout Policies 281  
     14 Einen Heimdal Realm einrichten 285  
        14.1 Überblick 285  
        14.2 Vorbereitung 286  
        14.3 Das Key Distribution Center von Heimdal 287  
           14.3.1 Die Datei kdc.conf 288  
           14.3.2 Master Key 290  
           14.3.3 Die KDC-Datenbank initialisieren 291  
           14.3.4 Das KDC starten 293  
        14.4 Die Administration von Heimdal 293  
           14.4.1 Administrative Zugriffe kontrollieren 293  
           14.4.2 Principals verwalten 294  
           14.4.3 Weitere administrative Tätigkeiten 297  
           14.4.4 Passwörter verwalten 297  
        14.5 Die Heimdal-Werkzeuge 299  
        14.6 Ausfallsicherheit für Heimdal 300  
           14.6.1 Ein Slave KDC einrichten 301  
           14.6.2 Starten des hpropd auf dem Slave KDC 302  
           14.6.3 Die Replikation mit Hprop starten 302  
           14.6.4 Regelmäßig replizieren 302  
        14.7 Ein LDAP-Backend für Heimdal 303  
           14.7.1 LDAP vorbereiten 303  
           14.7.2 Das KDC auf LDAP umstellen 305  
           14.7.3 Ausfallsicherheit mit LDAP 306  
     15 Kerberos bei Microsoft Active Directory 309  
        15.1 Active Directory im Überblick 309  
           15.1.1 Kerberos in Active Directory 310  
           15.1.2 AD-Version und Functional Level 311  
        15.2 Testlabor 312  
        15.3 Das Key Distribution Center von Active Directory 313  
           15.3.1 Die Domäne einrichten 313  
           15.3.2 Grundlegende Dienste 319  
           15.3.3 Ein erster Test 320  
           15.3.4 Ausfallsicherheit 321  
        15.4 Kerberos-Administration 321  
           15.4.1 Administrationswerkzeuge 322  
           15.4.2 Überblick über den neuen Realm 322  
           15.4.3 Principals verwalten 324  
           15.4.4 Verschlüsselungstypen 330  
           15.4.5 Keytabs erzeugen 331  
           15.4.6 Kerberos Policies 333  
        15.5 Kerberos-Administration mit LDAP 335  
           15.5.1 LDAP-Suchen im AD 336  
           15.5.2 Ein Benutzerobjekt anlegen 337  
           15.5.3 Diensteobjekte anlegen 339  
           15.5.4 Maschinenobjekte anlegen 339  
        15.6 Weitere Werkzeuge 342  
     16 Kerberos für Fortgeschrittene 343  
        16.1 Verteilte Kerberos-Umgebungen 343  
           16.1.1 Cross-Realm bei MIT Kerberos 344  
           16.1.2 Cross-Realm bei Heimdal 349  
           16.1.3 Cross-Realm bei Active Directory 353  
           16.1.4 Aufbau der Gesamtstruktur 355  
        16.2 Delegation für Fortgeschrittene 360  
           16.2.1 Vorbereitungen 360  
           16.2.2 Das Ok-As-Delegate Flag 361  
           16.2.3 kimpersonate 363  
           16.2.4 Constrained Delegation und Protocol Transition 365  
        16.3 PKINIT 368  
           16.3.1 Initiale Authentisierung mit Zertifikaten 368  
           16.3.2 PKINIT im Testnetz 369  
           16.3.3 Kerberos, PKINIT und Smartcards 374  
  III Integrierte Umgebungen 379  
     17 Grundlagen 383  
        17.1 Principals und Keytabs verwalten 383  
           17.1.1 Client Principals anlegen 383  
           17.1.2 Funktionalität von Client Principals prüfen 384  
           17.1.3 Dienste-Principals anlegen 385  
           17.1.4 Funktionalität von Dienste-Principals prüfen 386  
           17.1.5 Keytab-Dateien anlegen 386  
           17.1.6 Funktionalität von Keytab-Dateien prüfen 387  
        17.2 Zwischenstand 387  
        17.3 Die nativen Kerberos-Bibliotheken 388  
        17.4 GSS-API 388  
        17.5 SPNEGO 390  
        17.6 SSPI 390  
        17.7 SASL 391  
           17.7.1 Protokolle 391  
           17.7.2 Mechanismen 391  
           17.7.3 Konzepte 392  
           17.7.4 Cyrus SASL 393  
        17.8 Zusammenfassung 394  
     18 LDAP-Infrastruktur 395  
        18.1 LDAP im Überblick 395  
           18.1.1 Begriffe und Standards 395  
           18.1.2 Serverimplementierungen 397  
           18.1.3 Daten Im LDAP 397  
           18.1.4 Verzeichnisoperationen 399  
        18.2 LDAP-Sicherheit 400  
        18.3 Kerberisierung bei Active Directory 401  
        18.4 Kerberisierung bei OpenLDAP 403  
           18.4.1 SASL-Konfiguration 403  
           18.4.2 Principal und Keytab 404  
           18.4.3 Identitäts-Mapping 405  
        18.5 Zusammenfassung 408  
     19 Client-Anbindung 411  
        19.1 Windows-Clients in Active Directory 411  
        19.2 Ausbau der Gesamtstruktur 414  
           19.2.1 LDAP-Referrals einrichten 415  
           19.2.2 Identitäts- und Autorisierungsdaten für Linux 416  
        19.3 Linux-Clients in der Infrastruktur mit Kerberos und OpenLDAP 421  
           19.3.1 Name Service Switch (NSS) 422  
           19.3.2 NSS-Module für LDAP 423  
           19.3.3 Pluggable Authentication Modules (PAM) 430  
           19.3.4 pam-krb5 433  
        19.4 Linux-Clients in Active Directory 436  
        19.5 Linux-Clients in der Gesamtinfrastruktur 437  
           19.5.1 Problemstellung 437  
           19.5.2 slapd als lokaler LDAP-Proxy 438  
           19.5.3 slapd-Konfiguration 439  
           19.5.4 Test der NSS-Anbindung 442  
           19.5.5 PAM-Kerberos-Konfiguration 443  
           19.5.6 Ausblick 445  
        19.6 Zusammenfassung 445  
     20 Elementare Netzwerkdienste unter Unix und Linux 447  
        20.1 Traditionelle Remote-Dienste 447  
           20.1.1 Telnet 447  
           20.1.2 Kerberisierte Remote Shell: krb5-rsh 454  
           20.1.3 Kerberisierter File Transfer: krb5-ftp 455  
        20.2 Moderne Remote-Dienste mit OpenSSH 456  
           20.2.1 Vorbereitungen 457  
           20.2.2 Kerberisierte Secure-Shell-Sitzung 458  
           20.2.3 Tickets weiterleiten 459  
           20.2.4 Secure-Shell-Client unter Windows 460  
           20.2.5 OpenSSH ohne Kerberos Tickets 464  
        20.3 Remote-Dienste in verteilter Umgebung 465  
           20.3.1 Cross-Realm-Problematik 465  
           20.3.2 auth_to_local-Mappings 466  
           20.3.3 Heimdal 468  
           20.3.4 Cross-Realm-Anmeldung ohne Kerberos Tickets 468  
     21 Kerberisierte Dateisysteme 469  
        21.1 CIFS 469  
           21.1.1 CIFS-Service unter Windows einrichten 469  
           21.1.2 Authentisierung bei CIFS 472  
           21.1.3 CIFS-Client unter Linux 472  
           21.1.4 CIFS-Service unter Linux: Samba 474  
           21.1.5 ID Mapping 477  
           21.1.6 Heimatverzeichnisse für alle Windows-Nutzer 482  
        21.2 NFS 483  
           21.2.1 Überblick 483  
           21.2.2 NFSv3 ohne Kerberos 484  
           21.2.3 NFSv3 und Sicherheit 486  
           21.2.4 NFSv4 487  
           21.2.5 Kerberisierter NFSv4-Service unter Linux 488  
           21.2.6 Den Server einrichten 493  
           21.2.7 Kerberisierter NFSv4-Client unter Linux 494  
           21.2.8 Den Client einrichten 495  
           21.2.9 NFSv4 und Sicherheit 497  
           21.2.10 NFSv4 in Cross-Realm-Umgebung 498  
           21.2.11 Abschlussarbeiten 498  
     22 Single Sign-on für den Apache-Webserver 501  
        22.1 Kerberos und das HTTP-Protokoll 501  
           22.1.1 Das World Wide Web 501  
           22.1.2 Authentisierung im HTTP-Protokoll 502  
           22.1.3 Negotiate (SPNEGO) 503  
        22.2 Den Apache-Server konfigurieren 503  
           22.2.1 Voraussetzungen 503  
           22.2.2 Principals und Keytab-Einträge 505  
           22.2.3 mod_auth_kerb konfigurieren 508  
        22.3 Browserkonfiguration 509  
           22.3.1 Vertrauenswürdige Seiten konfigurieren 509  
           22.3.2 Zugriff testen 510  
           22.3.3 Delegation konfigurieren 512  
           22.3.4 Delegation testen 513  
        22.4 Autorisierungsdaten und Ticket-Größe 515  
        22.5 Autorisierung über LDAP 516  
        22.6 Beispiel MediaWiki 519  
           22.6.1 Die Anwendung einrichten 519  
           22.6.2 Kerberisierung 520  
        22.7 Zusammenfassung 522  
  IV Anhang 523  
     A Schnelleinstieg in LDAP 525  
        A.1 LDIF 525  
           A.1.1 Das LDAP-Datenmodell 525  
           A.1.2 LDIF-Repräsentation von LDAP-Daten 526  
           A.1.3 Änderungen mit LDIF 527  
        A.2 OpenLDAP-Tools 529  
           A.2.1 Suchen mit ldapsearch 529  
           A.2.2 Authentisierung 530  
           A.2.3 Weitere OpenLDAP-Kommandos 532  
        A.3 Grafische LDAP-Werkzeuge 532  
     B Konfiguration der Betriebssysteme 535  
        B.1 Netzwerkparameter 535  
        B.2 Ubuntu 10.04 535  
        B.3 Windows Server 2008 R2 538  
        B.4 Windows 7 539  
     C Softwareinstallationen 541  
        C.1 Vorbemerkungen 541  
        C.2 MIT Kerberos 542  
        C.3 MIT-Kerberos-Applikationen 543  
        C.4 Heimdal 543  
        C.5 k5start 544  
        C.6 msktutil 545  
        C.7 OpenSC 545  
     Literaturverzeichnis 547  
     Index 553  

Kategorien

Service

Info/Kontakt