Raspberry – Un NAS ou serveur de Stockage en Réseau

542 affichages

Besoin de créer un système de stockage auquel vous pourriez accéder de votre terminal IOS, OSX, Windows, Android… de n’importes quelles machines de votre réseau local ?
J’ai la solution à votre problème. « Si tu as à un Raspberry, tu as tout compris 😛  »

De la même manière que la mise en place d’une borne Airplay, les NAS ou Network Attached Storage, Serveur de Stockage en Réseau en français) peuvent facilement grimper au niveau tarif. Mais ils restent néanmoins importants pour permettre du stockage et partage personnelLe ou de la sauvegarde. Notre ami le Raspberry Pi, nano-ordinateur à tout faire, peut tout à fait jouer ce rôle.

Voici donc comment créer un NAS, à l’aide du Raspberry Pi et du logiciel Samba.

Avant tout, sachez qu’avant chaque publication de tutoriel que je vous propose, je réinitialise ma carte SD entièrement pour avoir une base propre. Donc en théorie, si vous suivez pas à pas les informations communiquées, le résultat doit être satisfaisant. Dans le cas où vous rencontrez des difficultés, n’hésitez pas à me le faire savoir dans la section « commentaires ».

De quoi avons-nous besoin ?



  • Un raspberry fonctionnel, c’est la base,

  • Une ou plusieurs sources de stockage comme une clef USB, ou mieux, un disque dur, de préférence alimenté sur secteur.

C’est tou bon ? Alors on y go

Etape 1 : création des dossiers de partages sans périphériques externes

Comme d’habitude, après s’être connecté sur le Raspberry soi en SSH ou directement en local avec un clavier et une plage braille pour qui c’est nécessaire, on commence par mettre à jour son système :
sudo apt update
sudo apt upgrade
On répond « O » pour confirmer la mise à jour des paquets proposés.

On crée les dossiers auxquels on pourra avoir accès, et on définit les autorisations
sudo mkdir /home/partage
sudo mkdir /home/partage/public
sudo chown -R root:users /home/partage/public
sudo chmod -R ug=rwx,o=rx /home/partage/public

Etape 2 : Ajout de dossiers partagés avec des périphériques externes

Dans l’état actuel, seuls les dossiers créés sur le Raspberry seront accessibles sur votre réseau local. Le système du raspberry étant installé sur une carte SD, la mémoire de stockage est, de ce fait, relativement limité.
Nous allons donc voir comment ajouter un espace plus grand à votre NAS, en y intégrant un disque dur ou une clef connectés en USB. Si toutefois, vous ne souhaitez pas ajouter de périphériques, sautez cette étape.

Les manipulations suivantes sont à réaliser pour chaque périphérique de stockage que vous souhaitez intégrer à votre système partagé. Surtout, ne branchez pas tous vos périphériques en même temps, ce serait difficile de s’y retrouver.

On branche notre Clef USB de 32GO par exemple, sur notre Raspberry. La première chose à faire c’est d’obtenir le nom qui a été attribué au matériel que nous venons de connecter. On tape la commande :
dmesg

Si c’est la première fois que vous connectez un périphérique de stockage, le nom attribué à notre clef USB est « sda1 ». Ensuite chaque périphérique branché sera incrémenté comme suit : « sdb1 », « sdc1 », le chiffre correspondant au numéro de partition sur votre périphérique. Par exemple, si votre deuxième disque dur possède 2 partitions, l’identification se fera comme suit : « sdb1 » et « sdb2 ».

Attention, votre périphérique doit être formaté avec un système de fichier Linux (ext3, ext4, etc.). Si ce n’est pas le cas, vous pouvez le formater en utilisant les commandes suivantes (en remplaçant « sda1 » par le nom de votre périphérique correspondant.
umount /dev/sda1
sudo mkfs.ext4 /dev/sda1
On répond « O » pour lancer le formatage… Et on attend quelques minutes. Le temps est plus ou moins long selon la taille de votre clef USB ou de votre disque dur.

On crée un répertoire dans lequel apparaîtra les données de notre Clef USB.
sudo mkdir /home/partage/ClefUSB

On monte le périphérique dans ce dossier.
sudo mount /dev/sda1 /home/partage/ClefUSB

On lui donne les bonnes permissions de lecture et écriture.
sudo chown -R root:users /home/partage/ClefUSB
sudo chmod -R ug=rwx,o=rx /home/partage/ClefUSB

On recommence cette étape si on souhaite partager un autre disque ou une autre clef USB, en créant bien évidemment un autre répertoire.

Etape 3 : Monter les périphériques au démarrage du Raspberry

Dans l’état actuel des choses, tout se présente bien… Sauf que si vous redémarrez votre Raspberry, les périphériques externes ne seront plus accessibles. Vous pourriez vous reconnecter en SSH et remettre en place vos périphérique, un par un… Mais bon, pas cool ça… Pour palier à ce désagrément, on va éditer le fichier « fstab » avec précautions
sudo nano /etc/fstab

Pour chaque clef USB ou disque dur que nous venons de mettre en place, rajoutez une ligne pour chaque périphérique en fin de ce fichier en veillant à ne pas vous tromper sur le nom du périphérique et le nom du dossier dans lequel il doit être monté.
/dev/sda1 /home/partage/ClefUSB auto noatime,nofail 0 0
On ferme et on sauvegarde le fichier avec CTRL+X, on répond « O » pour confirmer l’enregistrement, et on valide par « ENTER » sur le nom du fichier.

On redémarre le Raspberry pour voir ?
sudo reboot

Etape 4 : Installation de Samba

On tente de se reconnecter sur notre nano-ordinateur, si la connexion se fait bien, c’est bon… Si vous n’arrivez pas à vous connecter c’est que le Raspberry n’a pas pu démarrer correctement parce que vous avez fait une erreur dans votre fichier « fstab ». Bah oui, je vous avais dit d’être prudent hein !!! 😛

Mais vous n’avez pas fait d’erreurs, n’est-ce pas ? Donc on peut poursuivre en installant Samba
sudo apt install samba samba-common-bin
On confirme par « O » puis « ENTER » pour installer le nouveau paquet et ses dépendances.

On édite le fichier de configuration
sudo nano /etc/samba/smb.conf

Pour vous simplifier le travail, voici mon fichier samba.conf
Pour information, les lignes commençant par un dièse # sont des instructions de type commentaire, ça signifie qu’elles ne seront pas interprétées.
Celui-ci est fonctionnel, mais probablement pas adapté à votre utilisation, du fait que j’ai créé ces partages juste dans le but de vous montrer le fonctionnement du bidule 😛 Modifiez le à votre convenance.

##Debut du fichier##
#Configuration Générale

[global]
#Groupe de Travail
# Util surtout sur Windows
workgroup = Home
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d

#Authentification
#La ligne suivante permet de mettre en place une identification
#par utilisateur et mot de passe
security = user

server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
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

#Définition de Partage
#Je vais commenter toutes les lignes
#afin que vous puissiez adapter cette configuration
#a la vôtre
#Cette première section [homes] ne doit pas être modifier.
#Elle va permettre de partager un espace privé pour l’utilisateur
#encours

#Nom du partage
[homes]

#Description du partage
comment = Home Directories

#Permet de masquer le nom du répertoire tant que le bon utilisateur n’est pas connecté
browseable = No

#Permet de donner l’autorisation d’écriture dans le dossier
read only = No

#Les trois lignes suivantes concernes la sécurité et
#les droits d’accès.
create mask = 0700
directory mask = 0700
valid users = %S

#La deuxième section [public] porte son nom
#Elle va permettre de partager un dossier public

#Nom d’affichage (Sans espace
#Ni caractères spéciaux
[public]

#Description du partage
comment= Stockage public

#Répertoire de partage
path = /home/partage/public

#Droit d’accès
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no

#Voici un partage pour la clef USB

#Nom d’affichage
[ClefUSB]

#Description du partage
comment= Clef 32GO

#Répertoire de partage
path = /home/partage/ClefUSB

#Droit d’accès
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no

##Fin du Fichier##

C’est bon, vous avez copier-coller mon fichier ? Bandes de fainéants !

N’oubliez pas de le sauvegarder.

On redémarre le service Samba :
sudo /etc/init.d/samba restart

Et voilà, notre système de partage est opérationnel. Il nous reste néanmoins une procédure à réaliser, celle de créer un ou plusieurs comptes utilisateur qui pourront se connecter au système de partage. Bah oui 😛
sudo smbpasswd -a manu
sachant que l’utilisateur « Manu » a déjà été ajouté comme utilisateur du système. Si ce n’est pas le cas, Samba vous renverra une erreur et l’utilisateur ne sera pas ajouté au serveur NAS.

Il nous est demandé de saisir un mot de passe. On le fait bien sûr 😀
On nous demande de confirmer notre mot de passe. On s’exécute.

C’est terminé 🙂

Conclusion

Nous possédons désormais un NAS à moins de 80 euros (sans les disques de stockage bien sûr), qu’on a créé nous même !!!

On est super content, on va aller boire un verre d’Orangina pour fêter ça 😀

Les dossiers ou répertoires créés dans ce tutoriels peuvent tout à fait être changés. Ensuite, c’est à vous d’adapter la configuration selon vos exigence.

N’hésitez pas à me faire pare dans la section « commentaires » de vos impressions, de vos réussites ou de vos échecs.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *