Table des matières
Un serveur NAS sur un Raspberry Pi : partager un disque ou une clé USB sur le réseau
Ce didacticiel montre comment créer à l'aide de samba un serveur NAS (Network Attached Storage = serveur de stockage réseau) sur un Raspberry Pi pour y enregistrer des données en les rendant disponibles sur le réseau local. Ce NAS peut être installé sur :
-
un disque
-
une clé USB
-
ou un volume RAID construit selon la page Installer et gérer un volume RAID 1 logiciel
Ce stockage ne contiendra pas le système et sera juste destiné à recevoir des données.
Faites une sauvegarde : si le disque dur connecté au Raspberry Pi tombe en panne, les fichiers deviendront inaccessibles.
Pré-requis
-
un Raspberry Pi avec ses accessoires (alimentation, boîtier,carte µSD, Raspbian installé et configuré)
-
connecté au réseau local (câble Ethernet ou wi-fi)
-
un disque, une clé USB ou un volume RAID. Nous prendrons l'exemple de deux clés de 64 G en RAID 1
-
un Hub USB 3.0 alimenté.
Dans ce didacticiel, nous supposerons un volume RAID monté en /media/raid0
Première étape
SAMBA est un système de partage de fichiers Windows qui fonctionne sous Linux.
-
Mettez à jour Raspbian et installez samba,exfat-fuse,exfat-utils,dosfstools,ntfsprogs :
pi@framboise:~ $ sudo apt update pi@framboise:~ $ sudo apt upgrade pi@framboise4:~ $ sudo apt install samba exfat-fuse exfat-utils dosfstools ntfsprogs
Si des questions vous sont posées, sélectionnez la réponse par défaut.
Autres étapes
Création des utilisateurs samba
-
Ajoutez l'utilisateur samba pi et créez son mot de passe pour samba :
pi@framboise:~ $ sudo smbpasswd -a pi New SMB password: Retype new SMB password:
-
Ajoutez d'autres utilisateurs samba si vous voulez
Montage du disque
-
Créez un répertoire pour le montage et montez le disque (nommez le répertoire comme vous voulez, raid0 est un exemple) :
pi@framboise:~ $ sudo mkdir -p /media/raid0/ pi@framboise:~ $ sudo mount /dev/md0 /media/raid0 pi@framboise:~ $ lsblk -f /dev/md0 NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT md0 ext4 fe1b5cfe-7749-4834-904f-38c1032be9fe 54,4G 0% /media/raid0
-
Montage automatique au démarrage : éditez avec les droits d'administration le fichier /etc/fstab pour y ajouter la ligne (UUID lu sur le lsblk ci-dessus) :
- /etc/fstab
UUID=fe1b5cfe-7749-4834-904f-38c1032be9fe /media/raid0 auto noatime 0 0
-
Créez les répertoires pour le NAS :
pi@framboise:~ $ sudo mkdir -p /media/raid0/nas/{pi-public,pi-ro,pi-perso} pi@framboise:~ $ tree /media/raid0/nas/ /media/raid0/nas/ ├── pi-perso ├── pi-public └── pi-ro
-
pi-public : exemple de répertoire accessible en lecture/écriture à tous
-
pi-ro : exemple de répertoire accessible en lecture seule
-
pi-perso : exemple de répertoire privé, réservé à un utilisateur
Mise en place des partages samba
-
Sauvegardez le fichier de configuration SAMBA :
pi@framboise:~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
-
éditez avec les droits d'administration le fichier /etc/samba/smb.conf et ajoutez à la fin du fichier les lignes de chaque partage selon les modèles suivants.
-
Section [global] :
-
Pour demander une authentification à la connexion à votre NAS, au-dessous de la ligne “####### Authentication #######”, ajoutez :
- /etc/samba/smb.conf
... ####### Authentication ####### security = user
-
Vérifiez ces réglages, corrigez-les sinon :
- /etc/samba/smb.conf
#Configuration générale [global] # groupe de travail workgroup = WORKGROUP # identification de la machine (%h = hostname) server string = serveur %h # nom du NAS sur le réseau (par défaut, le hostname) netbios name = MONNAS # ne pas utiliser nslookups pour la résolution des noms NetBIOS. dns proxy = no # un fichier journal par machine log file = /var/log/samba/log.%m # taille maximum des fichiers journaux en Ko max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d # Authentication # gestion de la sécurité par utilisateur security = user # Active le cryptage du mot de passe encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes # autorise une synchronisation des mots de passe SMB avec ceux de la machine Unix unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes
partage public :- /etc/samba/smb.conf
... [pi-public] comment = Partage public path = /media/raid0/nas/pi-public read only = no locking = no guest ok = yes force user = pi create mask = 0777 directory mask = 0777
accès réservé à l’utilisateur toto :- /etc/samba/smb.conf
... [pi-perso] comment = Stockage privé de toto path = /media/raid0/nas/pi-perso guest ok = no username = toto only user = yes browseable = no read only = no writable = yes create mode = 0600 directory mask = 0700
lecture seule :- /etc/samba/smb.conf
... [pi-ro] comment = Lecture seule path = /media/raid0/nas/pi-ro read only = yes locking = no guest ok = yes force user = pi
Vérifiez que vos modifications fonctionnent :pi@framboise:~ $ testparm rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: The "syslog" option is deprecated Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: The "syslog" option is deprecated Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Processing section "[Public]" Processing section "[Films]" Processing section "[Perso]" Unknown parameter encountered: "username" Ignoring unknown parameter "username" Unknown parameter encountered: "only user" Ignoring unknown parameter "only user" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
S'il s'affiche “Loaded services file OK.”, c'est bon.
Redémarrez le service SAMBA :pi@framboise:~ $ sudo systemctl restart smbd.service
Connectez-vous à votre NAS
Conclusion
Problèmes connus
Voir aussi
-
-
-