Table des matières

Sauvegardes automatiques avec Duplicati

Les sauvegardes, c’est le bien (y a qu’à voir cet article pour s’en rendre compte). Je possède un Raspberry Pi sur lequel tourne pas mal de truc, ainsi qu'un serveur dédié. Je vais mettre en place un système de sauvegarde automatique de mon Raspberry vers mon serveur. J'ai besoin d'un logiciel :

Duplicati coche toutes ces cases. On va installer la version beta qui est suffisamment stable pour une utilisation en prod.

Pour la suite de ce tuto, toutes les commandes doivent être lancées sur le Raspberry (machine sur laquelle sont présentes les données que l'on souhaite sauvegarder), sauf mention précisant de les lancer sur le serveur (machine sur laquelle seront stockées les données du Raspberry).

Dépendances

En plus des paquets demandés dans ce chapitre, il vous faudra également un serveur web configuré avec le proxy inverse activé ainsi que le SSL (Apache2 pour ma part), un client ssh et un nom de domaine (optionnel) sur le Raspberry et un serveur ssh sur le serveur de stockage des données. Je ne vais pas détailler cette partie.

Sur le Raspberry, lancez la commande suivant pour installer les dépendances requises :

sudo aptitude install mono-complete gtk-sharp2 libayatana-appindicator1

Installation de Duplicati 2 beta

Récupérez la version beta :

wget https://updates.duplicati.com/beta/duplicati_2.0.6.3-1_all.deb

Installez Duplicati :

sudo dpkg -i duplicati_2.0.6.3-1_all.deb

Lancez Duplicati afin de vérifier qu'aucune erreur ne remonte :

sudo systemctl start duplicati

Activez le lancement automatique au démarrage:

sudo systemctl enable duplicati

Configuration d’Apache2

Pour accéder à l'interface web, on va avoir besoin de créer un proxy inverse afin d'utiliser un sous-domaine (dont je ne traiterai pas ici la mise en place) qui va renvoyer vers l'interface web de Duplicati. Dans le reste du tuto, je vais utiliser le sous-domaine fictif duplicati.raspberry.fr. Si vous n'avez pas de nom de domaine, il vous suffit de rentrer dans votre navigateur adresse_ip_raspberry:8200 pour y accéder.

Pour info, pour activer la gestion du proxy inverse dans Apache2, lancez la commande suivante :

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Créez le fichier de configuration apache2 :

sudo nano /etc/apache2/sites-available/duplicati.raspberry.fr.conf

Votre fichier de configuration doit ressembler à ça :

<VirtualHost *:80>
 
        ServerName duplicati.raspberry.fr
 
        Redirect / https://duplicati.raspberry.fr/
 
</VirtualHost>
 
 
<VirtualHost *:443>
 
        ServerName duplicati.raspberry.fr
 
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/duplicati.access.log combined
        ErrorLog ${APACHE_LOG_DIR}/duplicati.error.log
 
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/raspberry.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/raspberry.fr/privkey.pem
        Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self'; media-src 'self'; child-src 'self'; object-src 'self'; form-action 'self'; img-src 'self' * data:"
 
        ProxyPass / http://localhost:8200/
        ProxyPassReverse / http://localhost:8200/
        AllowEncodedSlashes On
 
</VirtualHost>

Activez fichier de configuration :

sudo a2ensite duplicati.raspberry.fr.conf

Redémarrez Apache2

sudo systemctl restart apache2

Configuration accès SSH

Pour envoyer les données du Raspberry sur le serveur, on va passer par une connexion SSH utilisant une clé.

Commencez par créer la clé :

ssh-keygen -m PEM -t rsa -b 4096

Rentrez une phrase secrète lorsque c'est demandé.

Une fois la génération de clé terminée, affichez le contenu de clé publique :

cat .ssh/nomclé.pub

Copiez le contenu de la clé.

Connectez-vous au serveur sur lequel sera stocké les données du Raspberry et créez un utilisateur duplicati (vous pouvez changer le nom de l'utilisateur) :

sudo adduser duplicati

Connectez-vous avec cet utilisateur

sudo -i -u duplicati

Créez le fichier authorized_keys

mkdir .ssh
nano .ssh/authorized_keys

Collez-y le contenu de la clé publique et sauvegardez (CTRL + o)

Configuration de Duplicati

Accéder à l'interface web de Duplication et choisir un mot de passe

Dans Duplicati, cliquer sur Ajouter une sauvegarde

Choisissez le chiffrement AES-256 et entrez une phrase secrète (et ne l'oubliez pas), puis cliquez sur Suivant.

Choisir SFTP dans le type de stockage puis rentrer toutes les informations demandées (adresse du serveur de stockage, port SSH, etc). Le mot de passe est la phrase secrète de la clé SSH, pas le mot de passe de l'utilisateur duplicati.

Dans “Options avancées”, ajoutez l'option SSH-keyfile et indiquez le chemin de la clé SSH privée.

Cliquer sur Tester la connexion et validez la popup, ça va ajouter une option supplémentaire.

Cliquez sur suivant et sélectionnez les fichiers à sauvegarder.

Cliquez sur suivant et paramétrez le planning des sauvegardes.

Cliquez sur Suivant et choisissez la stratégie de sauvegarde (je vous conseille de choisir Rétention de sauvegarde intelligente).

Voila, vos données sont maintenant sauvegardées.