Cette procédure décrit l'installation et la configuration complète d'un serveur de fichiers Linux avec intégration Active Directory. Le serveur permettra le partage de fichiers avec authentification centralisée et gestion des droits via l'AD.
| Paramètre | Valeur |
|---|---|
| Environnement | CBAUDIMENT |
| Domaine AD | cbaudiment.fr |
| Serveur AD | 10-ServAD-DNS (172.30.10.11) |
| Serveur Fichiers | 10-ServFich |
| OS | Debian 13 (Trixie) |
| Partage | /Fichiers (100 Go) |
Installation de tous les composants nécessaires pour l'intégration AD et le partage de fichiers.
apt update
apt upgrade -y
apt install -y samba winbind krb5-user libpam-winbind libnss-winbind smbclient acl
Configuration Kerberos pendant l'installation :
Éditer le fichier /etc/resolv.conf :
nameserver 172.30.10.11
search cbaudiment.fr
Ajouter l'entrée du contrôleur de domaine dans /etc/hosts :
172.30.10.11 10-ServAD-DNS.cbaudiment.fr 10-ServAD-DNS
Éditer le fichier /etc/krb5.conf avec la configuration suivante :
[libdefaults]
default_realm = CBAUDIMENT.FR
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
CBAUDIMENT.FR = {
kdc = 172.30.10.11
admin_server = 172.30.10.11
default_domain = cbaudiment.fr
}
[domain_realm]
.cbaudiment.fr = CBAUDIMENT.FR
cbaudiment.fr = CBAUDIMENT.FR
Kerberos nécessite une synchronisation horaire précise (maximum 5 minutes de décalage) :
apt install ntpdate -y
ntpdate -u 172.30.10.11
Vérifier que l'authentification Kerberos fonctionne :
kinit admin.cbaudiment@CBAUDIMENT.FR
klist
Résultat attendu : le résultat doit afficher un ticket Kerberos valide.
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Remplacer le contenu du fichier /etc/samba/smb.conf par la configuration suivante :
[global]
workgroup = CBAUDIMENT
realm = CBAUDIMENT.FR
security = ADS
server role = member server
# Winbind
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes
# Templates
template shell = /bin/bash
template homedir = /home/%U
# Mappage ID
idmap config * : backend = tdb
idmap config * : range = 3000-7999
idmap config CBAUDIMENT : backend = rid
idmap config CBAUDIMENT : range = 10000-999999
# Logs
log file = /var/log/samba/log.%m
log level = 1
[Fichiers]
comment = Serveur de fichiers de l'entreprise
path = /Fichiers
browseable = yes
read only = no
# Gestion des ACLs Windows
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
create mask = 0770
directory mask = 0770
Éditer /etc/nsswitch.conf pour permettre la résolution des utilisateurs et groupes AD :
passwd: files systemd winbind
group: files systemd winbind
shadow: files winbind
testparm
Résultat attendu : Loaded services file OK
systemctl stop smbd nmbd winbind
net ads join -U admin.cbaudiment
Résultat attendu : Joined '10-SERVFICH' to dns domain 'cbaudiment.fr'
systemctl start smbd nmbd winbind
systemctl enable smbd nmbd winbind
# Vérifier la jonction
net ads testjoin
# Lister les utilisateurs AD
wbinfo -u
# Lister les groupes AD
wbinfo -g
# Tester la résolution d'un utilisateur
getent passwd admin.cbaudiment
Éditer /etc/fstab et ajouter l'option acl pour le disque contenant /Fichiers :
/dev/sdb1 /Fichiers ext4 defaults,acl 0 2
Remonter le système de fichiers pour appliquer les changements :
mount -o remount,acl /Fichiers
chown root:root /Fichiers
chmod 770 /Fichiers
# Donner accès au groupe 'utilisateurs du domaine'
setfacl -m "g:utilisateurs du domaine:rwx" /Fichiers
setfacl -m "d:g:utilisateurs du domaine:rwx" /Fichiers
systemctl restart smbd nmbd
Depuis un PC Windows joint au domaine, ouvrir l'Explorateur et taper dans la barre d'adresse :
\\10-ServFich\Fichiers
L'accès doit se faire automatiquement avec les credentials de l'utilisateur connecté (SSO).
smbclient //localhost/Fichiers -U admin.cbaudiment
Grâce à la configuration vfs objects = acl_xattr, vous pouvez gérer les permissions directement depuis Windows comme sur un serveur de fichiers Windows classique.
Pour mapper automatiquement le lecteur réseau sur tous les postes du domaine :
| Paramètre | Valeur |
|---|---|
| Action | Create (ou Replace) |
| Location | \\10-ServFich\Fichiers |
| Reconnect | Coché |
| Label as | Serveur Fichiers |
| Drive Letter | F: (ou selon choix) |
Lier la GPO au domaine ou à l'OU concernée.
Cette GPO redirige le dossier Documents de l'utilisateur vers son dossier personnel sur le serveur.
Configuration utilisateur
└── Stratégies
└── Paramètres Windows
└── Redirection de dossiers
└── Documents
Clic droit sur Documents → Propriétés
Onglet Cible :
| Paramètre | Valeur |
|---|---|
| Paramètre | Rediriger le dossier de tout le monde vers le même emplacement |
| Emplacement du dossier cible | Créer un dossier pour chaque utilisateur sous le chemin racine |
| Chemin racine | \\10-ServFich\Dossiers_Utilisateurs\%username%\Documents |
Onglet Paramètres :
| Option | Recommandation |
|---|---|
| Accorder à l'utilisateur des droits exclusifs sur Documents | Coché |
| Déplacer le contenu de Documents vers le nouvel emplacement | Coché |
| Appliquer aussi la stratégie aux systèmes d'exploitation antérieurs | Décoché (sauf besoin) |
Sur un poste client :
gpupdate /force
Ouvrir l'Explorateur de fichiers → clic droit sur Documents → Propriétés → onglet Emplacement. Le chemin doit pointer vers \\10-ServFich\Dossiers_Utilisateurs\prenom.nom\Documents.
⚠️ Problème connu : si un profil local existe déjà, Windows ne déplace pas automatiquement les fichiers. Il faut supprimer le profil local et se reconnecter (voir section Dépannage).
Les profils itinérants permettent à l'utilisateur de retrouver son environnement complet (bureau, paramètres, Documents) sur n'importe quel poste du domaine.
Différence clé avec la redirection de dossiers :
Créer un partage dédié dans /etc/samba/smb.conf :
[Profiles$]
path = /srv/samba/profiles
read only = no
browseable = no
create mask = 0600
directory mask = 0700
Info : Le $ à la fin du nom masque le partage dans l'explorateur réseau.
Créer le dossier et définir les permissions :
mkdir -p /srv/samba/profiles
chown root:"Domain Users" /srv/samba/profiles
chmod 1770 /srv/samba/profiles
# Le bit sticky (1) empêche les utilisateurs de supprimer les dossiers des autres
smbcontrol all reload-config
GPO_Profils_ItinerantsConfiguration utilisateur
└── Stratégies
└── Modèles d'administration
└── Système
└── Profils utilisateur
Activer : Définir le chemin d'accès itinérant pour tous les utilisateurs
| Paramètre | Valeur |
|---|---|
| État | Activé |
| Chemin du profil | \\10-ServFich\Profiles$\%username% |
Via Active Directory Users and Computers (dsa.msc) → double-clic sur l'utilisateur → onglet Profil → Chemin du profil : \\10-ServFich\Profiles$\%username%
Note : La méthode GPO est préférable car elle s'applique automatiquement à tous les nouveaux utilisateurs.
Sur le poste concerné, connecté en administrateur local :
Puis inviter l'utilisateur à se reconnecter : Windows crée un nouveau profil en récupérant les données depuis le serveur.
Configuration ordinateur
└── Stratégies
└── Modèles d'administration
└── Système
└── Profils utilisateur
Cette erreur apparaît quand Windows a marqué le profil comme corrompu dans le registre (clé .bak). Sur le poste concerné, connecté en administrateur :
regedit
Naviguer vers :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Chercher la clé correspondant au SID de l'utilisateur (commence par S-1-5-21-...) :
Redémarrer le poste → l'utilisateur peut se reconnecter normalement.
Ce problème est causé par un cache CSC (Client-Side Caching) corrompu. Windows a une ancienne entrée de synchronisation qui prend le dessus sur la GPO.
Solution : réinitialiser le cache CSC. Sur le poste concerné, connecté en administrateur :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CSC\Parameters
Créer une nouvelle valeur :
| Type | Nom | Valeur |
|---|---|---|
| DWORD (32 bits) | FormatDatabase | 1 |
Redémarrer l'ordinateur. Windows vide le cache local des fichiers réseau et force une resynchronisation propre avec le serveur à la prochaine connexion.
Symptôme : Cannot contact any KDC
Symptôme : NT_STATUS_ACCESS_DENIED
Symptôme : Failed to join domain
Pour diagnostiquer des problèmes complexes, augmenter le niveau de log dans /etc/samba/smb.conf :
[global]
log level = 3 auth:5 winbind:5
Puis redémarrer Samba et consulter les logs.
Avant la première connexion d'un utilisateur sur un nouveau poste, exécuter :
gpupdate /force
net use \\10-ServFich\Dossiers_Utilisateurs
Cela garantit que :
# Voir les utilisateurs connectés
smbstatus
# Voir les fichiers ouverts
smbstatus -L
# Logs Samba en temps réel
tail -f /var/log/samba/log.smbd
# Logs Winbind
tail -f /var/log/samba/log.winbindd
# Redémarrer Samba
systemctl restart smbd nmbd winbind
# Vérifier le statut
systemctl status smbd
systemctl status winbind
# Tester la jonction au domaine
net ads testjoin
# Informations sur le domaine
net ads info