Ce tutoriel décrit comment mettre mettre en place un dépôt de sauvegarde sur un disque dur connecté à une box Internet (ici une freebox) afin de sauvegarder ses données depuis n'importe où (et idéalement ailleurs, peut-être chez la famille ou chez des ami·e·s).
Pour ce tutoriel nous utiliserons le wrapper resticprofile afin de nous faciliter l'utilisation de restic, et rclone pour nous connecter à la freebox.
Resticprofile est un outil qui s'utilise en ligne de commande, il est donc recommandé d'être à l'aise avec le terminal, ou au moins d'en connaître les rudiments.
Si ce n'est pas le cas mieux vaut commencer par essayer de vous former un minimum en consultant cette documentation, en particulier les chapitres concernant les commandes ls
, cd
, mkdir
, mv
, cp
, et rm
.
Free (et peut-être d'autres fournisseurs d'accès) propose de faire pointer un sous-domaine de .freeboxos.fr
vers les connexions de leurs clients. Cette fonctionnalité facilite l'accès à ses services auto-hébergés depuis n'importe où sur Internet : pas besoin de noter une adresse IP qui est susceptible de changer, et vous pourrez profiter d'un certificat TLS / RSA valide, le tout sans frais supplémentaire.
Pour l'activer rendez-vous sur l'interface de gestion de la freebox http://mafreebox.freebox.fr puis dans les Paramètres de la Freebox → Nom de domaine (voir si besoin cette documentation sur Univers Freebox).
Si votre fournisseur d'accès ne propose pas ce service, vous pouvez vous rabattre sur un DNS dynamique, mais il risque d'être plus compliqué d'installer un certificat valide.
Une fois le disque dur connecté à la freebox, on accède à la gestion de celle-ci en se rendant sur la page http://mafreebox.freebox.fr/.
Dans Paramètres de la Freebox (entrez votre mot de passe si nécessaire) cliquez sur FTP, activez le partage par FTP et renseignez un mot de passe extraordinairement complexe et long, sans mot du dictionnaire : ce sera la seule protection de vos données exposées sur Internet.
Activez ensuite l'accès à distance. En bas de la fenêtre est affichée l'URL de votre partage :
Votre serveur FTP sera accessible à distance surftpes://freebox@exemple.freeboxos.fr:1234
Notez ces informations :
freebox
est votre nom d'utilisateur.exemple.freeboxos.fr
est votre hôte.1234
est le numéro de port.Rclone va nous permettre de nous connecter au stockage de la Freebox depuis n'importe où.
Installez rclone et mettez-le à jour à sa dernière version :
sudo apt install rclone sudo rclone selfupdate
Créez un fichier de configuration ~/.config/rclone/rclone.conf
qui contiendra les informations de connexion :
[freebox] type = ftp host = exemple.freeboxos.fr user = freebox port = 1234 pass = hash_du_mot_de_passe explicit_tls = true
Adaptez évidemment ces informations avec celles recueillies au chapitre précédent !
exemple.freeboxos.fr
par votre hôte.1234
par votre numéro de port.hash_du_mot_de_passe
, entrez la commande suivante en remplaçant votre_mot_de_passe
par celui du chapitre précédent :rclone obscure 'votre_mot_de_passe'
Le retour de cette commande est votre hash. Conserver un espace au début de la commande (avant rclone
) permet d'éviter d'enregistrer votre mot de passe en clair dans votre historique.
À partir de maintenant on n'aura qu'à simplement utiliser l'identifiant freebox:
de rclone pour profiter de cette connexion à la freebox.
Vous pouvez vérifier que tout fonctionne bien en tapant
rclone ls freebox:
ou utiliser ncdu pour explorer le stockage de votre freebox :
rclone ncdu freebox:
Restic est le moteur de sauvegarde.
Installez-le et mettez-le aussi à jour à sa dernière version :
sudo apt install restic sudo restic self-update
On peut ensuite initier un dépôt restic sur la freebox :
restic -r rclone:freebox:/disque_dur/restic init
disque_dur
par le nom de votre stockage sur la freebox.
Cette commande créera un répertoire restic
à la racine du disque dur contenant votre dépôt restic (donc vos sauvegardes).
Resticprofile permet de simplifier l'usage de restic et d'automatiser facilement les sauvegardes.
Pour l'installer :
sudo apt install curl curl -LO https://raw.githubusercontent.com/creativeprojects/resticprofile/master/install.sh chmod +x install.sh sudo ./install.sh -b /usr/local/bin rm install.sh
On peut alors créer un fichier de configuration ~/.config/resticprofile/profiles.yaml
:
version: "1" default: repository: "rclone:freebox:/disque_dur/restic" password-file: "password.txt" backup: source: - "/home" exclude: - "/**/ImapMail/" - "/**/cache/" - "/**/.cache/" - "/**/cache2/" - "/**/storage/" schedule: '*-*-* 20:00:00' retention: keep-daily: 7 keep-weekly: 4 keep-monthly: 12 keep-yearly: "unlimited"
/disque_dur/
par le nom de votre stockage sur la freebox.source
du backup
) et ceux à exclure (exclude
) en fonction de vos besoins.schedule
, qui permet de programmer les sauvegardes automatiques (ici tous les jours à 20h). La syntaxe à utiliser est celle de systemd.time.
On peut définir le mot de passe en clair dans un fichier password.txt
:
echo "mot_de_passe_restic" > ~/.config/resticprofile/password.txt
Attention évidemment à garder ce fichier personnel et secret :
chmod 400 ~/.config/resticprofile/password.txt
À partir de là on peut utiliser la commande resticprofile
sans avoir besoin de préciser tous les arguments que requiert restic
ni le mot de passe (les sous-commandes restic sont aussi disponibles avec resticprofile
) :
resticprofile backup
resticprofile
resticprofile ls latest
pour lister les fichiers de la dernière sauvegarde.
schedule
:resticprofile schedule --all
resticprofile status
resticprofile mount /mnt/restic
(Ctrl
+ C
pour démonter)
Contributeur : krodelabestiole