Product Documentation

Integrieren von NIS in Active Directory

Oct 17, 2016

In diesem Abschnitt wird beschrieben, wie NIS in Windows Active Directory (AD) auf dem Linux VDA mithilfe von SSSD integriert wird. Der Linux VDA ist eine Komponente von Citrix XenApp und XenDesktop. Daher passt er eng in die Windows AD-Umgebung. 

Zur Verwendung von NIS anstelle von AD als UID- und GID-Anbieter müssen die Kontoinformationen (Benutzernamen/Kennwortkombinationen) in AD und NIS identisch sein.

Hinweis

Die Authentifizierung findet weiterhin auf dem Active Directory-Server statt. NIS+ wird nicht unterstützt. Wenn Sie NIS als UID- und GID-Anbieter verwenden, werden die POSIX-Attribute des Windows-Servers nicht mehr verwendet.

Important

Es handelt sich um ein experimentelles, von Citrix als Technical Preview bereitgestelltes Feature. Bei Implementierung des Features in einer Produktionsumgebung Vorsicht walten lassen. 

SSSD

SSSD ist ein System-Daemon. Seine primäre Funktion ist die Bereitstellung des Zugriffs zur Identifizierung und Authentifizierung von Remoteressourcen über ein gemeinsames Framework, das Zwischenspeicherung und Offlineunterstützung für das System liefert. Es bietet PAM- und NSS-Module und soll künftig D-BUS-Schnittstellen für erweiterte Benutzerinformationen unterstützen. Es bietet zudem eine bessere Datenbank für lokale Benutzerkonten und erweiterte Benutzerdaten.

Erforderliche Software

Der Active Directory-Anbieter wurde mit SSSD Version 1.9.0 eingeführt. Wenn Sie eine ältere Version verwenden, folgen Sie den Anweisungen unter Configuring the LDAP provider with Active Directory.

Die folgenden Umgebungen wurden gemäß den Anweisungen in diesem Artikel getestet:

  • RHEL 7.2/CentOS 7.2
  • Linux VDA 1.3 und 1.4

Integrieren von NIS in Active Directory

Hinzufügen des Linux VDA als NIS-Client

Konfigurieren Sie den NIS-Client:

command Kopieren

yum –y install ypbind rpcbind oddjob-mkhomedir

Legen Sie die NIS-Domäne fest:

command Kopieren

ypdomainname nis.domain

echo “NISDOMAIN=nis.domain” >> /etc/sysconfig/network

Fügen Sie die IP-Adresse des NIS-Servers/-Clients zu /etc/Hosts hinzu:

command Kopieren

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

Konfigurieren Sie NIS über authconfig:

command Kopieren

sudo authconfig \

     --enablenis \

     --nisdomain=nis.domain \

     --nisserver=server.nis.domain \

     --enablemkhomedir \

     --update

nis.domain ist der Name der NIS-Serverdomäne und server.nis.domain der Hostname des NIS-Servers (bzw. dessen IP-Adresse).

Konfigurieren Sie die NIS-Dienste:

command Kopieren

sudo systemctl start rpcbind ypbind

sudo systemctl enable rpcbind ypbind 

Vergewissern Sie sich, dass die NIS-Konfiguration richtig ist:

command Kopieren

ypwhich

Prüfen Sie, ob die Kontoinformationen über den NIS-Server zur Verfügung stehen:

command Kopieren

getent passwd nisaccount

nisaccount ist das tatsächliche NIS-Konto auf dem NIS-Server. Stellen Sie sicher, dass UID-/GID-Homeverzeichnis und Anmeldeshell richtig konfiguriert sind.

Domänenbeitritt und Erstellen einer Hostschlüsseltabelle mit Samba

SSSD bietet keine Active Directory-Clientfunktionen für den Domänenbeitritt und die Verwaltung der Systemschlüsseltabelle. Es gibt hierfür mehrere Methoden:

  • adcli
  • realmd
  • winbind
  • samba

Die Informationen in diesem Abschnitt basieren auf der Verwendung von Samba. Informationen zu realmd finden Sie in der Dokumentation zu Red Hat oder CentOS. Diese Schritte müssen vor der Konfiguration von SSSD ausgeführt werden.

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

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

Konfigurieren Sie die Maschine für die Authentifizierung mit Samba und Kerberos:

command Kopieren

sudo authconfig \

    --smbsecurity=ads \

    --smbworkgroup=domain \

    --smbrealm=REALM \

    --krb5realm=REALM \

    --krb5kdc=fqdn-of-domain-controller \

    --update

REALM ist der Kerberos-Bereichsname in Großbuchstaben und domain ist der kurze NetBIOS-Name der Active Directory-Domäne.

Wenn DNS-basierte Suchvorgänge nach dem KDC-Server und -Bereichsname erforderlich sind, fügen Sie dem oben aufgeführten Befehl die folgenden beiden Optionen hinzu:

command Kopieren

--enablekrb5kdcdns --enablekrb5realmdns

Öffnen Sie die Datei /etc/samba/smb.conf und fügen Sie im Abschnitt [Global] nach dem vom authconfig-Tool erstellten Abschnitt die folgenden Einträge hinzu.

command Kopieren

kerberos method = secrets and  keytab

Zum Beitritt zur Windows-Domäne muss der Domänencontroller erreichbar sein und Sie müssen ein Active Directory-Benutzerkonto mit Berechtigungen zum Hinzufügen von Computern zu der Domäne haben:

command Kopieren

sudo net ads join REALM -U user

REALM ist der Kerberos-Bereichsname in Großbuchstaben und "user" ist ein Domänenbenutzer mit Berechtigungen zum Hinzufügen von Computern zur Domäne.

Einrichten von SSSD

Die Einrichtung von SSSD umfasst die folgenden Schritte:

  • Installieren des Pakets sssd-ad auf dem Linux-Clientcomputer
  • Ändern der Konfiguration verschiedener Dateien (z. B. sssd.conf)
  • Starten des Diensts sssd

/etc/sssd/sssd.conf

Muster einer sssd.conf-Konfiguration (zusätzliche Optionen können bei Bedarf hinzugefügt werden):

command Kopieren

[sssd]

config_file_version = 2

domains = ad.example.com

services = nss, pam

 

[domain/ad.example.com]

# Uncomment if you need offline logins

# cache_credentials = true

 

id_provider = ad

auth_provider = ad

access_provider = ad

ldap_id_mapping = true

ldap_schema = ad

 

# Should be specified as the lower-case version of the long version of the Active Directory domain.

ad_domain = ad.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

Ersetzen Sie ad.domain.com und server.ad.example.com durch den jeweils gültigen Wert. Weitere Informationen finden Sie unter sssd-ad(5) - Linux man page.

Legen Sie Dateieigentümer und Berechtigungen für sssd.conf fest:

command Kopieren

chown root:root /etc/sssd/sssd.conf

chmod 0600 /etc/sssd/sssd.conf

restorecon /etc/sssd/sssd.conf

Konfigurieren von NSS/PAM

RHEL/CentOS

Aktiveren Sie SSSD mit authconfig und installieren Sie oddjob-mkhomedir, damit die Erstellung des Homeverzeichnisses mit SELinux funktioniert:

command Kopieren

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

sudo systemctl start sssd

sudo systemctl enable sssd

Tipp

Berücksichtigen Sie bei der Konfiguration der Linux VDA-Einstellungen, dass es für SSSD keine besonderen Einstellungen für den Linux VDA-Client gibt. Verwenden Sie als weitere Lösung im Skript ctxsetup.sh den Standardwert.

Überprüfen der Kerberos-Konfiguration

Überprüfen Sie, ob Kerberos zur Verwendung mit dem Linux VDA ordnungsgemäß konfiguriert ist, indem Sie sicherstellen, dass die Systemdatei für die Schlüsseltabelle erstellt wurde und gültige Schlüssel enthält:

command Kopieren

sudo klist -ke

Daraufhin sollte die Liste der Schlüssel angezeigt werden, die für die verschiedenen Kombinationen aus Prinzipalnamen und Verschlüsselungssammlungen verfügbar sind. Führen Sie den Kerberos-Befehl kinit aus, um die Maschine bei dem Domänencontroller mit diesen Schlüsseln zu authentifizieren:

command Kopieren

sudo kinit –k MACHINE\$@REALM

Maschinen- und Bereichsname müssen in Großbuchstaben angegeben werden und das Dollarzeichen ($) muss durch einen umgekehrten Schrägstrich (\) geschützt werden, um die Ersetzung in der Shell zu verhindern. In einigen Umgebungen sind DNS-Domänenname und Kerberos-Bereichsname unterschiedlich. Stellen Sie sicher, dass der Bereichsname verwendet wird. Wenn dieser Befehl erfolgreich ist, wird keine Ausgabe angezeigt.

Stellen Sie mit folgendem Befehl sicher, dass das TGT-Ticket für das Maschinenkonto zwischengespeichert wurde:

command Kopieren

sudo klist -ke

Überprüfen der Benutzerauthentifizierung

Prüfen Sie mit dem Befehl getent, ob das Anmeldeformat unterstützt wird und ob NSS funktioniert:

command Kopieren

sudo getent passwd DOMAIN\\username

Der Parameter DOMAIN muss die kurze Version des Domänennamens enthalten, wenn ein anderes Anmeldeformat von Citrix Receiver erforderlich ist. Überprüfen Sie dies zunächst mit dem Befehl getent.

Unterstützte Anmeldeformate:

  • Down-Level-Anmeldename: DOMÄNE\Benutzername
  • UPN: Benutzername@Domäne.com
  • Format mit NetBIOS-Suffix: Benutzername@DOMÄNE

Um sich zu vergewissern, dass das SSSD-PAM-Modul richtig konfiguriert ist, melden Sie sich lokal mit einem Domänenbenutzerkonto an, mit dem noch nie eine Anmeldung an der Maschine vorgenommen wurde.

command Kopieren

sudo localhost –l DOMAIN\\username

id -u

Stellen Sie sicher, dass eine entsprechende Cachedatei mit Kerberos-Anmeldeinformationen für die mit dem Befehl "id -u" zurückgegebene UID erstellt wurde:

command Kopieren

ls /tmp/krb5cc_{uid}

Stellen Sie sicher, dass die Tickets im Kerberos-Anmeldeinformationscache des Benutzers gültig und nicht abgelaufen sind:

command Kopieren

klist