Machine Linux dans un domaine Windows AD utilisant sssd et krb5

Il fallait entrer une machine Ubuntu dans un domaine Windows. À ces fins, Samba et Winbind sont généralement utilisés. Mais une alternative est possible avec sssd, un bref guide ci-dessous.

Par exemple, nous utiliserons:

Domaine = contoso.com
Contrôleur de domaine = dc.contoso.com

Lancez le terminal Ubuntu:

1. Passez à root

sudo -i 

2. Installez les packages nécessaires

 apt install sssd heimdal-clients msktutil 

3. Nous éditons /etc/krb5.conf, les tabulations sont utilisées comme des retraits

 [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. Modifiez le fichier / etc / hosts, spécifiez le FQDN pour cet hôte:

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

5. Nous essayons d'obtenir un ticket Kerberos au nom de l'administrateur de domaine:

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

Nous vérifions:

 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 

Si le ticket est reçu avec succès, maintenant les principaux Kerberos peuvent être générés pour cet hôte, le registre est important:

 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 

Maintenant, notre hôte devrait apparaître dans la liste des ordinateurs du répertoire. Si oui, supprimez le ticket Kerberos reçu:

 kdestroy 

6. Créez le fichier /etc/sssd/sssd.conf avec le contenu suivant:

 [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 

La description des paramètres du fichier de configuration sssd peut être trouvée ici

Définissez les autorisations pour le fichier sssd.conf:

 chmod 600 /etc/sssd/sssd.conf 

Redémarrez le service SSSD

 service sssd restart 

7. Modification des paramètres PAM

Mauvaise solution:

éditez le fichier /etc/pam.d/common-session, après la ligne

 session required pam_unix.so 

ajouter une ligne

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

Bonne solution:

remplacer les paramètres via les paramètres du système PAM, appeler

 pam-auth-update 

et vérifiez les éléments sss auth et makehomdir . Cela ajoutera automatiquement
la ligne ci-dessus en session commune et elle ne sera pas écrasée lors de la mise à jour du système.

Nous pouvons maintenant nous connecter sur la machine aux utilisateurs de domaine autorisés à se connecter.

PS: Vous pouvez donner le droit d'utiliser des groupes de domaines sudo. À l'aide de visudo, modifiez le fichier / etc / sudoers, ou mieux, comme le recommandent maxzhurkin et iluvar , créez un nouveau fichier dans /etc/sudoers.d/ et modifiez-le

 visudo -f /etc/sudoers.d/_ 

ajoutez le groupe requis - par exemple, les administrateurs de domaine (s'il y a des espaces dans le nom du groupe - ils doivent être échappés):

 %Domain\ Admins ALL=(ALL) ALL 


PSS: Merci gotch pour l'info sur realmd. C'est très pratique - si des paramètres spécifiques ne sont pas nécessaires, alors entrer une machine dans un domaine prend en fait trois commandes:
1. Installez les packages nécessaires:
 sudo apt install realmd samba-common-bin samba-libs sssd-tools krb5-user adcli 

2. Vérifiez que notre domaine est visible sur le réseau:
 realm discover contoso.com 

3. Entrez la machine dans le domaine:
 sudo realm --verbose join contoso.com -U YourDomainAdmin --install=/ 

4. Modification des paramètres PAM
 sudo pam-auth-update 

Un avantage supplémentaire de cette option est l'autorisation de bout en bout sur les ressources de fichiers du domaine.

Afin de ne pas spécifier de domaine en plus de la connexion, vous pouvez ajouter un suffixe par défaut. Dans le fichier /etc/sssd/sssd.conf, dans le bloc [sssd], ajoutez la ligne:
 default_domain_suffix = contoso.com 

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


All Articles