Integration von NIS in Active Directory
In diesem Artikel wird beschrieben, wie NIS in Windows Active Directory (AD) auf dem Linux VDA über SSSD integriert wird. Der Linux VDA ist eine Komponente von Citrix Virtual Apps and Desktops. Daher passt er eng in die Windows AD-Umgebung.
Zur Verwendung von NIS statt AD als UID- und GID-Anbieter müssen die Kontoinformationen (Benutzername-/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.
Tipp:
Diese Methode ist eine veraltete Methode zum Bereitstellen des Linux VDA und wird nur in besonderen Fällen verwendet Für eine RHEL/CentOS-Distribution folgen Sie den Anweisungen unter Install Linux Virtual Delivery Agent for RHEL/CentOS. Für eine Ubuntu-Distribution folgen Sie den Anweisungen unter Install Linux Virtual Delivery Agent for Ubuntu.
Was ist 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.
Integrieren von NIS in Active Directory
Führen Sie die folgenden Schritte aus, um NIS in AD zu integrieren:
Schritt 1: Hinzufügen von Linux VDA als NIS-Client
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 des NIS-Servers/-Clients zu /etc/hosts hinzu:
{NIS server IP address} server.nis.domain nis.domain
Konfigurieren Sie NIS über authconfig
:
sudo authconfig --enablenis --nisdomain=nis.domain --nisserver=server.nis.domain --enablemkhomedir --update
<!--NeedCopy-->
nis.domain ist der Name der NIS-Serverdomäne. server.nis.domain ist der Hostname des NIS-Servers (bzw. dessen IP-Adresse).
Konfigurieren Sie die NIS-Dienste:
sudo systemctl start rpcbind ypbind
sudo systemctl enable rpcbind ypbind
<!--NeedCopy-->
Vergewissern Sie sich, dass die NIS-Konfiguration richtig ist:
ypwhich
<!--NeedCopy-->
Prüfen Sie, ob die Kontoinformationen über den NIS-Server zur Verfügung stehen:
getent passwd nisaccount
<!--NeedCopy-->
Hinweis:
nisaccountist das tatsächliche NIS-Konto auf dem NIS-Server. Stellen Sie sicher, dass die UID, GID, das Homeverzeichnis und die Login-Shell ordnungsgemäß konfiguriert sind.
Schritt 2: Beitritt zur Domäne und Erstellen einer Hostschlüsseltabelle mit Samba
SSSD bietet keine AD-Clientfunktionen für den Domänenbeitritt und die Verwaltung der Systemschlüsseltabelle. Zum Ausführen dieser Funktionen gibt es mehrere Methoden:
adcli
realmd
Winbind
Samba
Die Informationen in diesem Abschnitt basieren auf der Verwendung von Samba. Informationen über realmd
finden Sie in der Anbieterdokumentation zu RHEL oder CentOS. Diese Schritte müssen vor der Konfiguration von SSSD ausgeführt werden.
Treten Sie der Domäne bei und erstellen Sie eine Hostschlüsseltabelle mit Samba:
Auf dem Linux-Client mit ordnungsgemäß konfigurierten Dateien:
- /etc/krb5.conf
- /etc/samba/smb.conf:
Konfigurieren Sie die Maschine für die Samba- und Kerberos-Authentifizierung:
sudo authconfig --smbsecurity=ads --smbworkgroup=domain --smbrealm=REALM --krb5realm=REALM --krb5kdc=fqdn-of-domain-controller --update
<!--NeedCopy-->
REALM ist der Kerberos-Bereichsname in Großbuchstaben und domain ist der NetBIOS-Name der Domäne.
Wenn eine DNS-basierte Suche nach dem KDC-Server und -Bereichsnamen erforderlich ist, fügen Sie dem vorherigen Befehl die folgenden beiden Optionen hinzu:
--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:
kerberos method = secrets and keytab
winbind offline logon = no
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:
sudo net ads join REALM -U user
<!--NeedCopy-->
REALM ist der Kerberos-Bereichsname in Großbuchstaben und user ist ein Domänenbenutzer mit Berechtigungen zum Hinzufügen von Computern zur Domäne.
Schritt 3: Einrichten von SSSD
Die Einrichtung von SSSD umfasst die folgenden Schritte:
- Pakete sssd-ad und sssd-proxy auf der Linux-Clientmaschine installieren.
- Ändern Sie die Konfiguration verschiedener Dateien (Beispiel: sssd.conf).
- Starten Sie den Dienst sssd.
/etc/sssd/sssd.conf
Muster einer sssd.conf-Konfiguration (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 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:
chown root:root /etc/sssd/sssd.conf
chmod 0600 /etc/sssd/sssd.conf
restorecon /etc/sssd/sssd.conf
Schritt 4: Konfigurieren von NSS/PAM
RHEL/CentOS:
Aktivieren Sie SSSD mit authconfig. Installieren Sie oddjob-mkhomedir, damit die Erstellung des Homeverzeichnisses 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 besonderen Einstellungen für den Linux VDA-Client gibt. Verwenden Sie als weitere Lösung im Skript ctxsetup.sh den Standardwert.
Schritt 5: Überprüfen der Kerberos-Konfiguration
Um sicherzustellen, dass Kerberos zur Verwendung mit dem Linux VDA ordnungsgemäß konfiguriert ist, überprüfen Sie, ob die Systemdatei für die Schlüsseltabelle erstellt wurde und gültige Schlüssel enthält:
sudo klist -ke
<!--NeedCopy-->
Mit diesem Befehl wird die Liste der Schlüssel angezeigt, 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 mit dem Domänencontroller zu authentifizieren, die diese Schlüssel verwendet:
sudo kinit –k MACHINE$@REALM
<!--NeedCopy-->
Maschinen- und Bereichsname müssen in Großbuchstaben angegeben werden. Das Dollarzeichen ($) muss durch einen umgekehrten Schrägstrich (\) geschützt werden, um das Ersetzen 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:
sudo klist -ke
<!--NeedCopy-->
Schritt 6: Überprüfen der Benutzerauthentifizierung
Prüfen Sie mit dem Befehl getent, ob das Anmeldeformat unterstützt wird und ob NSS funktioniert:
sudo getent passwd DOMAIN\username
<!--NeedCopy-->
Der Parameter DOMAIN ist die kurze Version des Domänennamens. Wenn ein anderes Anmeldeformat von erforderlich ist, überprüfen Sie dies zunächst mit dem Befehl getent.
Unterstützte Anmeldeformate:
- Down-Level-Anmeldename:
DOMAIN\username
- UPN:
username@domain.com
- NetBIOS-Suffix-Format:
username@DOMAIN
Um sich zu vergewissern, dass das SSSD-PAM-Modul fehlerfrei konfiguriert wurde, 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-->
Stellen Sie sicher, dass eine entsprechende Cachedatei mit Kerberos-Anmeldeinformationen für die mit dem Befehl uid zurückgegebene UID erstellt wurde:
ls /tmp/krb5cc_{uid}
<!--NeedCopy-->
Stellen Sie sicher, dass die Tickets im Kerberos-Anmeldeinformationscache des Benutzers gültig und nicht abgelaufen sind:
klist
<!--NeedCopy-->
In diesem Artikel
-
Integrieren von NIS in Active Directory
- Schritt 1: Hinzufügen von Linux VDA als NIS-Client
- Schritt 2: Beitritt zur Domäne und Erstellen einer Hostschlüsseltabelle mit Samba
- Schritt 3: Einrichten von SSSD
- Schritt 4: Konfigurieren von NSS/PAM
- Schritt 5: Überprüfen der Kerberos-Konfiguration
- Schritt 6: Überprüfen der Benutzerauthentifizierung