Nun können Sie den eigentlichen Trust zur Root-Domäne einer AD-Struktur herstellen (siehe Listing 1). Hierfür benötigen Sie das Administrator-Passwort der Domäne, zu der Sie den Trust aufbauen wollen. Es besteht auch die Möglichkeit, den Trust von der Windows-Seite aus zu initiieren und dort dann ein Passwort zu definieren, das beim Einrichten des Trusts auch auf dem Free-IPA-Server verwendet werden kann. Der Einfachheit halber beschreiben wir diesen Vorgang jedoch nicht weiter.
Listing 1: Trust einrichten
### Mittels "ipa trust-add" richten Sie einen Trust zu einer AD-Domäne ein. # ipa trust-add --type=ad coe.muc.redhat.com --admin Administrator --password
In unserem Beispiel haben wir eine Vertrauensstellung zur Root-Domäne einer AD-Struktur hergestellt. Die SID der Domäne ist in der Ausgabe von »ipa trust-add
«
zu erkennen. Möchten Sie feststellen, welche anderen Domänen ebenfalls zu der AD-Struktur gehören, so gelingt dies über den Aufruf von »ipa trustdomain-find
«
(Listing 2).
Listing 2: Domänen anzeigen
### IPA kann alle Domänen einer umfangreicheren AD-Struktur anzeigen. # ipa trustdomain-find coe.muc.redhat.com Domain name: coe.muc.redhat.com Domain NetBIOS name: COE Domain Security Identifier: S-1-5-21-2960236960-1249552018-43539955 Domain enabled: True Domain name: dinslaken.coe.muc.redhat.com Domain NetBIOS name: DINSLAKEN Domain Security Identifier: S-1-5-21-4284198935-782209572-831170663 Domain enabled: True
FreeIPA ist in der Lage, die transitiven Vertrauensstellungen zwischen den einzelnen Windows-Domänen auszuwerten, sodass Benutzer aus allen Domänen dieser Struktur auf Ressourcen der FreeIPA-Domäne zurückgreifen können. Listing 3 zeigt ein Beispiel für unterschiedliche Benutzer aus den beiden Domänen der AD-Struktur. In Listing 4 sehen Sie, wie Sie einzelne Domänen von der Vertrauensstellung ausnehmen, um diesen Domänen-Benutzern so den Zugang zu FreeIPA-Ressourcen zu untersagen.
Listing 3: Vertrauensstellungen auswerten
### Mittels getent können Sie Benutzer aus allen Domänen der AD-Struktur auflösen getent passwd mucuser@COE.MUC.REDHAT.COM mucuser@coe.muc.redhat.com:*:1557801105:1557801105:mucuser:/home/coe.muc.redhat.com/mucuser: getent passwd dinuser@DINSLAKEN.COE.MUC.REDHAT.COM dinuser@dinslaken.coe.muc.redhat.com:*:946601116:946601116:dinuser:/home/dinslaken.coe.muc.redhat.com/dinuser:
Hat bis hierhin alles funktioniert, sollte nun der Login auf einem FreeIPA-System mit einem Windows-Konto möglich sein:
ssh -l mucuser@COE.MUC.REDHAT.COM tscherf61
id mucuser@COE.MUC.REDHAT.COM uid=1557801105(mucuser@coe.muc.redhat.com) gid=1557801105(mucuser@coe.muc.redhat.com) groups=1557801105(mucuser@coe.muc.redhat.com),1557800513(domain users@coe.muc.redhat.com)
Wie Sie erkennen können, klappt der Login und der Benutzer aus der Windows-Domäne erhält Zugriff auf das System. Aus den Windows Benutzer- und Gruppen-SIDs ist dabei eine entsprechende Posix UID und GID generiert worden. Beim Login-Vorgang auf dem Linux-Client versucht der dort laufende Client-Dienst sssd, den Benutzer gegenüber dem AD-Domänencontroller zu authentifizieren, und bekommt im Erfolgsfall ein Kerberos TGT (Ticket-Granting Ticket) zurückgeliefert. Dieses enthält die zuvor angesprochene PAC-Struktur, aus der der FreeIPA-Server die entsprechenden Posix-IDs bildet und diese in einem neuen Kerberos Service-Ticket zurück an den Linux-Host schickt. Der sssd packt die Daten aus und speichert diese für zukünftige Zugriffe in seinem Cache. An diesem Punkt ist der Authentifizierungsvorgang auf dem Client vollständig abgeschlossen.
Der Aufruf von »klist
«
zeigt die ausgestellten Kerberos-Tickets für den Windows-Benutzer auf dem eingeloggten Host an:
klist
Ticket cache: KEYRING:persistent:0:0
Default principal: mucuser@COE.MUC.REDHAT.COM
Listing 4: Domänen ausschließen
### Einzelne Domänen lassen sich von dem Trust ausschließen, sodass ein Zugriff auf FreeIPARessourcen nicht mehr möglich ist. ipa trustdomain-disable coe.muc.redhat.com dinslaken.coe.muc.redhat.com -------------------------------------------------- -- Disabled trust domain "dinslaken.coe.muc.redhat.com" -------------------------------------------------- -- ipa trustdomain-find coe.muc.redhat.com Domain name: coe.muc.redhat.com Domain NetBIOS name: COE Domain Security Identifier: S-1-5-21-2960236960-1249552018-43539955 Domain enabled: True Domain name: dinslaken.coe.muc.redhat.com Domain NetBIOS name: DINSLAKEN Domain Security Identifier: S-1-5-21-4284198935-782209572-831170663 Domain enabled: False