Dans ce tutoriel, nous allons voir comment configurer rsync pour planifier des sauvegardes d’un serveur distant et permettre l’accès SSH vers votre NAS Synology en local.
Armez-vous de votre terminal préféré et lancez une session SSH, c’est parti !
Étape 1 : créer un nouvel utilisateur Synology
Afin de bien séparer les processus et privilèges, il vaut mieux créer un nouvel utilisateur Synology : cela permet de contrôler exactement ce à quoi il a accès.
Dans ce tutoriel, notre utilisateur s’appellera saveme.
Étape 2 : activer l’accès SFTP
Activez l’accès SFTP dans Diskstation > Control Panel > FTP > SFTP > Enable SFTP service. Vérifiez aussi que le port 22 (SSH) est bien ouvert dans votre routeur et firewall; et bien redirigé vers votre NAS.
Ensuite, ouvrez une session SSH sur votre NAS :
Entrez votre mot de passe, vous devriez être loggué. Si ce n’est pas le cas, vérifiez la configuration routeur/firewall du port 22.
Étape 3 : éditer le fichier passwd
Une fois que vous êtes identifié en SSH sur votre NAS, il vous faut éditer le fichier passwd
:
Allez à la dernière ligne, qui gère le nouvel utilisateur créé à l’étape 1. A la fin de cette ligne, remplacez :
par
Maintenant, on assigne un dossier de travail avec tous les droits nécessaires à notre utilisateur (qui s’appelle saveme). Au lieu de le mettre dans /homes, on va plutôt le mettre à la racine, bien au chaud, sous /volume1/backup
.
On donne accès au dossier :
Étape 4 : identification avec notre nouvel utilisateur
On s’identifie avec notre utilisateur saveme :
Si vous obtenez des messages d’erreur comme :
La première erreur est due à une erreur de permissions. Vérifiez que vous avez bien chowné le bon dossier. La seconde montre que vous avez oublié d’ajouter
à votre utilisateur dans l’étape 3.
Étape 5 : ajouter la clé SSH du NAS sur le serveur distant
On crée la clé en utilisant le chemin par défaut et on appuie juste sur “entrée” lorsqu’on nous demande un mot de passe de clé :
On copie la clé sur le serveur distant:
Essayez maintenant d’ouvrir une session SSH sur votre serveur distant depuis la session SSH du NAS : la session devrait s’ouvrir sans que vous n’ayez à entrer le mot de passe du compte.
Si vous obtenez une erreur de permission, voici les bonnes permissions à appliquer :
- le répertoire
.ssh
doit avoir un chmod 700, - la clé publique (fichier
.pub
) doit avoir un chmod 644, - la clé privée (
id_rsa
) doit avoir un chmod 600.
Voici donc les commandes à lancer pour attribuer les bonnes permissions sur le NAS:
Etape 6 : établir une structure et planifier les sauvegardes
Commençons par créer des dossiers dans notre répertoire backup
:
Passons maintenant aux essais, avec une commande de test qui ne copie rien (grâce à l’argument --dry-run
) :
Voilà ce que retourne la commande:
Si vous obtenez une erreur de ce style:
alors, c’est un problème de permission : vérifiez que le dossier local du NAS dans lequel vous voulez écrire est bien associé à l’utilisateur qui lance la commande rsync (saveme dans notre exemple pour le dossier backup).
Étape 7 : deux scripts BASH pour automatiser les sauvegardes
Si tout va bien, nous allons créer deux scripts BASH à la racine de notre dossier backup.
On commence par le fichier rsync.sh
:
et on y ajoute :
Cela nous permet de récupérer les fichiers du site et les bases de données SQL.
Ensuite, on crée le fichier snapshot.sh
:
et on y ajoute:
La première commande crée un fichier .tar du répertoire /www et le place dans le dossier snapshots. La seconde trouve les archives vieilles de plus de 120 jours et les supprime. Vous pouvez également ajouter d’autres commandes snapshot pour les données SQL.
Étape 8 : ajouter une tâche planifiée
Il ne vous reste plus qu’à ajouter les scripts dans un crontab pour planifier les sauvegardes. Vous pouvez vous rendre dans DiskStation > Panneau de configuration > Tâches Planifiées et ajouter une nouvelle tâche exécutée par l’utilisateur saveme et ajouter nos deux scripts:
Voilà, bonnes sauvegardes !