Sauvegarde Proxmox via SSHFS sur Synology

Bon!

Ca fait un bail que j’ai pas écrit d’articles, pourtant je me suis heurté à un nombre certains de merdes ces derniers mois… manque de motivation, manque de temps ou les deux, j’ai laissé un peu le blog en stand by, bref!

Le besoin du jour est le suivant:

Sauvegarder un serveur Proxmox hébergé en datacenter sur un NAS Synology via SSHFS.

On va donc commencer par activer SSH et SFTP dans les paramètres du Synology :

Pour SSH c’est dans Panneau de conf > Terminal & Snmp, je recommande plus que fortement d’utiliser un autre port que le 22…

ssh

Pour le SFTP dans Panneau de conf > Services de fichiers (utiliser le même numéro de port que précédemment) :

sftp

Ensuite on va activer la création des Home Directory des utilisateurs (pour stocker la clef publique SSH du serveur proxmox), toujours dans panneau de conf > Utilisateurs > Avancés :

homedir

On créé ensuite un dossier partagé, ici je vais l’appeler simplement « Backup », puis on créé on nouvel utilisateur avec des droit R/W sur le dossier partagé :

droits

Si on teste on constate que l’on ne peut pas se connecter en SSH avec le compte de backup que l’on à créé.

On va donc se connecter en root (même mot de passe que l’admin) et aller lister le fichier /etc/passwd

xxxxx_Backup> cat /etc/passwd
admin:x:1024:100:System default user:/var/services/homes/admin:/bin/sh
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
avahi:x:84:84:Avahi mDNS daemon:/noexist:/bin/false
dovecot:x:143:143:Dovecot User:/nonexist:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
userbackup:x:1026:100::/var/services/homes/userbackup:/sbin/nologin
guest:x:1025:100:Guest:/nonexist:/sbin/nologin
http:x:1023:1023:http:/var/services/web:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mysql:x:66:66:MariaDB User:/var/services/mysql:/bin/false
nobody:x:99:99:nobody:/:/bin/false
ntp:x:87:87:Network Time Protocol:/var/lib/ntp:/sbin/nologin
postfix:x:125:125:Postfix User:/nonexist:/sbin/nologin
postgres:x:55:55:PostgreSQL User:/var/services/pgsql:/bin/sh
root:x:0:0:root:/root:/bin/ash
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
spamfilter:x:783:99:Spamassassin User:/var/spool/postfix:/sbin/nologin

Il faut modifier la chaîne suivante,  l’utilisateur est ainsi autorisé à ouvrir un shell sur le système.

userbackup:x:1026:100::/var/services/homes/userbackup:/sbin/nologin

userbackup:x:1026:100::/var/services/homes/userbackup:/bin/sh

Pour la suite il faut soit que le serveur soit sur le même réseau ou bien créer les règles NAT/FW qui vont bien.

On se connecte  sur le serveur proxmox et on génère une clef RSA (sans passphrase sinon la connexion automatique va merder), puis on copie la clef publique sur le Synology.

ssh-keygen -t rsa
ssh-copy-id "user@server-p 55555"

Normalement à partir de la on peut se connecter sans mot de passe sur le synology de destination avec : « ssh user@server -p 55555 »

De retour sur le serveur proxmox, on installe sshfs si pas déjà fait :

apt-get update
apt-get install sshfs

On créé le point de montage de destination :

mkdir /mnt/synology

On va maintenant modifier le fichier /etc/fstab pour paramétrer le montage automatique du répertoire distant :

sshfs#user@server:/backup               /mnt/synology          fuse            port=55555,user,noatime,allow_other,nonempty,_netdev     0 0

Un petit « mount -a » et ça devrait être ok! On peut tester le bon fonctionnement en créant un fichier dans le répertoire de destination :

touch /mnt/synology/fic

En vérifiant dans le filestation, le fichier est bien là :

fic

Reste maintenant à rendre disponible le volume sous Proxmox, on va dans l’onglet storage et on ajoute un storage de type directory :

storage

On spécifie la le nom, et le chemin local du dossier ici « /mnt/synology » il ne faut pas non plus oublier de sélectionner ce que l’on veut stocker dessus, ici les backups!

Voilà, on peu donc très simplement et en utilisant l’outil de backup natif backuper ses VMs au chaud à la maison !

A la prochaine !

 

 

1 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.