OK, je récapitule :
L'idée est de configurer samba avec avec bind, afin d'écouter une seule interface réseau seulement, et de protéger le dossier partagé entre la machine virtuelle (VM) et l'hôte de fouineurs indésirables.
il est conseillé de ne pas mettre le partage dans /home, mais typiquement dans un emplacement type /serv
Voilà à quoi ressemble le /etc/samba/smb/conf :
[global]
workgroup = WORKGROUP
netbios name = Host
server string = serveur %h (Samba %v, Fedora)
# On souhaite n'autoriser l'accès que via certaines interfaces réseau
bind interfaces only = Yes
# Liste des interfaces réseau en question
interfaces = 127.0.0.1, mon_ip
log file = /var/log/samba/log.%m
max log size = 100
[VirtShare]
path = /home/edouard/dossier_partagé
public = yes
browsable = yes
valid users = partage
guest ok = yes
writable = yes
printable = no
hide files = /lost+found/
hide unreadable = yes
Ne pas oublier de redémarrer les services après modification de ce fichier :
systemctl restart smb nmb
Et tant qu'à faire, ne pas oublier de les activer au boot :
systemctl enable smb nmb
On peut tester la validité du fichier de conf avec :
testparm
Vérifier le pare feu :
iptables -L -n -v
Si les ports samba (137 138 139 445) ne sont pas dans le Chain IN_public_allow, faire un :
firewall-cmd --add-service=samba
De même, si firewalld est actif, penser à rajouter "samba" et "samba-client" en "permanent" dans la zone défini par firewalld.
Trouver son ip avec ip a, et la mettre dans le smb.conf . Puis, depuis l'hôte, tester l'accès avec un :
smbclient -N -L //mon_ip
On ajoute enfin un user samba nommé partage, avec lequel on se connectera depuis la VM au partage :
useradd -m -d /ton/home/pour/partage partage
smbpasswd -a partage
On peut tester l'accès depuis l'hôte :
smbclient //mon_ip/dossier_partagé -U partage
là, si un dir (ou ls) renvoit un NT_STATUS_ACCESS_DENIED listing * ; rajouter faire un chmod o+x sur le dossier partagé
Dans le cas où SElinux est actif, faire un :
semanage fcontext -a -t samba_share_t '/dossier_partagé(/.*)?'
restorecon -R /dossier_partagé
setsebool -P samba_enable_home_dirs on
Concernant les droits, ça ressemble à :
drwxrwxr-x. 5 partage edouard 4096 14 déc. 20:20 VShare
[root@localhost data]# ls -Z VShare/
-rw-rw-r--. partage edouard unconfined_u:object_r:samba_share_t:s0 truc.txt
mon user est edouard, appartient au groupe edouard, et le user samba que j'ai créé s'appelle partage.
Si vous avez des remarques sur la rédaction, faites moi signe 😉
Est ce utile defaire un copié collé de ce tuto dans le wiki ?