Installer Samba sur FreeBSD 15.0 avec ZFS Chiffré

Introduction

Ce guide détaille la mise en place d'un serveur de partage Samba sur FreeBSD 15.0 avec un pool ZFS en miroir chiffré. Cette configuration offre à la fois la redondance des données et leur sécurité grâce au chiffrement AES-256-GCM.


Prérequis


Étape 1 : Mise à jour du système

Commencez par mettre à jour FreeBSD et son catalogue de paquets :

pkg update
pkg upgrade -y

Étape 2 : Identifier les disques externes

Après avoir connecté physiquement les deux disques durs externes, identifiez-les avec la commande suivante :

camcontrol devlist

(Cette commande liste tous les périphériques de stockage détectés. Repérez les identifiants des deux disques, typiquement da1 et da2)


Étape 3 : Créer le pool ZFS miroir chiffré

Créez un pool ZFS nommé "partage" en miroir avec chiffrement AES-256-GCM :

zpool create -o ashift=12 \
 -O encryption=aes-256-gcm \
 -O keyformat=passphrase \
 -O keylocation=prompt \
 -O compression=lz4 \
 -O atime=off \
 partage mirror da1 da2

Lors de l'exécution, le système vous demandera de saisir une phrase de passe pour le chiffrement. Choisissez-en une forte et conservez-la précieusement !

Vérification du pool

Vérifiez que le pool a bien été créé :

zpool status partage
zfs list

Étape 4 : Installer Samba

Installez la dernière version de Samba (la 4.20 lors de la rédaction de cet article) :

pkg install -y samba420

Étape 5 : Créer le dataset pour le partage

Créez un dataset ZFS dédié au partage Samba :

zfs create partage/share
ls -la /partage/share

Étape 6 : Configurer Samba

Copiez/Collez l'ensemble du bloc ci-dessous pour créer le fichier de configuration Samba avec les paramètres de sécurité optimaux :

cat > /usr/local/etc/smb4.conf << 'EOF'
[global]
workgroup = WORKGROUP
log file = /var/log/samba4/log.%m
max log size = 1000
logging = file
server role = standalone server
# Désactiver totalement l'accès invité
map to guest = never
# Forcer SMB 3.1.1 uniquement avec chiffrement obligatoire
server min protocol = SMB3_11
server max protocol = SMB3_11
smb encrypt = required

[partage]
path = /partage/share
browseable = yes
read only = no
guest ok = no
valid users = @sambashare
create mask = 0770
directory mask = 0770
EOF

Points clés de la configuration

Tester la configuration

Vérifiez la syntaxe du fichier de configuration :

testparm

Étape 7 : Créer l'utilisateur Samba

Créez le groupe et l'utilisateur pour accéder au partage :

pw groupadd sambashare
pw useradd smbuser -G sambashare -s /usr/sbin/nologin -c "Samba User"
smbpasswd -a smbuser

(La commande smbpasswd vous demandera de définir un mot de passe pour l'utilisateur smbuser)


Étape 8 : Appliquer les permissions

Définissez les permissions appropriées sur le dossier partagé :

chown root:sambashare /partage/share
chmod 2770 /partage/share

Le bit setgid (2770) garantit que tous les fichiers créés hériteront du groupe sambashare.


Étape 9 : Démarrer Samba

Activez le démarrage automatique de Samba :

sysrc samba_server_enable="YES"

Démarrez le service :

service samba_server start

Étape 10 : Tester l'accès au partage

Depuis macOS

Dans le Finder, utilisez le menu Aller > Se connecter à un serveur, puis entrez :

smb://smbuser@IP-serveur-freebsd

(Remplacez IP-serveur-freebsd par l'adresse IP réelle de votre serveur FreeBSD)


Maintenance : En cas de redémarrage

Après un redémarrage du serveur, le pool ZFS chiffré ne sera pas automatiquement monté. Vous devrez effectuer les opérations suivantes :

zfs load-key partage
zfs mount -a
service samba_server restart

Le système vous demandera la phrase de passe du pool chiffré lors de l'exécution de zfs load-key.


Maintenance : Scrub ZFS

Pour garantir l'intégrité des données sur le long terme, il est essentiel de planifier des scrubs réguliers du pool ZFS.

Lancer un scrub manuel

Effectuez un premier scrub pour vérifier l'état du pool :

zpool scrub partage
zpool status partage

Planifier les scrubs automatiques

Configurez le système pour effectuer un scrub tous les 35 jours :

sysrc -f /etc/periodic.conf daily_scrub_zfs_enable="YES"

Conclusion

Vous disposez maintenant d'un serveur Samba sécurisé sur FreeBSD 15.0 avec un stockage ZFS en miroir chiffré. Cette configuration offre plusieurs avantages :



↑ Haut de page