Um True SSO auf Ubuntu-/Debian-Desktops zu unterstützen, können Sie die virtuelle Basismaschine (VM) mithilfe der Lösungen Samba und Winbind in eine Active Directory (AD)-Domäne integrieren.
Gehen Sie wie folgt vor, um eine Ubuntu-/Debian-VM mithilfe von Samba und Winbind in eine AD-Domäne zu integrieren.
In einigen der Beispiele im Verfahren werden Platzhalterwerte verwendet, um Entitäten in Ihrer Netzwerkkonfiguration darzustellen, wie z. B. den Hostnamen Ihrer VM. Ersetzen Sie die Platzhalterwerte durch spezifische Informationen für Ihre Konfiguration, wie in der folgenden Tabelle gezeigt.
Platzhalterwert |
Beschreibung |
dns_IP_ADDRESS |
IP-Adresse Ihres DNS-Namenservers |
mydomain.com |
DNS-Name Ihrer Active Directory-Domäne |
MYDOMAIN.COM |
DNS-Name Ihrer Active Directory-Domäne in Großbuchstaben |
myhost |
Hostname Ihrer Ubuntu-/Debian-VM |
MYDOMAIN |
DNS-Name der Arbeitsgruppe oder NT-Domäne, in der sich Ihr Samba-Server befindet, in Großbuchstaben |
ads-hostname |
Hostname Ihres AD-Servers |
admin-user |
Benutzername des Administrators der AD-Domäne |
Voraussetzungen
Stellen Sie sicher, dass:
- Der AD-Server kann durch DNS auf der VM aufgelöst werden.
- Das Network Time Protocol (NTP) ist auf der VM konfiguriert.
Prozedur
- Installieren Sie die Pakete samba und winbind auf der Ubuntu-/Debian-VM.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- Konfigurieren Sie die Kerberos-Authentifizierungseinstellungen.
- Wenn das Fenster für die Kerberos-Authentifizierungseinstellungen nicht auf Ihrem System angezeigt wird, führen Sie den folgenden Befehl aus, um es anzuzeigen.
sudo dpkg-reconfigure krb5-config
- Geben Sie für einen standardmäßigen Kerberos Version 5-Bereich den DNS-Namen Ihrer Active Directory-Domäne in Großbuchstaben an.
Wenn Ihr Active Directory-Domänenname z. B.
mydomain.com lautet, geben Sie
MYDOMAIN.COM ein.
- Geben Sie für Kerberos-Server für Ihren Bereich den Hostnamen Ihres AD-Servers ein (in den Beispielen für dieses Verfahren als ads_hostname angegeben).
- Geben Sie für Verwaltungsserver für Ihren Kerberos-Bereich erneut den Hostnamen Ihres AD-Servers ein.
- Aktualisieren Sie die PAM-Konfiguration.
- Öffnen Sie die Seite der PAM-Konfiguration.
- Aktivieren Sie die Option Home-Verzeichnis bei Anmeldung erstellen und klicken Sie auf OK.
- Bearbeiten Sie die Konfigurationsdatei /etc/nsswitch.conf, wie im folgenden Beispiel gezeigt.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- (Optional) Wenn das System den richtigen DNS-Server automatisch erkennt, überspringen Sie diesen Schritt und fahren Sie mit dem nächsten Schritt fort. Wenn das System den richtigen DNS-Server nicht erkennt, führen Sie diesen Schritt aus, um den DNS-Server manuell festzulegen.
Um sicherzustellen, dass die automatisch erstellte Datei
resolv.conf auf Ihre AD-Domäne als Suchdomäne verweist, bearbeiten Sie die NetworkManager-Einstellungen für Ihre Systemverbindung. Die folgenden Teilschritte enthalten die Beispielanweisungen für ein Ubuntu 20.04-System.
- Öffnen Sie die Einstellungen von NetworkManager und navigieren Sie zu den IPv4-Einstellungen für Ihre Systemverbindung. Wählen Sie als Methode Nur automatische (DHCP) Adressen aus. Geben Sie im Textfeld DNS-Server die IP-Adresse Ihres DNS-Namenservers ein (in den Beispielen für dieses Verfahren als dns_IP_ADDRESS angegeben). Klicken Sie danach auf Speichern.
- Bearbeiten Sie die Datei /etc/dhcp/dhclient.conf, wie im folgenden Beispiel gezeigt.
supersede domain-name "mydomain.com";
prepend domain-name-servers dns_IP_ADDRESS;
- Bearbeiten Sie die Datei /etc/systemd/resolved.conf, wie im folgenden Beispiel gezeigt.
DNS=dns_IP_ADDRESS
Domains="mydomain.com"
Hinweis: Beim Erstellen eines neuen virtuellen Instant-Clone-Desktops wird ein neuer virtueller Netzwerkadapter hinzugefügt. Wenn Sie den Netzwerkadapter zu einem geklonten virtuellen Desktop hinzufügen, löscht die Vorlage des virtuellen Desktops die Einstellungen für den Netzwerkadapter, z. B. den DNS-Server. Um die DNS-Servereinstellung beim Hinzufügen eines neuen Netzwerkadapters beizubehalten, müssen Sie einen DNS-Server für Ihre VM angeben.
- Geben Sie den DNS-Server an, indem Sie die Konfigurationsdatei /etc/resolv.conf wie im folgenden Beispiel bearbeiten. Wenn eine Warnung angezeigt wird, können Sie die Änderungen ignorieren und mit ihnen fortfahren.
nameserver dns_IP_ADDRESS
search mydomain.com
- Starten Sie die VM neu und melden Sie sich erneut an.
- Bearbeiten Sie die Konfigurationsdatei /etc/hosts, wie im folgenden Beispiel.
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- Bearbeiten Sie die Konfigurationsdatei /etc/samba/smb.conf, wie im folgenden Beispiel.
[global]
security = ads
realm = MYDOMAIN.COM
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
- Starten Sie den Dienst smbd neu.
sudo systemctl restart smbd.service
- Bearbeiten Sie die Konfigurationsdatei /etc/krb5.conf, sodass sie über Inhalte ähnlich dem folgenden Beispiel verfügt.
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- Fügen Sie die Ubuntu-/Debian-VM zur AD-Domäne hinzu.
- Initiieren Sie ein Kerberos-Ticket.
sudo kinit admin-user
Geben Sie bei Aufforderung Ihr Administratorkennwort ein.
- Stellen Sie sicher, dass das Ticket erfolgreich erstellt wurde.
sudo klist
Dieser Befehl liefert Informationen über das Ticket, einschließlich der gültigen Start- und Ablaufzeit.
- Erstellen Sie eine Kerberos-Keytab-Datei.
sudo net ads keytab create -U admin-user
- Treten Sie der AD-Domäne bei.
sudo net ads join -U admin-user
- Führen Sie einen Neustart durch und überprüfen Sie den Winbind-Dienst.
- Starten Sie den Winbind-Dienst neu.
sudo systemctl restart winbind.service
- Führen Sie zum Prüfen des Winbind-Dienstes die folgenden Befehle aus und prüfen Sie, ob die Ausgabe stimmt.
- sudo wbinfo -u
- sudo wbinfo -g
- sudo getent passwd
- sudo getent group
- Starten Sie die VM neu und melden Sie sich erneut an.