Nous avons vu Samba pour la partage de fichiers entre Windows et Linux.
Samba peut aussi être configuré comme contrôleur de domaine AD ou comme serveur membre.
Il sera même possible d’utiliser les GPO avec un DC Samba.
Un domaine AD repose sur:
LDAP : pour la gestion de l’annuaire
DNS : pour l’identification des ressources
Kerberos : pour l’authentification
Nous allons voir deux méthodes pour joindre un Linux à un domaine Windows:
Avec Samba seul : permet de partager des fichiers en donnant les droits à des utilisateurs du domaine.
Avec sssd : permet à des utilisateurs du domaine d’ouvrir une session sur le serveur Linux.
Voici les rensignements dont nous aurons besoin :
Nom de domaine | dom.local |
Royaume (Realm) | dom.local |
Nom NetBIOS | DOM |
Nom du serveur | dc01 |
Adresse IP du controleur | a.b.c.d |
Rôle du serveur | DC (Domain Controler) |
Pour ceci vous aurez besoin d’installer les paquets suivants:
$ yum install -y samba samba-winbind samba-winbind-clients
Vous devez ensuite configurer votre serveur pour qu’il ait le bon FQDN:
serveur.dom.local
Puis ajouter un enregistrement le concernant dans le DNS du contrôleur de domaine avec son adresse IP (enregistrements direct et inverse).
Ensuite, assurez-vous que le serveur DNS utilisé sur votre serveur Linux est bien le contrôleur de domaine.
Il faut ensuite configurer le serveur Samba.
Dans le fichier /etc/samba/smb.conf
, dans la section [Global]
:
[global]
workgroup = DOM
security = ADS
netbios name = SERVEUR
realm = dom.local
idmap config * : range = 10000-20000
template homedir = /profils/%U.V6
winbind use default domain = yes
workgroup = DOM
Nom netbios du domaine (en majuscules)
security = ADS
Ici c’est AD qui est utilisé pour l’authentification
netbios name = SERVEUR
Nom netbios du serveur en majuscules
realm = dom.local
Nom DNS du domaine AD
idmap config * : range = 10000-20000
Mappage entre les SID AD et les UID Linux.
template homedir = /profils/%U.V6
Chemin des profils
winbind use default domain = yes
Chemin des profils
Dernière étape, configurer Winbind.
Dans le fichier /etc/nsswitch.conf
, repérez les lignes suivantes et ajoutez winbind à la fin pour que les comptes soient trouvés dans AD s’ils n’existent pas en local:
passwd: files sss winbind
shadow: files sss winbind
group: files sss winbind
Joignez ensuite le serveur Linux au domaine:
$ net ads join dom.local -U Administrateur Enter administrateur's password: Using short domain name -- DOM Joined 'SERVEUR' to dns domain 'dom.local' No DNS domain configured for serveur. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
Saisissez le mot de passe administrateur et assurez-vous qu’il n’y a pas d’erreur.
Redémarrez les services :
$ systemctl restart winbind nmb smb
La commande suivante permet de lister les utilisateurs du domaine (avec -g vous verrez les groupes) :
$ wbinfo -u DOM\administrateur DOM\invité DOM\krbtgt
Pour joindre un serveur Linux à un domaine et permettre aux utilisateurs du domaine de se connecter au serveur Linux, il faudra utiliser une autre méthode de connexion qui implique l’utilitaire realm.
Les étapes à suivre sont:
Découvrir le domaine
Installer les paquets manquants
Joindre le domaine
Valider
Tester la connexion
Pour découvrir le domaine:
$ realm discover dom.local dom.local type: kerberos realm-name: DOM.LOCAL domain-name: dom.local configured: no server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common-tools
Notez que certains paquets sont nécessaires, assurez-vous qu’ils sont installés.
Notez que le domaine apparaît comme non configuré.
Pour joindre le domaine:
$ realm join --user=administrateur dom.local
Cette commande peut prendre quelque temps à s’exécuter.
Pour valider que vous avez joint le domaine:
$ realm discover dom.locali dom.local type: kerberos realm-name: DOM.LOCAL domain-name: dom.local configured: kerberos-member server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common-tools login-formats: %U@dom.local login-policy: allow-realm-logins
Notez que le domaine est maintenant configuré.
$ getent passwd <user>@dom.local
Doit vous renvoyer une ligne ressemblant au contenu de /etc/passwd
Pour se connecter, utilisez
Il est aussi possible d’ajouter l’administrateur au fichier de configuration de sudo pour qu’il devienne aussi administrateur local.
Pour ceci, créer un fichier /etc/sudoers.d/admins_domaine dans lequel on placera:
%DOM\Admins\ du\ domaine ALL=(ALL) ALL
Ceci donne les droits de faire sudo à tous les utilisateurs membres du groupe “Admins du domaine”.
Pour réaliser ce formatif, pensez aux points suivants:
Le répertoire dans lequel sera stocké les profils distants des utilisateurs doit être disponible sur le serveur Samba avec la propriété suivante: nt acl support = yes
Vous devez disposez d’une machine client Windows 10 qui appartient au domaine.
L’utilisateur Camilo doit être capable de se connecter à la machine Windows 10.
Assurez-vous que lorsqu’il se connecte pour la première fois, son profil est créé sur le serveur Samba.
Pour que cela fonctionne, dans AD, vous devez spécifier le chemin du profil pour Camilo.
Ajoutez un deuxième serveur Linux.
Joignez le au domaine en utilisant sssd et configurez les administrateurs du domaine pour qu’ils puissent utiliser sudo.
Testez que Camilo et l’administrateur peuvent se connecter au serveur Linux avec une session graphique.
Sur votre serveur membre, testez la commande smbtree. Que fait-elle? Quel paramètres pouvez-vous utiliser?