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
- FreeBSD 15.0 : Système fraîchement installé
- Deux disques durs externes : Pour créer le miroir ZFS (da1 et da2)
- Accès root : Nécessaire pour toutes les opérations
- Connexion réseau : Pour télécharger les paquets
É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
- Pas d'accès invité : map to guest = never
- Protocole SMB 3.1.1 uniquement : Version la plus sécurisée
- Chiffrement obligatoire : smb encrypt = required
- Accès limité au groupe : valid users = @sambashare
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 :
- Redondance : Le miroir ZFS protège contre la panne d'un disque
- Chiffrement : Vos données sont protégées par AES-256-GCM
- Compression : LZ4 économise l'espace disque
- Sécurité réseau : SMB 3.1.1 avec chiffrement obligatoire
↑ Haut de page