Linux Virtual Delivery Agent 2503

NIS in Active Directory integrieren

Dieser Artikel beschreibt, wie NIS mithilfe von SSSD in Windows Active Directory (AD) auf dem Linux VDA integriert wird. Der Linux VDA wird als Komponente von Citrix Virtual Apps and Desktops betrachtet. Dadurch fügt er sich nahtlos in die Windows AD-Umgebung ein.

Die Verwendung von NIS anstelle von AD als UID- und GID-Anbieter erfordert, dass die Kontoinformationen (Benutzername- und Kennwortkombinationen) in AD und NIS identisch sind.

Hinweis:

Die Authentifizierung wird weiterhin vom AD-Server durchgeführt. NIS+ wird nicht unterstützt. Wenn Sie NIS als UID- und GID-Anbieter verwenden, werden die POSIX-Attribute vom Windows-Server nicht mehr verwendet.

Tipp:

Diese Methode stellt eine veraltete Art der Bereitstellung des Linux VDA dar, die nur für spezielle Anwendungsfälle verwendet wird. Für eine RHEL-Distribution befolgen Sie die Anweisungen unter Installieren des Linux VDA unter RHEL und Rocky Linux manuell. Für eine Ubuntu-Distribution befolgen Sie die Anweisungen unter Installieren des Linux VDA unter Ubuntu manuell.

Was ist SSSD?

SSSD ist ein System-Daemon. Seine Hauptfunktion besteht darin, den Zugriff zur Identifizierung und Authentifizierung entfernter Ressourcen über ein gemeinsames Framework bereitzustellen, das Caching und Offline-Unterstützung für das System bieten kann. Es stellt sowohl PAM- als auch NSS-Module bereit und kann zukünftig D-BUS-basierte Schnittstellen für erweiterte Benutzerinformationen unterstützen. Es bietet auch eine bessere Datenbank zum Speichern lokaler Benutzerkonten und erweiterter Benutzerdaten.

NIS in AD integrieren

Führen Sie die folgenden Schritte aus, um NIS in AD zu integrieren:

Schritt 1: Linux VDA als NIS-Client hinzufügen

Konfigurieren Sie den NIS-Client:

yum –y install ypbind rpcbind oddjob-mkhomedir
<!--NeedCopy-->

Legen Sie die NIS-Domäne fest:

ypdomainname nis.domain
echo "NISDOMAIN=nis.domain" >> /etc/sysconfig/network
<!--NeedCopy-->

Fügen Sie die IP-Adresse für den NIS-Server und -Client in /etc/hosts hinzu:

{NIS server IP address}   server.nis.domain nis.domain

Konfigurieren Sie NIS mit authconfig:

sudo authconfig --enablenis --nisdomain=nis.domain --nisserver=server.nis.domain --enablemkhomedir --update
<!--NeedCopy-->

Die nis.domain stellt den Domänennamen des NIS-Servers dar. Die server.nis.domain ist der Hostname des NIS-Servers, der auch die IP-Adresse des NIS-Servers sein kann.

  • Konfigurieren Sie die NIS-Dienste:
-  sudo systemctl start rpcbind ypbind

sudo systemctl enable rpcbind ypbind
<!--NeedCopy-->
  • Stellen Sie sicher, dass die NIS-Konfiguration korrekt ist:
ypwhich
<!--NeedCopy-->

Überprüfen Sie, ob die Kontoinformationen vom NIS-Server verfügbar sind:

getent passwd nisaccount
<!--NeedCopy-->

Hinweis:

Das nisaccount stellt das tatsächliche NIS-Konto auf dem NIS-Server dar. Stellen Sie sicher, dass UID, GID, Home-Verzeichnis und Anmelde-Shell korrekt konfiguriert sind.

Schritt 2: Domäne beitreten und Host-Keytab mit Samba erstellen

SSSD bietet keine AD-Client-Funktionen zum Beitreten der Domäne und zur Verwaltung der System-Keytab-Datei. Es gibt verschiedene Methoden, um diese Funktionen zu erreichen, darunter:

  • adcli
  • realmd
  • Winbind
  • Samba

Die Informationen in diesem Abschnitt beschreiben nur den Samba-Ansatz. Informationen zu realmd finden Sie in der Dokumentation des RHEL- oder CentOS-Anbieters. Diese Schritte müssen vor der Konfiguration von SSSD ausgeführt werden.

Der Domäne beitreten und Host-Keytab mit Samba erstellen:

Auf dem Linux-Client mit ordnungsgemäß konfigurierten Dateien:

  • /etc/krb5.conf
  • /etc/samba/smb.conf:

Konfigurieren Sie den Computer für Samba- und Kerberos-Authentifizierung:

sudo authconfig --smbsecurity=ads --smbworkgroup=domain --smbrealm=REALM --krb5realm=REALM --krb5kdc=fqdn-of-domain-controller --update
<!--NeedCopy-->

Dabei ist REALM der Kerberos-Realm-Name in Großbuchstaben und domain der NetBIOS-Name der Domäne.

Wenn eine DNS-basierte Suche des KDC-Servers und des Realm-Namens erforderlich ist, fügen Sie die folgenden beiden Optionen zum vorhergehenden Befehl hinzu:

--enablekrb5kdcdns --enablekrb5realmdns

Öffnen Sie /etc/samba/smb.conf und fügen Sie die folgenden Einträge unter dem Abschnitt [Global] hinzu, jedoch nach dem Abschnitt, der vom authconfig-Tool generiert wurde:

kerberos method = secrets and keytab winbind offline logon = no

Um der Windows-Domäne beizutreten, muss Ihr Domänencontroller erreichbar sein und Sie müssen über ein AD-Benutzerkonto mit Berechtigungen zum Hinzufügen von Computern zur Domäne verfügen:

sudo net ads join REALM -U user
<!--NeedCopy-->

REALM ist der Kerberos-Realm-Name in Großbuchstaben und user ist ein Domänenbenutzer, der Berechtigungen zum Hinzufügen von Computern zur Domäne besitzt.

Schritt 3: SSSD einrichten

Hinweis

Die Verwendung von SSSD mit dem Name Service Cache Daemon (NSCD) kann zu unerwartetem Verhalten führen. Weitere Informationen finden Sie unter Using NSCD with SSSD.

Die Einrichtung von SSSD umfasst die folgenden Schritte:

  • Installieren Sie die Pakete sssd-ad und sssd-proxy auf dem Linux-Clientcomputer.
  • Nehmen Sie Konfigurationsänderungen an verschiedenen Dateien vor (z. B. sssd.conf).
  • Starten Sie den sssd-Dienst.

/etc/sssd/sssd.conf

Eine Beispielkonfiguration für sssd.conf (weitere Optionen können bei Bedarf hinzugefügt werden):

[sssd]
config_file_version = 2
domains = EXAMPLE
services = nss, pam

[domain/EXAMPLE]
# Uncomment if you need offline logins
# cache_credentials = true
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
id_provider = proxy
proxy_lib_name = nis
auth_provider = ad
access_provider = ad

-  # Should be specified as the long version of the Active Directory domain.
-  ad_domain = EXAMPLE.COM

# Kerberos settings
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U

# Uncomment if service discovery is not working
# ad_server = server.ad.example.com

# Comment out if the users have the shell and home dir set on the AD side
default_shell = /bin/bash
fallback_homedir = /home/%d/%u

# Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
# ldap_sasl_authid = host/client.ad.example.com@AD.EXAMPLE.COM
<!--NeedCopy-->

Ersetzen Sie ad.domain.com, server.ad.example.com durch den entsprechenden Wert. Weitere Details finden Sie auf der sssd-ad(5) - Linux-Manpage.

Legen Sie den Dateibesitz und die Berechtigungen für sssd.conf fest:

chown root:root /etc/sssd/sssd.conf chmod 0600 /etc/sssd/sssd.conf restorecon /etc/sssd/sssd.conf

Schritt 4: NSS/PAM konfigurieren

RHEL/CentOS:

Verwenden Sie authconfig, um SSSD zu aktivieren. Installieren Sie oddjob-mkhomedir, um sicherzustellen, dass die Erstellung des Home-Verzeichnisses mit SELinux kompatibel ist:

authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

sudo systemctl start sssd

sudo systemctl enable sssd
<!--NeedCopy-->

Tipp:

Berücksichtigen Sie bei der Konfiguration der Linux VDA-Einstellungen, dass es für SSSD keine speziellen Einstellungen für den Linux VDA-Client gibt. Verwenden Sie für zusätzliche Lösungen im Skript ctxsetup.sh den Standardwert.

Schritt 5: Kerberos-Konfiguration überprüfen

Um sicherzustellen, dass Kerberos für die Verwendung mit dem Linux VDA korrekt konfiguriert ist, überprüfen Sie, ob die System-Keytab-Datei erstellt wurde und gültige Schlüssel enthält:

sudo klist -ke
<!--NeedCopy-->

Dieser Befehl zeigt die Liste der Schlüssel an, die für die verschiedenen Kombinationen von Prinzipalnamen und Chiffriersuiten verfügbar sind. Führen Sie den Kerberos-Befehl kinit aus, um den Computer mit dem Domänencontroller unter Verwendung dieser Schlüssel zu authentifizieren:

sudo kinit –k MACHINE\$@REALM
<!--NeedCopy-->

Die Computer- und Realm-Namen müssen in Großbuchstaben angegeben werden. Das Dollarzeichen ($) muss mit einem Backslash (\) maskiert werden, um eine Shell-Substitution zu verhindern. In einigen Umgebungen unterscheidet sich der DNS-Domänenname vom Kerberos-Realm-Namen. Stellen Sie sicher, dass der Realm-Name verwendet wird. Wenn dieser Befehl erfolgreich ist, wird keine Ausgabe angezeigt.

Überprüfen Sie, ob das TGT-Ticket für das Computerkonto zwischengespeichert wurde, indem Sie Folgendes verwenden:

sudo klist -ke
<!--NeedCopy-->

Schritt 6: Benutzerauthentifizierung überprüfen

Verwenden Sie den Befehl getent, um zu überprüfen, ob das Anmeldeformat unterstützt wird und ob NSS funktioniert:

sudo getent passwd DOMAIN\\username
<!--NeedCopy-->

Der Parameter DOMAIN gibt den Kurznamen der Domäne an. Wenn ein anderes Anmeldeformat erforderlich ist, überprüfen Sie dies zuerst mit dem Befehl getent.

Die unterstützten Anmeldeformate sind:

  • Down-Level-Anmeldename: DOMAIN\username
  • UPN: username@domain.com
  • NetBIOS-Suffix-Format: username@DOMAIN

Um zu überprüfen, ob das SSSD PAM-Modul korrekt konfiguriert ist, melden Sie sich mit einem Domänenbenutzerkonto am Linux VDA an. Das Domänenbenutzerkonto wurde zuvor noch nicht verwendet.

sudo ssh localhost –l DOMAIN\\username

id -u
<!--NeedCopy-->

Überprüfen Sie, ob eine entsprechende Kerberos-Anmeldeinformations-Cache-Datei für die vom Befehl zurückgegebene uid erstellt wurde:

ls /tmp/krb5cc_{uid}
<!--NeedCopy-->

Überprüfen Sie, ob die Tickets im Kerberos-Anmeldeinformations-Cache des Benutzers gültig und nicht abgelaufen sind:

klist
<!--NeedCopy-->