{{tag>tutoriel}} ====== 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 (**N**etwork **A**ttached **S**torage = 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 [[tutoriel:disque:raid:start]] 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 ntfsprogsSi 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) :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 : ... ####### Authentication ####### security = user * Vérifiez ces réglages, corrigez-les sinon : #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** : ... [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** : ... [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 : ... [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 definitionsS'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 ===== * **(fr)** [[https://raspberry-pi.fr/raspberry-pi-nas-samba/]] * **(fr)** [[https://www.inpact-hardware.com/article/1013/transformez-votre-raspberry-pi-4-en-nas]] * **(en)** [[https://www.ricmedia.com/build-raspberry-pi3-raid-nas-server/|Build a Raspberry Pi RAID NAS Server – [UPDATED 2020]]] * **(en)** [[https://magpi.raspberrypi.org/articles/build-a-raspberry-pi-nas|Build a Raspberry Pi NAS]] * **(en)** [[https://www.stewright.me/2017/08/create-raid-volume-raspberry-pi/|Create a RAID volume on Raspberry Pi]] * **(en)** [[https://elinux.org/R-Pi_NAS]] ---- //Basé sur << [[https://www.ricmedia.com/build-raspberry-pi3-raid-nas-server/|Build a Raspberry Pi RAID NAS Server – [UPDATED 2020]]] >> par Richie.//