Recherche de site Web

Configuration de Samba et configuration de FirewallD et SELinux pour autoriser le partage de fichiers sur les clients Linux/Windows - Partie 6


Étant donné que les ordinateurs fonctionnent rarement comme des systèmes isolés, il faut s'attendre à ce qu'en tant qu'administrateur système ou ingénieur, vous sachiez comment configurer et entretenir un réseau avec plusieurs types de serveurs.

Dans cet article et dans le prochain de cette série, nous passerons en revue les éléments essentiels de la configuration des serveurs Samba et NFS avec des clients Windows/Linux et Linux, respectivement.

Cet article vous sera certainement utile si vous êtes appelé à configurer des serveurs de fichiers dans des environnements d'entreprise ou d'entreprise où vous êtes susceptible de trouver différents systèmes d'exploitation et types d'appareils.

Puisque vous pouvez en savoir plus sur le contexte et les aspects techniques de Samba et de NFS partout sur Internet, dans cet article et le suivant, nous irons droit au but avec le sujet en question.

Étape 1 : Installation du serveur Samba

Notre environnement de test actuel se compose de deux boîtiers RHEL 7 et d'une machine Windows 8, dans cet ordre :


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

Sur box1, installez les packages suivants :


yum update && yum install samba samba-client samba-common

Sur la box2 :


yum update && yum install samba samba-client samba-common cifs-utils

Une fois l’installation terminée, nous sommes prêts à configurer notre partage.

Étape 2 : Configuration du partage de fichiers via Samba

L'une des raisons pour lesquelles Samba est si pertinent est qu'il fournit des services de fichiers et d'impression aux clients SMB/CIFS, ce qui amène ces clients à voir le serveur comme s'il s'agissait d'un serveur. Système Windows (je dois admettre que j'ai tendance à devenir un peu émotif en écrivant sur ce sujet car c'était ma première installation en tant que nouvel administrateur système Linux il y a quelques années).

Ajout d'utilisateurs système et configuration des autorisations et de la propriété

Pour permettre la collaboration de groupe, nous allons créer un groupe nommé finance avec deux utilisateurs (user1 et user2) avec la commande useradd et un répertoire /finance dans la case1.

Nous allons également changer le propriétaire du groupe de ce répertoire en finance et définir ses autorisations sur 0770 (autorisations de lecture, d'écriture et d'exécution pour le propriétaire et le propriétaire du groupe) :


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Étape 3 : Configuration de SELinux et de Firewalld

En préparation pour configurer /finance en tant que partage Samba, nous devrons soit désactiver SELinux, soit définir les valeurs booléennes et de contexte de sécurité appropriées comme suit (sinon, SELinux empêchera les clients d'accéder au partage) :


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

De plus, nous devons nous assurer que le trafic Samba est autorisé par le pare-feu.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Étape 4 : configurer le partage Samba

Il est maintenant temps de plonger dans le fichier de configuration /etc/samba/smb.conf et d'ajouter la section pour notre partage : nous voulons que les membres du groupe finance puissent pour parcourir le contenu de /finance et enregistrer /, créer des fichiers ou des sous-répertoires dedans (dont par défaut leurs bits d'autorisation sont définis sur 0770 et finance sera leur propriétaire de groupe) :


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Enregistrez le fichier, puis testez-le avec l'utilitaire testparm. S'il y a des erreurs, le résultat de la commande suivante indiquera ce que vous devez corriger. Sinon, il affichera un aperçu de la configuration de votre serveur Samba :

Si vous souhaitez ajouter un autre partage ouvert au public (c'est-à-dire sans aucune authentification), créez une autre section dans /etc/samba/smb.conf et sous le nom du nouveau partage, copiez la section ci-dessus. , en changeant uniquement public=no en public=yes et en n'incluant pas les utilisateurs valides et les directives d'écriture de liste.

Étape 5 : Ajout d'utilisateurs Samba

Ensuite, vous devrez ajouter user1 et user2 en tant qu'utilisateurs Samba. Pour ce faire, vous utiliserez la commande smbpasswd, qui interagit avec la base de données interne de Samba. Vous serez invité à saisir un mot de passe que vous utiliserez ultérieurement pour vous connecter au partage :


smbpasswd -a user1
smbpasswd -a user2

Enfin, redémarrez Samba, activez le démarrage du service au démarrage et assurez-vous que le partage est bien disponible pour les clients du réseau :


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

À ce stade, le serveur de fichiers Samba a été correctement installé et configuré. Il est maintenant temps de tester cette configuration sur nos clients RHEL 7 et Windows 8.

Étape 6 : Monter le partage Samba sous Linux

Tout d'abord, assurez-vous que le partage Samba est accessible depuis ce client :


smbclient –L 192.168.0.18 -U user2

(répétez la commande ci-dessus pour user1)

Comme tout autre support de stockage, vous pouvez monter (et démonter ultérieurement) ce partage réseau si nécessaire :


mount //192.168.0.18/finance /media/samba -o username=user1

(où /media/samba est un répertoire existant)

ou de façon permanente, en ajoutant l'entrée suivante dans le fichier /etc/fstab :


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Où le fichier caché /media/samba/.smbcredentials (dont les autorisations et la propriété ont été définies respectivement sur 600 et root:root) contient deux lignes qui indiquent le nom d'utilisateur et le mot de passe d'un compte autorisé à utiliser le partage :


username=user1
password=PasswordForUser1

Enfin, créons un fichier dans /finance et vérifions les autorisations et la propriété :


touch /media/samba/FileCreatedInRHELClient.txt

Comme vous pouvez le constater, le fichier a été créé avec les autorisations 0770 et la propriété définie sur user1:finance.

Étape 7 : Montage du partage Samba sous Windows

Pour monter le partage Samba sous Windows, accédez à Mon PC et choisissez Ordinateur, puis Carter le lecteur réseau. Ensuite, attribuez une lettre au lecteur à mapper et cochez Se connecter en utilisant différentes informations d'identification (les captures d'écran ci-dessous sont en espagnol, ma langue maternelle) :

Enfin, créons un fichier et vérifions les autorisations et la propriété :


ls -l /finance

Cette fois, le fichier appartient à user2 puisque c'est le compte que nous avons utilisé pour nous connecter depuis le client Windows.

Résumé

Dans cet article, nous avons expliqué non seulement comment configurer un serveur Samba et deux clients utilisant des systèmes d'exploitation différents, mais également comment configurer le pare-feu et SELinux sur le serveur pour permettre les capacités de collaboration de groupe souhaitées.

Enfin, permettez-moi de vous recommander la lecture de la page de manuel en ligne de smb.conf pour explorer d'autres directives de configuration qui pourraient être plus adaptées à votre cas que le scénario décrit dans cet article.

Comme toujours, n'hésitez pas à laisser un commentaire en utilisant le formulaire ci-dessous si vous avez des commentaires ou des suggestions.