12 - Linux serveur membre

Introduction

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.

Le controleur de domaine

Voici les rensignements dont nous aurons besoin :

Nom de domainedom.local
Royaume (Realm)dom.local
Nom NetBIOSDOM
Nom du serveurdc01
Adresse IP du controleura.b.c.d
Rôle du serveurDC (Domain Controler)

Joindre Linux au domaine avec Samba

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

Joindre Linux au domaine avec SSSD

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:

  1. Découvrir le domaine

  2. Installer les paquets manquants

  3. Joindre le domaine

  4. Valider

  5. 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 @dom.local.

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”.

Formatif 1

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.

Formatif 2

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?