Documentation technique complète pour monter un NAS sous Ubuntu Server avec ZFS, Samba et Cockpit.
Avant toute chose, mettez à jour votre système Ubuntu Server pour disposer des derniers paquets et correctifs de sécurité.
sudo apt update && sudo apt upgrade -y
On crée un groupe media qui sera utilisé pour gérer les droits d'accès aux partages réseau.
sudo groupadd media
Ajoutez votre utilisateur (ici toto) au groupe media pour qu'il puisse accéder aux partages.
sudo usermod -aG media toto
toto par votre nom d'utilisateur réel. La modification prendra effet à la prochaine connexion.Avant de créer le pool ZFS, identifiez les identifiants stables de vos disques. La commande ci-dessous liste tous les disques avec leurs ID persistants.
ls -l /dev/disk/by-id/
ata-WD_Red_1234...). Ne prenez pas les partitions qui finissent par -part1, -part2, etc.ZFS est un système de fichiers avancé offrant intégrité des données, snapshots et gestion RAID logicielle (RAIDZ). On installe les outils nécessaires.
sudo apt install zfsutils-linux -y
On crée un pool RAIDZ avec vos disques. RAIDZ (équivalent RAID-5) tolère la perte d'un disque. Adaptez les IDs de disques à votre configuration.
# Remplacez les IDs par ceux récupérés à l'étape 4
sudo zpool create -f tank raidz \
/dev/disk/by-id/ata-Disque1 \
/dev/disk/by-id/ata-Disque2 \
/dev/disk/by-id/ata-Disque3
Après création, vérifiez que le pool est en bonne santé et que tous les disques sont bien détectés.
sudo zpool status tank
sudo zpool list
ONLINE pour le pool et chacun des disques. Le pool est automatiquement monté dans /tank.Les datasets ZFS sont des volumes logiques au sein du pool. Voici un exemple avec trois dossiers partagés :
Fichiers personnels privés
Films et vidéos partagés
Séries TV partagées
sudo zfs create tank/documents
sudo zfs create tank/videos
sudo zfs create tank/series
On attribue les droits d'accès corrects sur les dossiers pour que les membres du groupe media puissent lire et écrire.
# Propriétaire et groupe
sudo chown -R toto:media /tank/videos
sudo chown -R toto:media /tank/series
sudo chown -R toto:toto /tank/documents
# Permissions rwxrwxr-x
sudo chmod 775 /tank/videos
sudo chmod 775 /tank/series
sudo chmod 700 /tank/documents
# Les nouveaux fichiers hériteront du groupe media
sudo chmod g+s /tank/videos
sudo chmod g+s /tank/series
Samba permet le partage réseau compatible Windows et macOS. On l'installe, on édite sa configuration, puis on crée un mot de passe dédié.
Installation :
sudo apt install samba -y
Éditer la configuration Samba :
sudo nano /etc/samba/smb.conf
smb.conf. Exemple minimal pour partager /tank/videos :[videos]
path = /tank/videos
read only = no
valid users = @media
force group = @media
create mask = 0775
directory mask = 0775
[series]
path = /tank/videos
read only = no
valid users = @media
force group = @media
create mask = 0775
directory mask = 0775
[document]
path = /tank/documents
read only = no
valid users = @Votre utilisateur
create mask = 0700
directory mask = 0700
Créer le mot de passe Samba :
sudo smbpasswd -a toto
Redémarrer Samba :
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
Cockpit est une interface web d'administration pour votre serveur. Elle permet de surveiller les ressources, gérer les services et les disques via un navigateur.
sudo apt install cockpit cockpit-storaged -y
sudo systemctl enable --now cockpit.socket
https://<IP-du-serveur>:9090. Connectez-vous avec vos identifiants système.On sécurise le serveur en n'autorisant que le trafic réseau strictement nécessaire. UFW est l'outil idéal pour Ubuntu.
# Politique par défaut
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH (accès distant)
sudo ufw allow ssh
# Samba (partage réseau)
sudo ufw allow Samba
# Cockpit (interface web admin)
sudo ufw allow 9090/tcp
Activer le pare-feu :
sudo ufw enable
sudo ufw status verbose
\\<IP>\videos et gérez vos disques via Cockpit sur le port 9090.