Configurer un serveur de fichiers Samba sur RedHat8 et dérivées
Attention
Cette documentation se base sur la distribution Redhat8.
La version du paquet Samba de la distribution Redhat8 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 et que votre serveur s’appelle srvfiles.
Que l’adresse IP de votre contrôleur de domaine est 192.168.1.11.
Que votre domaine s’appelle mydomain.lan.
Modifier le fichier
/etc/hosts
pour qu’il contienne la résolution DNS du FQDN de la machine sur son IP (ie pas 127.0.0.1), avec le nom long puis le nom court.Modifier le fichier
/etc/resolv.conf
pour pointer vers le DNS de l’AD, modifier le fichiernetwork-scripts
également :search mydomain.lan domain mydomain.lan nameserver 192.168.1.11
Indication
Ajouter mydomain.lan dans le fichier /etc/resolv.conf
est nécessaire car dans le fichier smb.conf
, l’option winbind use default domain
= yes repose sur lui. Si cela n’est pas fait, cela provoque 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.
Rebooter la machine pour prendre en compte ce nouveau nom de machine :
reboot
Installer les dépendances ;
yum install samba samba-winbind samba-winbind-clients krb5-workstation
Joindre le serveur de fichiers au domaine
Editer le fichier
/etc/krb5.conf
et replacer 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 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 myhostname #GOOD
Vérifier que le kerberos est bien configuré :
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 lignes suivantes :passwd: files sssd winbind group: files sssd winbind shadow: files sssd winbind
Redémarrer les services :
systemctl enable winbind smb systemctl restart winbind systemctl restart smb
Redémarrer la machine 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 getent group "domain admins"