Ce tutoriel explique comment configurer un serveur Samba sur CentOS 7 avec des partages Samba anonymes et sécurisés. Samba est une suite logicielle Open Source/gratuite qui fournit des services de fichiers et d'impression transparents aux clients SMB/CIFS comme Windows. Samba est disponible gratuitement, contrairement aux autres implémentations SMB/CIFS, et permet l'interopérabilité entre les serveurs Linux/Unix et les clients Windows.
1 Remarque préliminaire
J'ai un serveur CentOS 7 fraîchement installé, sur lequel je vais installer le serveur samba. Bien sûr, vous devez disposer d'une machine Windows pour vérifier le serveur samba qui doit être accessible avec le serveur CentOS 7. Mon serveur Centos 7 a le nom d'hôte server1.example.com &IP as 192.168.0.100
Remarque :
- La machine Windows doit appartenir au même groupe de travail. Pour vérifier la valeur dans la machine Windows, exécutez la commande à l'invite cmd
net config workstation
Ce sera comme ça :
Votre machine Windows doit être sur le même domaine de poste de travail que sur le serveur CentOS 7.0, c'est-à-dire WORKGROUP dans mon cas.
- Pour rendre la machine Windows accessible dans Windows, procédez comme ceci. Dans le terminal d'exécution, ajoutez l'adresse IP de votre serveur :
notepad C:\Windows\System32\drivers\etc\hosts
Dans mon cas, c'était comme ça, il suffit de sauvegarder les valeurs.
[...]
192.168.0.100 server1.example.com centos
2 Partage Samba anonyme
Je vais d'abord vous expliquer la méthodologie pour installer Samba avec un partage anonyme. Pour installer le logiciel Samba, exécutez :
yum install samba samba-client samba-common
Il installera la version actuelle de Samba à partir du référentiel de logiciels CentOS.
Maintenant, pour configurer samba, éditez le fichier /etc/samba/smb.conf. Avant d'apporter des modifications, je ferai la sauvegarde du fichier d'origine en tant que /etc/samba/smb.conf.bak
cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
Comme je veux commencer avec un fichier vide, j'utiliserai la commande cat pour vider smb.conf. C'est plus rapide que de supprimer toutes les lignes dans vi.
cat /dev/null > /etc/samba/smb.conf
De plus, donnez les entrées comme ceci
vi /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
De plus CentOS 7 Firewall-cmd bloquera l'accès à la samba, pour s'en débarrasser nous exécuterons :
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
Enfin, rechargez le pare-feu pour appliquer les modifications.
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Vous pouvez maintenant accéder au partage Centos 7 dans Windows comme suit. Allez à l'invite Exécuter et tapez \\centos :
\\centos
Depuis une machine Windows, parcourez simplement le dossier et essayez de créer un fichier texte, mais vous obtiendrez une erreur d'autorisation refusée.
Vérifiez l'autorisation du dossier partagé.
ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Pour autoriser l'accès à l'utilisateur anonyme, définissez les autorisations comme suit :
cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[[email protected] samba]#
De plus, nous devons autoriser SELinux pour la configuration de samba comme suit :
chcon -t samba_share_t anonymous/
Désormais, l'utilisateur anonyme peut parcourir et créer le contenu du dossier.
Vous pouvez également vérifier le contenu sur le serveur.
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3. Serveur samba sécurisé
Par conséquent, je vais créer un groupe smbgrp &user srijan pour accéder au serveur samba avec une authentification appropriée.
groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[[email protected] samba]# smbpasswd -a srijan New SMB password:<--yoursambapassword Retype new SMB password:<--yoursambapassword Added user srijan. [[email protected] samba]#
Créez maintenant un dossier avec le nom secured dans le dossier /samba et accordez des autorisations comme celle-ci :
mkdir -p /samba/sécurisé
Encore une fois, nous devrons autoriser l'écoute via SELinux :
cd /samba
chmod -R 0777 sécurisé/
chcon -t samba_share_t sécurisé/
Éditez à nouveau le fichier de configuration comme :
vi /etc/samba/smb.conf
[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes
systemctl restart smb.service
systemctl restart nmb.service
Ensuite, vérifiez les paramètres comme suit :
testparm
[[email protected] samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Anonymous]" Processing section "[secured]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <--ENTER [global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb [Anonymous] path = /samba/anonymous read only = No guest ok = Yes [secured] path = /samba/secured valid users = @smbgrp read only = No [[email protected] samba]#
Maintenant, sur la machine Windows, vérifiez le dossier maintenant avec les informations d'identification appropriées
Vous serez à nouveau confronté au problème des autorisations pour donner l'autorisation d'écriture à l'utilisateur srijan do :
cd /samba
chown -R srijan:smbgrp secured/
Les utilisateurs de samba sont désormais autorisés à écrire dans le dossier. Bravo, vous avez terminé avec le serveur samba dans CentOS 7 :)