Joindre un serveur Debian à un domaine Windows en utilisant winbind
- Mise à jour le 18 avril 2024
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.
- Les principaux avantages de Winbind sont :
- Il permet aux systèmes GNU/Linux de s'authentifier et d'accéder aux ressources partagées sur des serveurs Windows
- Il peut mapper les utilisateurs et les groupes Windows afin de définir des acls sur un partage samba
- Centralise les informations d'authentification et de compte des utilisateurs sur un serveur Active Directory
Pour cela, j'ai utilisé la version Debian 12.
Architecture Réseau

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 :
