Configurer un serveur de fichiers Samba sur Debian

Note

Cette documentation se base sur la distribution Debian Buster 64bits.

La version du paquet Samba-AD de la distribution Debian Buster 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 :

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 testjoin qui 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.conf et 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.conf n’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.

Confifuration de file:/etc/samba/smb.conf ;

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
    

Créer des partages

mkdir /home/shares
chown administrator:"domain users" /home/shares
chmod 770 /home/shares