Tuto détaillant la mise en place d'une réplication distante de vos données sensibles
1) Contexte :
Vous cherchez un moyen de sauvegarder les photos de vos mioches, vidéos de famille, etc... bref ce qui n'a pas de prix à vos yeux et qui ne pourra pas être re-téléchargé sur vos trackers préférés? sans avoir à confier vos données à un tiers et payer du stockage en ligne?
Avec ce tuto on va voir que pour un prix très raisonnable, vous aller mettre en place un système plutôt robuste.
Il vous faut en prérequis une machine source sous linux avec rsync d'installé, ça peut très bien être un autre raspberry pi...
2) Liste des courses :
- Raspberry Pi B, B+, 1 ou 2 peu importe, c'est pas la puissance qui compte ici
- Carte micro SD 8Go ou plus, pour l'OS et un partage local (voir §4.4.3)
- Du stockage : HDD usb 2"5 ou une clé usb, ou un HDD 3"5 externe et son alimentation
- Chargeur Secteur Mural Dual Ports USB
- Câble USB 2.0 Dual Power - Type A Mâle x 2 (20cm) / Mini-B Mâle - 0,5m (en cas de 2"5 gourmand)
liste de courses |
3) Préparation de la carte SD :
Il existe plusieurs logiciels pour faire ceci, mais j'ai une préférence pour Windiskimager32 (sous windows)
NB : la carte SD n'a pas besoin d'être performante, pas de classe 10 etc vous pouvez recycler une vieille carte...
Une fois la carte préparée, on la met dans le rasp, on le branche et vous ouvrez une session pour passer à la configuration (soit en local dans un terminal soit en ssh.
4) Configuration du Raspberry "Dataguard"
4.1) Création d'un user dédié et attribution du sudo
Pour sécuriser tout ça, on va changer d'utilisateur en créant notre propre compte dédié "micougnou"pi@raspberrypi / $ sudo adduser micougnou
On vérifie la création avec
pi@raspberrypi / $cat /etc/passwd
[...]
micougnou:x:1001:1001:,,,:/home/micougnou:/bin/bash
Maintenant qu'il est bien créé, on lui donne les droits d'admin (sudo) en modifiant le fichier sudoers
pi@raspberrypi / $ sudo vi /etc/sudoers
dans la section # User privilege specification on rajoute pour notre nouveau compte :
micougnou ALL=(ALL:ALL) ALLsécurité : modification de configuration ssh pour interdire l'accès root
on va éditer le fichier /etc/ssh/sshd.config et on va modifier la ligne :
PermitRootLogin without-password en
PermitRootLogin no
sécurité : installation de fail2ban
pi@raspberrypi / $ sudo apt-get install fail2ban
sécurité : modification du password par défaut du raspberry avec passwd
pour faciliter l'automatisation de la réplication, on fait un partage de clés ssh.
Si vous ne savez pas ce que c'est, ou que vous n'en avez pas généré, je vous renvoi vers cet article (voir §3.2)
Lancer à partir de la machine source :
micougnou@srv_source / $ ssh-copy-id -i ~/.ssh/id_rsa.pub micougnou@ip_du_rasp_dg
4.2) Partie stockage
4.2.1 création d'un point de montage pour les données répliquées
on crée le répertoire Dataguard à la racine (vous pouvez le nommer comme bon vous semble) :micougnou@raspberrypi / $ mkdir /Dataguard
4.2.2 détection du HDD
On va voir si le disque dur est bien reconnu par le Pi :micougnou@raspberrypi / $ sudo fdisk -l Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x44fdfe06 Device Boot Start End Sectors Size Id Type /dev/sda1 63 625137344 625137282 298.1G 7 HPFS/NTFS/exFAT
Si vous ne voyez rien c'est peut-être lié à un manque de puissance sur l'alimentation USB de votre HDD... c'est pour cette raison que dans la liste des courses j'ai mis un câble double USB ou un HUB USB alimenté!
4.2.3 récupération de son UUID :
C'est l'identifiant unique du disque dur, dans la cas d'un disque USB ca permet d'éviter de tout casser si vous rajoutez un autre disque par exemple...micougnou@raspberrypi / $ sudo blkid /dev/mmcblk0: PTUUID="ba2edfb9" PTTYPE="dos" /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="74BD-74CF" TYPE="vfat" PARTUUID="ba2edfb9-01" /dev/mmcblk0p2: UUID="ec2aa3d2-eee7-454e-8260-d145df5ddcba" TYPE="ext4" PARTUUID="ba2edfb9-02" /dev/sda1: LABEL="My Passport" UUID="52F2-18EA" TYPE="exfat" PARTUUID="44fdfe06-01"
Notez qu'on récupère aussi le format du disque, ici exfat.
4.2.4 installation de exfat-fuse :
Le format exFat n'est pas supporté par défaut dans Raspbian, il faut installer le paquet exfat-fuse :
micougnou@raspberrypi / $ sudo apt-get install exfat-fuse
4.2.5 création du point de montage dans la fstab
Ceci va permettre le montage automatique du disque dur après chaque redémarragemicougnou@raspberrypi / $ sudo vi /etc/fstabet y rajouter
#Stockage Sauvegarde MyPassport UUID=52F2-18EA /Dataguard extfat defaults,uid=1001,gid=1001 0 0
On retrouve via mon superbe code couleur les différentes informations que l'ont a récupéré jusqu'à présent : uuid, point de montage, format, utilisateur et groupe..
4.2.6 montage immédiat
On va pas attendre le prochain redémarrage pour tester tout ça, alors on force le montage :micougnou@raspberrypi / $ sudo mount -a FUSE exfat 1.1.0
4.2.7 vérification
micougnou@raspberrypi / $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 3.9G 3.1G 561M 85% / devtmpfs 214M 0 214M 0% /dev tmpfs 218M 0 218M 0% /dev/shm tmpfs 218M 4.7M 213M 3% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 218M 0 218M 0% /sys/fs/cgroup /dev/mmcblk0p1 56M 20M 37M 36% /boot tmpfs 44M 0 44M 0% /run/user/1000 tmpfs 44M 0 44M 0% /run/user/1001 /dev/sda1 299G 13M 299G 1% /Dataguard
C'est OK!
4.3) Initialisation de la réplique
Maintenant qu'on a un espace de stockage tout nickel, on va initialiser une première réplique.- Ceci va nous permettre de valiser que tout fonctionne
- Ceci prendra moins de temps sur le réseau local qu'en passant par votre adsl/fibre
rsync -auv --delete /votre_repertoire_source user_pi@ip_pi:/Dataguard
Le transfert se fait sur le réseau local, pas besoin d'activer la compression
4.4) Partie Partage
Le petit bonus qui va faire passer le pilule à vos parents qui commençaient déjà à râler :
Daron 1 : "oui tu comprends, avoir un ordinateur allumé h24 ça augmente la facture d’électricité"
(ça consomme moins que ta box TV en veille mais bon... admettons)
Moi : Oui mais regarde quand tu allumeras ton ordinateur à toi, il y aura un répertoire dans lequel tu auras quasi en temps réel toutes les photos de ton petit fils/fille!
Daron 1 et 2 (en coeur) : Mais c'est génial!
4.4.1 installation de samba
Hop, promesse tenue, on installe samba avec :micougnou@raspberrypi / $ sudo apt-get install samba
4.4.2 configuration de samba
L'idée c'est de partager uniquement ce que vous voulez, par exemple :
- les photos de l'enfant : oui
- les photos de vos soirées à la fistinière : non
on édite le fichier /etc/samba/smb.conf et on rajoute le pavé suivant :
[Photos] comment = Photos de famille browsable = yes path = /Dataguard/le_repertoire_en_question public = yes writable = no guest ok = yes
On veut partager mais en lecture seule, n'oubliez pas que c'est votre unique sauvegarde en cas de cataclysme chez vous!
NB : vous pouvez dupliquer le pavé autant de répertoires nécessaires...
4.4.3 Le bonus
Quitte à avoir une machine à distance pour pousser des données, pourquoi ne pas avoir aussi de quoi en récupérer?Vous avez déjà du rencontrer le cas où votre famille adorée a une vidéo de 5min à vous envoyer mais qui passe pas par gmail ou autre... et les clés USB envoyées par la poste n'arrivent quasiment jamais.
donc là on va créer un répertoire de dépôt sur lequel n'importe qui aura les droits d'écriture, et nous on pourra récupérer le contenu en SFTP.
/!\ Attention, ne créez pas de partage dans /Dataguard, sous peine de le voir écrasé lors de la prochaine réplique...
on va le créer dans le home et donner tous les droits :
micougnou@raspberrypi / $ mkdir /home/micougnou/la_poste micougnou@raspberrypi / $ chmod 777 /home/micougnou/la_poste
et on rajoute dans le smb.conf :
[La Poste] comment = dépot de fichiers pour partage browsable = yes path = /home/micougnou/la_poste public = yes writable = yes guest ok = yes
on redémarre pour prise en compte :
micougnou@raspberrypi / $ sudo /etc/init.d/smbd restart
5) Mise en place de la réplication automatique
C'est le grand jour, vous êtes chez vos parents, votre petit montage à la main et vous aimeriez le mettre en place.
Il va falloir faire quelques actions pour ça :
On va commencer par configurer la box ADSL :
- Dans la section DHCP, attribuez une ip fixe à votre raspberry, par exemple 192.168.0.2
- Ensuite redirigez un port externe au choix, par exemple le 1789 vers le port 22 de l'ip choisie à l'étape précédente
explication : des robots scannent le net constamment pour s'infiltrer, le port 22 étant connu on ne l'ouvre pas à l'externe, on choisi un port facile à retenir pour nous (allons enfants de la patri-i-e) mais assez exotique pour un "robot". Cela permet d’éviter quelques attaques.... mais pas toutes biensûr!
Sur votre serveur chez vous, vous pouvez désormais lancer un rsync pour vérifier. Attention, vu que maintenant nous sommes à distance, pensez à activer l'option z pour la compression :
rsync -auvz --delete /votre_repertoire_source user_pi@ip_pi:/Dataguard
Si cela a fonctionné, il reste plus qu'à ordonnancé tout ça via la crontab :
sudo crontab -e
et vous ajoutez la ligne suivante :0 0 * * 1 micougnou rsync -auvz --delete /votre_repertoire_source user_pi@ip_pi:/Dataguard
Ainsi tous les dimanches soir à minuit, la réplication va se lancer avec le user "micougnou"
6) Divers
Pour faciliter la vie de vos darons, vous pouvez faire des montages de lecteur réseau sur leurs PC, ça sera encore plus transparent pour eux.
De plus, si le raspberry pi est pas loin de la TV, vous pouvez faire une extension de la plateforme en installant Kodi, et vous aurez là un vrai petit médiacenter!
0 commentaires :
Enregistrer un commentaire