Rendez-vous sur Arrakiss
Le 08/10/2019 à 15:14 dans /Journal/2018/

Serveur de sauvegarde avec syncthing chez openbsd.amsterdam

Openbsd.amsterdam propose des machines virtuelles d'OpenBSD pour une somme de 60€/an, dont 10€ sont reversés à la fondation OpenBSD.

Outre le fait que je trouve l'idée géniale, puisqu'après tout ils utilisent OpenBSD, le projet m'a d'autant plus séduit qu'il n'utilise que des outils OpenBSD de base et rend public leur configuration.

Non seulement, ça permet à d'autres de reproduire le même schéma, mais en ce qui me concerne, ça m'a donné confiance dans leur service.

J'ai donc créqué et opté pour une VM, disposant désormais de 50G.

Ces derniers ne vont pas me servir à héberger un autre site ou un autre projet, l'auto-hébergement j'y tiens avec ses avantages et inconvénients (désolé visiteur pressé si tu dois attendre 1 ou 2 secondes avant de pouvoir me lire. N'oublie pas qu'il n'y a pas de pub ici 😇).

J'ai décidé de faire tourner une instance de syncthing. Ce dernier me permettra de sauvegarder dans un lieu hors de chez moi mes données les plus précieuses afin de les récupérer en cas d'incendie contre lequel mes backups sur disques durs externes ne pourront rien.

Me concernant, 50G ça sera trop, je veux bien les partager avec vous si vous voulez.

Après cette introduction un peu longue, je vais détailler comment mettre en place ce serveur de sauvegarde.

Démarches auprès d'openbsd.amsterdam

Afin de demander l'accès à une machine virtuelle, vous devez remplir ce formulaire. Dedans, indiquez notamment votre clé ssh qui vous servira à l'accès de votre VM :

ssh-keygen -t ed25519 -f ~/.ssh/votrecle -a 64

Copiez le contenu de la clé publique (.pub) dans le champ prévu à cet effet :

cat ~/.ssh/votrecle.pub

Quelques instants plus tard, vous devriez recevoir un message de Mischa (très sympathique, accessible et disponible au passage 😃) vous indiquant comment accéder à votre» machine virtuelle :

Hi Xavier,

Welcome to OpenBSD.Amsterdam!

Your IP: xx.xx.xx.xxx

You should be able to ssh into the machine.

Please check https://www.romanzolotarev.com/openbsd.amsterdam.html
It documents all the finishing touches. ;)

There is currently a known issue with connectivity where a VM might disappear.
We are working with the vmd/vmm developers to figure out what the problem is.
A "workaround" is to run a continious ping from within the VM.

Your username and ssh-key are also used to create an account on the host.
Connect to server3.openbsd.amsterdam on port xxxxx
Here you can use vmctl with start, stop and console.

Please add your hostname to the payment so I know it's yours.

Mischa

Et voilà, plus qu'à payer en bonnes gens honnêtes.

Installation de syncthing

La suite, ce n'est en rien différent d'une OpenBSD normale. Pensez à suivre les indications suite à la fraîche installation de votre VM, puis c'est parti pour installer syncthing.

Utilisation de syncthing

Afin de gérer les partages, j'affiche syncthing dans un navigateur après avoir créé un tunnel ssh :

ssh -N -L 9999:127.0.0.1:8384 utilisateur@xx.xx.xx.xx 

Bien sûr, vous adapterez cette commande selon l'IP de votre machine virtuelle.

Que faire avant d'envoyer un fichier ?

Bien que le protocole utilisé par syncthing soit robuste ;

bien qu'OpenBSD soit un système des plus sécurisés ;

bien que vos photos de vacances n'intéressent pas Pat-le-pirate ;

je vous recommande de chiffrer les fichiers que vous sauvegardez.

Le plus simple est d'utiliser l'outil gpg.

Quelques exemples :

À chaque fois, vous obtenez un fichier se terminant par .gpg.

Vous pourrez le déchiffrer avec la commande :

gpg ---output fichier-dechifre -decrypt lefichier.gpg 

Par conséquent, si vous voulez chiffrer un dossier complet avant de l'envoyer, le plus simple est sans doute d'en faire une archive :

tar cvzf archive.tgz dossier/
gpg -c archive.tgz
cp archive.tgz.gpg dossier_syncthing

Réalisation de la sauvegarde

Tout d'abord, repérez l'id du serveur de sauvegarde. C'est facile, il faut aller dans le menu “Actions” > “Afficher mon ID”.

syncthing id

Sur votre ordinateur, lancez syncthing puis ajoutez un nouvel appareil en bas :

syncthingappareil

Il faut copier l'ID du serveur de sauvegarde.

Ensuite, vous pouvez ajouter, toujours sur votre ordinateur, un nouveau partage. Pesnez juste à cocher de bien partager avec le serveur de sauvegarde.

syncthing1

Notez qu'il est possible de synchroniser avec plusieurs appareils (ça augmente le débit).

Peu de temps après, vous verrez sur le serveur une notification vous demandant si vous voulez bien accepter le nouveau partage.

syncthing alert

syncthing alert

Accéder à ses sauvegardes par http

Bien que syncthing fonctionne à peu près sous toutes les plateformes, je n'ai pas toujours envie de synchroniser l'ensemble de mes documents, seulement d'en récupérer un ou deux.

Pour cela, j'y accède via http.

Pour activer l'accès en http à vos documents, vous pouvez utiliser httpd. La seule contrainte est d'enregistrer les partages sous /var/www/htdocs, le chroot d'httpd. Par exemple, j'ai créé un partage dans /var/www/htdocs/syncthing/thuban.

mkdir -p /var/www/htdocs/syncthing/thuban
chown -R _syncthing:daemon /var/www/htdocs/syncthing

Dans le fichier /etc/httpd.conf, je précise donc :

location "/syncthing/*" {
    root { "/htdocs/syncthing", strip 1 }
    directory auto index
}

Lorsque j'ouvre dans un navigateur l'url http://ip-du-server/syncthing/thuban, je vois la liste de mes documents :

syncthing http

Il est bien entendu possible d'ajouter un mot de passe pour y accéder.