Certaines personnes se demandent peut-être : “Comment faire pour remplacer un serveur de fichier Windows par un serveur Linux ? “. Si c’est le cas, je vous conseille de lire cet article. Vous y découvrirez la manière dont j’ai procédé pour remplacer mon serveur de fichier Windows tout en conservant un AD sous Windows. STOP au serveur de fichier sous Windows.
La configuration de ce LAB se présente ainsi. Un serveur Active Directory sous Windows 2012R2, pour la gestion des droits utilisateurs, et les DNS, et un serveur Samba Centos 7.1 pour le partage de fichiers. Cette solution nous permettra de faire une économie des ressources physique grâce au serveur Centos. L’administration depuis le serveur Microsoft, se révèle un bon choix grâce à sa simplicité d’utilisation, et sa gestion des utilisateurs performante.
J’exposerai dans cet article la manière dont j’ai installé et configuré le serveur Samba. Mais je ne vous présenterai pas la partie concernant les entrées DNS. Pour information, elles ont été créées sur le même serveur que l’AD.
Installation de Samba
Pour affiner vos réglages suivant vos besoins, je vous recommande de consulter la documentation. Vous pouvez accéder à la documentation de cette manière.
[root@nfsshare ~]# man smb.conf
Commençons par faire l’installation des “packages” nécessaire pour le serveur Samba.
root@nfsshare ~]# yum install realmd samba samba-common samba-winbind oddjob oddjob-mkhomedir sssd ntpdate ntp
Nous utiliserons le serveur AD comme serveur de temps. Pour cela, nous devons créer le service ntpd.service, ensuite nous le configurerons et enfin, nous ferons le démarrage de celui-ci.
#Activez le service ntpd [root@nfsshare ~]# systemctl enable ntpd.service #Configuration du service pour récupérer les informations sur le serveur Domaine Contrôleur [root@nfsshare ~]# ntpdate Hostname.Domain.local #On démarre le service ntpd [root@nfsshare ~]# systemctl start ntpd.service
Nous ajoutons le serveur Samba au domaine “domain.local” grâce au compte administrator@domain.local
[root@nfsshare ~]# realm join --user=administrator@domain.local domain.local
Nous pouvons vérifier l’ajout dans le domaine pour ce serveur grâce à la commande suivante.
[root@nfsshare ~]# realm list
Configuration de Samba (/etc/samba/smb.conf)
[root@nfsshare ~]# cat /etc/samba/smb.conf # See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] #Mon domaine sans le tld workgroup = MYDOMAIN server string = Samba Server Version %v #IP autoriser la plage IP suivante pour accéder à ce partage (Exemple : 192.168.) hosts allow = 192.168. log file = /var/log/samba/log.%m max log size = 50 security = ads encrypt passwords = yes passdb backend = tdbsam #Mon domain.local realm = domaine.local load printers = no cups options = raw printcap name = /dev/null [MyShareName] comment = Mes commentaires path = /Chemin de mon dossier public = no writable = yes guest ok = no read only = no #On autorise les utilisateurs suivant valid users = @"GroupeAD@domain.local",user@domain.local
Configuration du dossier partager
#Ajout du Groupe AD sur ce dossier [root@nfsshare ~]# chown root:GroupAD@domain.local /MyFolder #Modification des droits pour ce dossier [root@nfsshare ~]# chmod 775 /MyFolder
Montage du Volume
À partir de ce moment, nous pouvons monter notre volume depuis Windows ou un Linux. Sous Linux, il faudra ajouter le “package” suivant pour le monter au démarrage. Il faudra créer un fichier contenant le nom d’utilisateur, mot de passe et domaine ayant les droits de monter ce volume.
[root@nfsshare ~]# yum install cifs-utils
Créer un fichier contenant les informations d’authentification. Dans cet exemple, je l’ai créé en invisible dans le dossier “root”.
[root@nfsshare ~]# cat /root/.cred username=UserdeService password=PassUserdeService domain=DOMAIN
Vous pouvez ensuite modifier le fichier (/etc/fstab) pour monter votre volume au démarrage de la machine.
(...) //IPServeur/CheminDuDossier /pointdemontagelocal cifs _netdev,users,auto,users,credentials=/root/.cred 0 0
Ou effectuer la commande suivante pour le monter le volume temporairement.
[root@nfsshare ~]# mount -t cifs //IPServeur/CheminDuDossier /pointdemontagelocal -o username=UserdeService,password=PassUserService,domain=DOMAIN
Il faudra penser à ouvrir votre pare-feu pour le service samba. Nous pourrons ensuite démarrer les services Samba ou les créer si cela n’est pas fait.
firewall-cmd --permanent --add-service=samba firewall-cmd --reload
#On redemare le service nmb [root@nfsshare ~]# systemctl restart nmb.service #On active le service smb [root@nfsshare ~]# systemctl enable smb.service #On démarre le service smb [root@nfsshare ~]# systemctl start smb.service #On démarre le service winbind [root@nfsshare ~]# systemctl start winbind.service
Il faudra désactiver SeLinux. Pour le désactiver, vous devez modifier le fichier (/etc/selinux/config) de la manière suivante.
[root@nfsshare ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled
Effacer le cache du serveur Samba
Lorsque vous modifier les droits utilisateurs, le cache du serveur Samba doit être mis à jour. Les modifications ne sont pas prise en charge instantanément. Vous trouverez l’ensemble des bases local à cet emplacement (/var/lib/sss/db/). Pour plus d’information, vous pouvez vous rendre à cette adresse Clear Cache.
Pour ma part, j’utilise le plus souvent l’option suivante.
[root@nfsshare ~]# sss_cache -Ed yourdomain.LOCAL
Avec la commande suivante, vous pouvez vérifier l’état de votre cache depuis votre serveur de fichier.
[root@nfsshare ~]# id User@domain.local