Product Documentation

Einrichten von SSSD

Nov 01, 2016

Dieser Abschnitt enthält Informationen zum Einrichten von SSSD unter Red Hat und CentOS. Dazu gehören der Beitritt einer Linux VDA-Maschine zu einer Windows-Domäne und das Konfigurieren der Kerberos-Authentifizierung. 

Hinweis

Wenn Sie SSSD verwenden, folgen Sie den Anweisungen in diesem Abschnitt anstelle denen unter Hinzufügen einer Linux-Maschine zu einer Windows-Domäne.

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 Benutzer und erweiterte Benutzerdaten.

Das Einrichten von SSSD unter RHEL und CentOS umfasst die folgenden Schritte:

  1. Domänenbeitritt und Erstellen einer Hostschlüsseltabelle mit Samba
  2. Einrichten von SSSD
  3. Konfigurieren von NSS/PAM
  4. Überprüfen der Kerberos-Konfiguration
  5. Überprüfen der Benutzerauthentifizierung

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, 1.4

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 von dem Tool authconfig erstellten Abschnitt die folgenden Einträge hinzu.

command Kopieren

kerberos method = secrets and  keytab

Der Domänenbeitritt erfordert, dass der Domänencontroller erreichbar ist und dass Sie über ein Active Directory-Benutzerkonto mit Berechtigungen zum Hinzufügen von Computern zur Domäne verfügen:

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 service sssd start

sudo chkconfig sssd on

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

Ü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 ssh 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