Configurer un serveur de fichiers Samba sur Debian¶
Note
Cette documentation se base sur la distribution Debian 64bits.
La version du paquet Samba-AD de la distribution Debian est suffisamment à jour pour fournir un service de fichiers optimal. Il n’est donc pas nécessaire de re-compiler Samba à partir des sources.
Note
Dans cette documentation, on suppose :
- Que vous aurez installé la base système de votre serveur de fichiers en ayant suivi la documentation d’installation de base de Debian Buster 64bits et que votre serveur s’appelle srvfiles. 
- Que l’adresse IP de votre contrôleur de domaine est 192.168.1.11. 
- Que le domaine s’appelle mydomain.lan. 
Préparer la machine¶
Préparer la configuration réseau de la machine en suivant la même documentation que celle pour un nouveau contrôleur de domaine. On pensera bien à configurer comme serveur DNS le serveur Active Directory dans le fichier /etc/resolv.conf.
Indication
Ajouter domain mydomain.lan dans le fichier /etc/resolv.conf est nécessaire car dans le smb.conf, l’option winbind use default domain = yes s’appuie dessus. Si ce n’est pas fait, cela entraîne les problèmes suivants :
- Problème lors de la commande - net ads testjoinqui dit ne pas trouver le contrôleur de domaine.
- La commande chown userad1 myfile ne fonctionne pas. 
- Un wbinfo -u / -g / -i ne renvoie pas de résultat. 
Installer les dépendances¶
apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get install samba winbind krb5-user libnss-winbind
unset DEBIAN_FRONTEND
Joindre le serveur de fichiers au domaine¶
- Editer le fichier - /etc/krb5.confet remplacer tout le fichier par les lignes ci-dessous :
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = true
default_realm = MYDOMAIN.LAN
- Vérifier que la configuration DNS de dans - /etc/nsswitch.confn’a pas été modifiée par l’installation d’un paquet quelconque. Si la ligne host ressemble à la ligne ci-dessous, la modifier pour qu’elle ressemble à la ligne juste après :- hosts: files dns mdns4_minimal [NOTFOUND=return] mdns # BAD!!! hosts: files dns # GOOD 
- Vérifier que le kerberos est bien configuré (administrator est le compte par défaut créé par samba4, si l’on veut utiliser le compte administrateur, ne pas oublier de le changer) ; - kinit administrator klist
Configuration du smb.conf¶
Selon le type de schéma utilisé (RFC2307 / AD), le fichier ne sera pas similaire !
- Créer le fichier de configuration samba - /etc/samba/smb.conf.
- Remplacez le nom MYDOMAIN.LAN par votre royaume kerberos. 
Type de RID¶
Vous utiliserez généralement la configuration RID si vous avez migré depuis un MS-AD ou si vous avez créé un nouveau domaine Samba-AD. Vous utiliserez généralement la configuration RFC2307 si vous avez migré de Samba3-NT4 à Samba-AD. Pour plus d’informations, voir les explications sur l’IDMapping.
| Mode RID | Mode RFC2307 | 
|---|---|
| [global]
  workgroup = MYDOMAIN
  security = ADS
  realm = MYDOMAIN.LAN
  winbind separator = +
  idmap config *:backend = tdb
  idmap config *:range = 700001-800000
  idmap config MYDOMAIN:backend  = rid
  idmap config MYDOMAIN:range  = 10000-700000
  winbind use default domain = yes
  winbind enum users = yes
  winbind enum groups = yes
  vfs objects = acl_xattr
  map acl inherit = Yes
  template homedir = /home/homes/%U
[shares]
  path = /home/shares
  read only = no
[homes]
  path = /home/homes/%U
  read only = no
[profiles]
  path = /home/profiles
  read only = no
 | [global]
  workgroup = MYDOMAIN
  security = ADS
  realm = MYDOMAIN.LAN
  idmap config *:backend = tdb
  idmap config *:range = 700001-800000
  idmap config MYDOMAIN:backend = ad
  idmap config MYDOMAIN:schema_mode = rfc2307
  idmap config MYDOMAIN:range = 500-700000
  winbind nss info = rfc2307
  vfs objects = acl_xattr
  map acl inherit = Yes
  winbind use default domain = yes
  winbind enum users = yes
  winbind enum groups = yes
  template homedir = /home/homes/%U
[shares]
  path = /home/shares
  read only = no
[homes]
  path = /home/homes/%U
  read only = no
[profiles]
  path = /home/profiles
  read only = no
 | 
Note
Si vous ne voulez pas utiliser votre serveur de fichiers comme service d’impression, ajoutez les options suivantes dans la section global du fichier /etc/samba/smb.conf.
printcap name = /dev/null load printers = no disable spoolss = yes printing = bsd
Joindre le serveur de fichiers au domaine¶
net ads join -U administrator
- Configurer le fichier - /etc/nsswitch.conf, modifier les trois lignes suivantes pour les faire correspondre à la documentation :- passwd: compat winbind group: compat winbind shadow: compat winbind 
- Redémarrer avec un reboot afin de vider les caches du nsswitch : - reboot 
- Vérifier la bonne jonction au domaine : - Les 3 commandes suivantes doivent retourner les utilisateurs, les groupes et l’information d’un compte de l’AD telle que reçue par winbindd : - wbinfo -u wbinfo -g wbinfo -i administrator 
- Les 2 commandes suivantes doivent retourner les utilisateurs et les groupes avec leur uidNumber tels qu’interprétés par le système Linux. Bien vérifier que l’on voit les utilisateurs de l’AD : administrator, krbtgt, etc : 
 - getent passwd administrator