Windows ermöglicht in seinem AD-Schema seit geraumer Zeit, Posix-Attribute zu definieren, die sich mittels der Komponente "Identity Management for UNIX (IMU) – ehemals "Services for Unix, SFU" – aktivieren lassen. In den Eigenschaften eines Windows-Benutzers können Sie dann die gewünschten Attribute eintragen, also beispielsweise die UID, GID, aber auch das gewünschte Home-Verzeichnis und andere Posix-Informationen.
FreeIPA erkennt diese und würde automatisch auf die im AD gespeicherten Attribute zurückgreifen, anstatt neue Attribute zu definieren. Beim Anlegen des Trusts können Sie jedoch explizit bestimmen, wie sich FreeIPA verhalten soll, falls im AD bereits Posix-Attribute definiert sind. Mittels ipa trust-add --range-type=ipa-ad-trust-posix legen Sie fest, dass im AD gespeicherte Posix-Attribute benutzt werden sollen, hingegen besagt die Anweisung »ipa trust-add-range-type=ipa-ad-trust
«
, dass diese Attribute zu ignorieren sind und FreeIPA in jedem Fall eigene IDs generieren soll.
Für viele Security-Regeln (beispielsweise sudo, SELinux, HBAC) greift das FreeIPA-Framework auf Gruppen-Informationen zurück, um zu entscheiden, ob ein Zugriff für einen bestimmten Benutzer erlaubt ist oder nicht. Da das Framework aber nicht über die Windows-Gruppen Bescheid weiß – schließlich liegen diese extern und sind nicht auf den FreeIPA-Systemen gespeichert – müssen Sie sich eines kleines Tricks bedienen, um diese in den gewünschten Regelwerken verwenden zu können.
Dieser besteht darin, dass alle gewünschten Windows-Gruppen in entsprechende externe (nicht-Posix)-Gruppen aufgenommen werden. Diese wiederum können Sie in Posix-Gruppen verschachteln, die Sie dann letztendlich in Ihren Regelwerken verwenden. Listing 5 zeigt, wie Sie sämtliche Domänen-Benutzer aus der Windows-Domäne über eine externe Gruppe aus dem FreeIPA-Server in eine Posix-Gruppe verschachteln.
Listing 5: Windows-Gruppen nutzen
### Um Windows-Gruppen auf dem FreeIPA zu verwenden, muss man sich eines Tricks bedienen. # ipa group-add --desc='COE users external map'coe_domain_users_external –external --------------------------------------- Added group "coe_domain_users_external" --------------------------------------- Group name: coe_domain_users_external Description: COE users external map # ipa group-add --desc='COE users'coe_domain_users ------------------------------ Added group "coe_domain_users" ------------------------------ Group name: coe_domain_users Description: COE users GID: 1691800008 # ipa group-add-member coe_domain_users_external --external 'COE\Domain Users' [member user]: [member group]: Group name: coe_domain_users_external Description: COE users external map External member: S-1-5-21-2960236960-1249552018-43539955-513 ------------------------- Number of members added 1 ------------------------- # ipa group-add-member coe_domain_users –groups coe_domain_users_external Group name: coe_domain_users Description: COE users GID: 1691800008 Member groups: coe_domain_users_external ------------------------- Number of members added 1 -------------------------
Die Gruppe "coe_domain_users" können Sie von nun an verwenden, um diese beispielsweise in Host-basierten Access Control-Regeln einzusetzen und nur Mitgliedern dieser Gruppe den Zugang zu bestimmten Systemen zu gewähren. Natürlich können Sie diese Prozedur auf beliebige Windows-Gruppen anwenden.