rss logo

Joindre un serveur Debian à un domaine Windows en utilisant winbind

logo samba

Nous allons voir ici comment configurer un serveur de partage de fichiers Samba avec Winbind sous GNU/Linux afin de l'intégrer à un Active Directory. L'objectif est de permettre à des postes clients de s'authentifier sur le partage avec leur compte d'utilisateur de domaine.

Pour cela, j'ai utilisé la version Debian 12.

Architecture Réseau

Diagramme de réseau montrant un serveur Active Directory, un serveur Samba avec Debian et un PC client Windows connecté par un commutateur, illustrant l'intégration de Winbind.
Architecture Winbind.

Installer et Configurer

⚠️Prérequis : Assurez-vous que l'horloge des serveurs Windows et Debian soient synchronisées.⚠️

  • Paramétrer le nom de la machine :
root@SAMBA:~# echo "SAMBA" > /etc/hostname
root@SAMBA:~# hostname SAMBA
  • Éditer et paramétrer le fichier /etc/hosts :
127.0.0.1       localhost
127.0.1.1       samba.std.local  samba
  • Éditer et paramétrer le fichier /etc/resolv.conf :
domain std.local
search std.local
nameserver 192.168.1.200
  • Installer les paquets nécessaires :
root@SAMBA:~# apt update && apt install samba winbind libnss-winbind libpam-winbind krb5-user
  • Éditer et paramétrer le fichier /etc/krb5.conf :
[libdefaults]
    default_realm = STD.LOCAL
    ticket_lifetime = 1d
    renew_lifetime = 7d
    dns_lookup_realm = false
    dns_lookup_kdc = true

[realms]
     STD.LOCAL = {
        kdc = 192.168.1.200
        admin_server = 192.168.1.200
     }
  • Créer le dossier de partage :
root@SAMBA:~# mkdir /data
  • Éditer et paramétrer le fichier /etc/samba/smb.conf :
[global]
 workgroup = std
 security = ads
 realm = std.local
 idmap config *:backend = tdb
 idmap config *:range = 700001-800000
 idmap config STD:backend = rid
 idmap config STD:range = 10000-700000
 winbind use default domain = yes
 template homedir = /home/%U
 map acl inherit = yes
 template shell = /bin/bash
 winbind enum users = yes
 winbind enum groups = yes
 vfs objects = acl_xattr
 ; improve security :
 ntlm auth = no
 ; improve security, Windows > 8 only :
 server min protocol = SMB3_00
 
[share]
 path = /data
 writable = yes
 guest ok = no
 create mask = 660
 directory mask = 770
  • Vérifier le fichier de configuration /etc/samba/smb.conf :
root@SAMBA:~# testparm
  • Éditer et paramétrer le fichier /etc/nsswitch.conf :
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd winbind
group:          files systemd winbind
shadow:         files systemd
gshadow:        files systemd

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
  • Ajouter le serveur à l'Active Directory :
root@SAMBA:~# net ads join -U administrateur@std.local
  • Redémarrer les services :
root@SAMBA:~# systemctl restart smbd.service nmbd.service winbind.service
  • Vérifier la connexion au domaine :
root@SAMBA:~# wbinfo --ping-dc
checking the NETLOGON for domain[STD] dc connection to "ad.std.local" succeeded
  • Vérifier que l'on peut lister les utilisateurs et les groupes avec l'outil wbinfo :
root@SAMBA:~# wbinfo -u
administrateur
invité
krbtgt
e.cartman
s.marsh
[…]
root@SAMBA:~# wbinfo -g
ordinateurs du domaine
contrôleurs de domaine
administrateurs du schéma
admins du domaine
enterprise admins
utilisateurs du domaine
invités du domaine
[…]
  • Vérifier que l'on peut lister les utilisateurs et les groupes avec l'outil getent :
root@SAMBA:~# getent passwd
[…]
administrator:*:10500:10513::/home/administrator:/bin/bash
s.marsh:*:11115:10513::/home/s.marsh:/bin/bash
k.brofloski:*:11116:10513::/home/k.brofloski:/bin/bash
b.stotch:*:11117:10513::/home/b.stotch:/bin/bash
[…]
root@SAMBA:~# getent group
[…]
domain admins:x:10512:
domain users:x:10513:
[…]
  • Paramétrer les droits :
root@SAMBA:~# chown -R "administrateur:utilisateurs du domaine" /data/
  • On peut aussi paramétrer les droits avec les uid et les gid :
root@SAMBA:~# chown -R "10500:10513" /data/
  • Depuis le serveur Active Directory, définir les permissions :
Capture d'écran montrant les propriétés et les autorisations d'un partage Samba sous Windows, mettant en évidence les paramètres de sécurité pour les groupes d'utilisateurs et les administrateurs.