{{tag>sysadmin linux samba partage cifs}}
====== Configuration de Samba 4 ======
La configuration d'un serveur samba en version 4 reste proche de celle en version 3.
===== Directives globales =====
Masquer certains dossiers et fichiers pour tous les partages déclarés, le séparateur est le caractère **'/'**:
hide files = /lost+found/.Trash*/*.bak/
==== Restriction d’accès aux services ====
Il est possible de limiter les services samba a certains clients
# Personne n’accède au serveur SAMBA
hosts deny = all
# Sauf les clients explicitement autorisés ici
hosts allow = 192.168.0.1
tester les modifications apportées
$ sudo testparm
===== Utilisateurs =====
Créer le groupe **sambausers** s'il est inexistant:
$ sudo addgroup sambausers
Pour des utilisateurs n'utilisant pas le système local, créer des comptes POSIX sans shell ni répertoire home:
$ sudo useradd -s /bin/false -d /dev/null professeur
Définir le compte/mot de passe dans le backend d'authentification du serveur Samba via l'outil **pdbedit**:
$ sudo pdbedit -a professeur
===== Droits d’accès aux fichiers =====
Pour pouvoir créer des fichiers/dossiers l'utilisateur doit être autorisé à le faire sur le système **et** le fichier smb.conf doit l'autoriser.
Pour définir quels utilisateurs peuvent accéder au partage:
valid user = user1, user2, @group1, @group2
Sur un partage, le droit d’accès par défaut est lecture seule pour tous. Pour plus de clarté, la directive peut être explicite:
read only = Yes
Pour activer le mode lecture/écriture sur un partage la directive **read only** par défaut doit être redéfinie:
read only = No
Hériter les permission du répertoire parent:
inherit permissions = yes
===== Iptables =====
La diffusion des noms NETBios se fait via le protocole UDP et le port 137
iptables -A INPUT -i lan -p tcp -s 192.168.0.0/24 -d 192.168.0.254 --dport 445 -j ACCEPT
# Activer la résolution NETBIOS
iptables -A INPUT -i lan -p udp -s 192.168.0.0/24 -d 192.168.0.254 --dport 137 -j ACCEPT
iptables -A INPUT -i lan -p udp -s 192.168.0.0/24 -d 192.168.0.255 --dport 138 -j ACCEPT
iptables -A OUTPUT -o lan -p tcp -s 192.168.0.254 -d 192.168.0.0/24 --sport 139 -j ACCEPT
Les ports 137 et 138 en UDP et le port 139 en TCP permettent d'utiliser le service de résolution de noms NetBIOS. Sans le service NetBIOS, le montage de lecteur réseau reste possible via l'IP.
Le port TCP 445 (désigné **microsoft-ds**((**Microsoft** **D**irectory **S**ervice)) ) est donc suffisant si l'on souhaite faire des montages de lecteurs sans utilisation de NetBIOS.
===== Références =====
* https://doc.ubuntu-fr.org/samba#ports_lies_au_partage_de_fichiers_par_les_protocoles_smb_et_cifs
* https://doc.ubuntu-fr.org/samba_smb.conf
* http://www.bodenzord.com/archives/53
* https://www.samba.org/~tpot/articles/firewall.html
* https://bbs.archlinux.org/viewtopic.php?id=170243
* https://serverfault.com/questions/401262/samba-deny-host-not-blocking-that-host#401316
* https://www.oreilly.com/openbook/samba/book/ch04_07.html
* http://forums.justlinux.com/showthread.php?93519-What-is-the-Microsoft-ds-service