Samba4 as ActiveDirectory

Un serveur samba est un partage de fichiers de type Windows. Dans un environnement hétérogène régi par un contrôleur de domaine Active Directory il peut être utile de stocker les profils, documents et lecteurs réseaux sur des serveurs Linux. Nous allons voir comment configurer un serveur Linux pour faire serveur de fichiers Windows. Installation

3 méta packages sont nécessaires pour créer ce serveur de fichiers

apt-get install samba winbind acl libpam-mkhomedir

Configuration de winbind

Pour configurer le login via winbind éditez le fichier /etc/nsswitch.conf de la façon suivante :

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind
hosts:          files dns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

Création automatique de répertoire personnel

Afin que chaque utilisateur aie directement un homedir dès son premier login, il faut configurer le pam pour utiliser le module mkhomedir. Editez le fichier /etc/pam.d/common-account. Si la ligne suivante n’y est pas ajoutez la.

session    required     /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022

Le dossier /etc/skel contient les fichiers de base que vous souhaitez voir dans le répertoire de l’utilisateur à sa création Configuration de samba

Ouvrez maintenant le fichier /etc/samba/smb.conf. Nous allons l’intégrer au domaine AD existant en modifiant les paramètres suivants:

[global]
   workgroup = DOMAIN
# nom court de votre serveur AD
   password server = activedirectory
# domaine
   realm = DOMAIN.TLD
# nom du serveur de fichiers
   netbios name = hera-bis
# cohérence samba - AD
   security = domain
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
# Spécifications AD
   idmap uid = 10000-20000
   idmap gid = 10000-20000
# On créé des homedir dans le répertoire /dta/homes/<username>
   template shell = /bin/bash
   template homedir = /data/homes/%U
   winbind enum groups = yes
   winbind enum users = yes
   winbind use default domain = yes
   prefered master = no
# quota disque
   max disk size = 10000

# Répertoires homes de l'utilisateur avec des droits corrects
[homes]
comment = Home Directories
browseable = no
writeable = yes
guest ok = no
directory mask = 2700
create mode = 0664
# conserver les droits Posix Windows
store dos attributes = yes
# les fichiers Linux commençant avec un . seront des fichiers cachés
hide dot files = yes
nt acl support = no

Enregistrement dans le domaine

On va joindre tout d’abord le domaine afin d’être reconnu du serveur Active Directory, entrez les identifiants d’un administrateur du domaine.

net ads join -U Administrateur%password

Afin de ne pas perdre la connectivité au domaine, rajoutez également la ligne suivante dans /etc/crontab

*/5 *   * * * root net ads join -U Administrateur%password

On va également rajouter dans le fichier /etc/rc.local la commande afin qu’elle soit effectuée au démarrage du serveur

net ads join -U Administrateur%password

Note: le fichier /etc/rc.local n’existe plus sur systemd. Il faut passer par une unit en mode oneshot

Lancement des services

Lancez maintenant les services

service samba start && service winbind start

Vous pouvez vérifiez que le domaine est joignable et lister les utilisateurs avec la commande wbinfo -u, et les groupes avec la commande wbinfo -g.

Votre serveur de fichiers samba est désormais relié à votre annuaire ActiveDirectory.