Linux-Computer in einer Windows AD-Domäne mit sssd und krb5

Es war erforderlich, einen Ubuntu-Computer in eine Windows-Domäne einzugeben. Für diese Zwecke werden normalerweise Samba und Winbind verwendet. Eine Alternative ist jedoch mit sssd möglich, eine kurze Anleitung dazu weiter unten.

Zum Beispiel werden wir verwenden:

Domain = contoso.com
Domänencontroller = dc.contoso.com

Starten Sie das Ubuntu-Terminal:

1. Wechseln Sie zu root

sudo -i 

2. Installieren Sie die erforderlichen Pakete

 apt install sssd heimdal-clients msktutil 

3. Wir bearbeiten /etc/krb5.conf, Tabulatoren werden als Einzüge verwendet

 [libdefaults] default_realm = CONTOSO.COM [realms] CONTOSO.COM = { kdc = DC admin_server = dc.contoso.com default_domain = contoso.com } [login] krb4_convert = true krb4_get_tickets = false [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM 

4. Bearbeiten Sie die Datei / etc / hosts und geben Sie den vollqualifizierten Domänennamen für diesen Host an:

 127.0.0.1 localhost 127.0.1.1 <hostname>.contoso.com <hostname> 

5. Wir versuchen, im Auftrag des Domänenadministrators ein Kerberos-Ticket zu erhalten:

 root@ubuntu:~# kinit YourDomainAdmin YourDomainAdmin@CONTOSO.COM's Password: 

Wir prüfen:

 root@ubuntu:~# klist Credentials cache: FILE:/tmp/krb5cc_0 Principal: YourDomainAdmin@CONTOSO.COM Issued Expires Principal Dec 1 15:08:27 2018 Dec 2 01:08:22 2018 krbtgt/CONTOSO.COM@CONTOSO.COM 

Wenn das Ticket erfolgreich empfangen wurde, können jetzt Kerberos-Principals für diesen Host generiert werden. Das Register ist wichtig:

 msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME.contoso.com -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com —user-creds-only msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com --user-creds-only 

Jetzt sollte unser Host in der Liste der Computer im Verzeichnis erscheinen. Wenn ja, löschen Sie das empfangene Kerberos-Ticket:

 kdestroy 

6. Erstellen Sie die Datei /etc/sssd/sssd.conf mit folgendem Inhalt:

 [sssd] services = nss, pam config_file_version = 2 domains = contoso.com [nss] entry_negative_timeout = 0 debug_level = 3 [pam] debug_level = 3 [domain/contoso.com] debug_level = 3 ad_domain = contoso.com ad_server = dc.contoso.com enumerate = false id_provider = ad auth_provider = ad chpass_provider = ad access_provider = simple simple_allow_groups = users #   ,  .   —       . ldap_schema = ad ldap_id_mapping = true fallback_homedir = /home/%u default_shell = /bin/bash ldap_sasl_mech = gssapi ldap_sasl_authid = <HOSTNAME>$ ldap_krb5_init_creds = true krb5_keytab = /etc/sssd/<HOSTNAME>.keytab 

Eine Beschreibung der Parameter der sssd-Konfigurationsdatei finden Sie hier

Festlegen von Berechtigungen für die Datei sssd.conf:

 chmod 600 /etc/sssd/sssd.conf 

Starten Sie den SSSD-Dienst neu

 service sssd restart 

7. PAM-Einstellungen bearbeiten

Schlechte Lösung:

Bearbeiten Sie die Datei /etc/pam.d/common-session nach der Zeile

 session required pam_unix.so 

Zeile hinzufügen

 session required pam_mkhomedir.so skel=/etc/skel umask=0022 

Gute Lösung:

Überschreiben Sie die Parameter über die PAM-Systemeinstellungen

 pam-auth-update 

und überprüfen Sie die Elemente sss auth und makehomdir . Dies wird automatisch hinzugefügt
Die obige Zeile in der allgemeinen Sitzung wird beim Aktualisieren des Systems nicht überschrieben.

Jetzt können wir uns auf dem Computer bei Domänenbenutzern anmelden, die sich anmelden dürfen.

PS: Sie können das Recht einräumen, Sudo-Domain-Gruppen zu verwenden. Bearbeiten Sie mit visudo die Datei / etc / sudoers oder erstellen Sie, wie von maxzhurkin und iluvar empfohlen , eine neue Datei in /etc/sudoers.d/ und bearbeiten Sie sie

 visudo -f /etc/sudoers.d/_ 

Fügen Sie die erforderliche Gruppe hinzu, z. B. Domänenadministratoren (wenn der Gruppenname Leerzeichen enthält, müssen diese maskiert werden):

 %Domain\ Admins ALL=(ALL) ALL 


PSS: Danke Gotch für die Infos zu Realmd. Dies ist sehr praktisch. Wenn bestimmte Einstellungen nicht erforderlich sind, sind für die Eingabe eines Computers in eine Domäne drei Befehle erforderlich:
1. Installieren Sie die erforderlichen Pakete:
 sudo apt install realmd samba-common-bin samba-libs sssd-tools krb5-user adcli 

2. Überprüfen Sie, ob unsere Domain im Netzwerk sichtbar ist:
 realm discover contoso.com 

3. Geben Sie den Computer in die Domäne ein:
 sudo realm --verbose join contoso.com -U YourDomainAdmin --install=/ 

4. Bearbeiten der PAM-Einstellungen
 sudo pam-auth-update 

Ein zusätzliches Plus dieser Option ist die End-to-End-Autorisierung für die Dateiressourcen der Domäne.

Um zusätzlich zum Login keine Domain anzugeben, können Sie ein Standardsuffix hinzufügen. Fügen Sie in der Datei /etc/sssd/sssd.conf im Block [sssd] die folgende Zeile hinzu:
 default_domain_suffix = contoso.com 

Source: https://habr.com/ru/post/de437546/


All Articles