Introduction
Samba :
- Protocole SMB / CIFS (Windows native)
- Partages fichiers multi-OS (Windows, macOS, Linux)
- Active Directory : DC ou domain member
- Compatible avec auth Windows
- Performance : Samba 4.x gere SMB3 avec multichannel, encryption
Cas d'usage : NAS, serveur de fichiers bureau, partage de profils Windows, integration Active Directory.
Prerequis
- VPS / serveur Linux Debian / Ubuntu
- Acces root
- LAN configure (pas d'exposition Internet sans firewall stricte!)
⚠️ Ne jamais exposer Samba directement sur Internet : SMB est cible n.1 ransomware. Restreignez aux IPs LAN.
Etape 1 : Installation
sudo apt update
sudo apt install -y samba smbclient
smbd --version
Etape 2 : Configuration de base
Backup la config :
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
sudo nano /etc/samba/smb.conf
Config minimale :
[global]
workgroup = WORKGROUP
server string = VeryCloud File Server
netbios name = vcfileserver
security = user
map to guest = bad user
; Restriction IPs (CRUCIAL)
hosts allow = 192.168.50.0/24 127.0.0.1
hosts deny = 0.0.0.0/0
; Logs
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
; Performance
server min protocol = SMB2_10
server signing = mandatory
server smb encrypt = desired
; Disable printer sharing si pas besoin
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
; Disable NetBIOS (uniquement SMB direct sur 445)
smb ports = 445
disable netbios = yes
[partage]
path = /srv/samba/partage
browseable = yes
read no
guest ok = no
valid users = @smbusers
create mask = 0664
directory mask = 0775
force group = smbusers
Etape 3 : Creer le dossier et groupes
sudo mkdir -p /srv/samba/partage
sudo groupadd smbusers
sudo chgrp -R smbusers /srv/samba/partage
sudo chmod -R 2770 /srv/samba/partage # setgid pour heriter du groupe
Etape 4 : Creer un utilisateur Samba
L'utilisateur doit exister en Linux ET avoir un mot de passe Samba (distinct).
sudo adduser --no-create-home --disabled-login mathys
sudo usermod -aG smbusers mathys
sudo smbpasswd -a mathys
# Tapez le mot de passe Samba 2 fois
sudo smbpasswd -e mathys # enable
Lister :
sudo pdbedit -L
Etape 5 : Verifier la config et demarrer
sudo testparm
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
Etape 6 : Tester depuis Linux
smbclient -L localhost -U mathys
Liste les partages dispo. Pour acceder :
smbclient //localhost/partage -U mathys
Mount permanent :
sudo apt install -y cifs-utils
sudo mkdir /mnt/smb-partage
sudo mount -t cifs //IP_SERVEUR/partage /mnt/smb-partage -o username=mathys,password=xxx,vers=3.0
Dans /etc/fstab :
//192.168.50.10/partage /mnt/smb-partage cifs username=mathys,password=xxx,uid=1000,gid=1000,vers=3.0,_netdev 0 0
Mieux : utiliser un fichier de credentials :
sudo nano /etc/smb-creds
username=mathys
password=motdepasse
sudo chmod 600 /etc/smb-creds
fstab :
//192.168.50.10/partage /mnt/smb-partage cifs credentials=/etc/smb-creds,uid=1000,gid=1000,vers=3.0,_netdev 0 0
Etape 7 : Acces depuis Windows
Explorateur > Adresse :
\\192.168.50.10\partage
Entrez les credentials Samba. Mapper en lecteur reseau via clic droit > "Map network drive".
Etape 8 : Partage public (anonyme)
Si vraiment necessaire (rarement recommande) :
[public]
path = /srv/samba/public
browseable = yes
read no
guest ok = yes
guest yes
create mask = 0666
directory mask = 0777
sudo mkdir /srv/samba/public
sudo chmod 777 /srv/samba/public
sudo systemctl restart smbd
Etape 9 : Multi-utilisateurs, ACL fines
Pour gerer des permissions plus fines, utilisez les ACL POSIX :
sudo apt install -y acl
Activez ACL dans le partage :
[partage]
path = /srv/samba/partage
read no
inherit acls = yes
inherit permissions = yes
acl_xattr:ignore system acls = yes
vfs objects = acl_xattr
Set des ACL :
sudo setfacl -R -m g:smbusers:rwX /srv/samba/partage
sudo setfacl -R -m d:g:smbusers:rwX /srv/samba/partage # default ACL
sudo getfacl /srv/samba/partage
Les ACL sont visibles depuis Windows en clic droit > Properties > Security.
Etape 10 : Quotas et limites
[partage]
path = /srv/samba/partage
read no
max disk size = 10240 ; 10 Go limite annonce au client
Pour de vraies quotas, utilisez les quotas filesystem (ZFS, Btrfs, ou ext4 quotas).
Etape 11 : Performance tuning
[global]
; Buffers reseau
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
; Async I/O
aio read size = 16384
aio write size = 16384
use sendfile = yes
; SMB Multi-channel (necessite SMB3+ cote client)
server multi channel support = yes
Reboot Samba et testez avec un fichier de test :
dd if=/dev/zero of=/srv/samba/partage/test.bin bs=1M count=1024
Copie depuis Windows : vous devriez voir 100+ MB/s sur Gigabit.
Etape 12 : Active Directory
Pour rejoindre un domaine AD :
sudo apt install -y winbind libpam-winbind libnss-winbind
/etc/samba/smb.conf :
[global]
workgroup = MONDOMAINE
realm = MONDOMAINE.LOCAL
security = ADS
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
template shell = /bin/bash
template homedir = /home/%U
idmap config * : range = 10000-99999
idmap config MONDOMAINE : backend = rid
idmap config MONDOMAINE : range = 100000-999999
Rejoindre le domaine :
sudo realm join mondomaine.local -U Administrator
Maintenant les utilisateurs AD peuvent acceder aux partages.
Pour faire un controleur de domaine Samba AD lui-meme, voir https://wiki.samba.org/index.php/Active_Directory_Domain_Services.
Depannage
"NT_STATUS_LOGON_FAILURE"
Mot de passe Samba incorrect. Reset :
sudo smbpasswd mathys
Ou utilisateur pas enabled :
sudo smbpasswd -e mathys
"Permission denied" cote client
Verifiez :
- Permissions Linux (
ls -la /srv/samba/partage) force groupdans la config- Utilisateur dans le bon groupe
Acces tres lent
Verifiez server min protocol = SMB2_10. SMB1 (deprecated) est lent et non-sur.
Cote client Windows, activer SMB direct si Gigabit+.
Partage invisible dans le voisinage reseau
NetBIOS desactive. Soit reactivez (disable netbios = no, smb ports = 139 445), soit faites le browsing par nom DNS.
Logs
sudo tail -f /var/log/samba/log.smbd
sudo tail -f /var/log/samba/log.nmbd
Commandes utiles
# Services
sudo systemctl status smbd nmbd
sudo systemctl restart smbd nmbd
# Test config
sudo testparm
# Users
sudo smbpasswd -a username # ajouter
sudo smbpasswd -d username # disable
sudo smbpasswd -e username # enable
sudo smbpasswd -x username # delete
sudo pdbedit -L # lister
# Tester partages
smbclient -L //IP_SERVEUR -U user
smbclient //IP_SERVEUR/partage -U user
# Lister connexions actives
sudo smbstatus
sudo smbstatus --shares
sudo smbstatus --locks
# Mount depuis Linux
sudo mount -t cifs //srv/share /mnt/point -o credentials=/etc/smb-creds,vers=3.0
# Logs
sudo tail -f /var/log/samba/log.smbd
Conclusion
Samba transforme votre serveur Linux en server de fichiers compatible Windows :
- SMB3 securise et performant
- Integration Active Directory
- ACL fines
- Multi-OS
Limites :
- Complexite de config
- Cible n1 de ransomwares (jamais exposer)
- Performance moins bonne que NFS sur LAN Linux-only
Pour aller plus loin :
- Pour Linux-only, prefere NFS (perf superieures)
- Pour un NAS turnkey, regardez TrueNAS Scale ou OpenMediaVault
- Pour la HA, deployez Ctdb (clustered Samba)
Ressources
- Documentation officielle : https://www.samba.org/samba/docs/
- Wiki : https://wiki.samba.org
- Setup AD : https://wiki.samba.org/index.php/Active_Directory_Domain_Services
- SMB protocol : https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb/


















