{{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.//