**Ceci est une ancienne révision du document !**
Table des matières
Borgmatic
Mettre en place un serveur accessible en ssh
et disposant d'un espace de stockage qui pourra accueillir les sauvegardes de différentes machines appartenant à l'un ou l'autre compte.
NOMDUCOMPTE NOMDEMACHINE SERVEUR STORAGE PHRASEDEPASSE NOMDEFICHIER
on peut init depuis le client - mais il faut un user ssh sur le serveur - donc que le home de chaque user soit sur 1TB - que chaque user dispose d'une clé ssh copié sur le serveur
- quid si la brique est compromise … les backups aussi sont alors accessibles !
- mais dans l'autre sens aussi … si le serveur borg est compromis et qu'il peut prendre toute une brique, il y a un accès possible à « toutes les briques ».
- Donc c'est quand même mieux de ne pas demander au serveur d'aller chercher toutes les briques mais bien que chaque dispose d'un accès « personnel » au serveur.
- Donc il faudrait, dans la plus grande prudence … faire un backup du serveur de backup .
Serveur
Matériel
Avec l'outil que ptr à trouvé…
- Un plug PC 32bit 1 cœur, 512Mb de RAM
- Un boitier eSATA de 4 disques SATA
- 1 disque de 80GB pour le système
- 3 disques de 2TB pour le storage configurés en RAID5 avec mdadm et monté, par exemple, sur /media/STORAGE
### installation
apt install borgmatic
Groupe borg
groupadd borg
R/W sur storage pour le groupe borg
chown root:borg /media/STORAGE chmod 770 /media/STORAGE
Nouveau compte
adduser NOM_DU_COMPTE
ajout au groupe borg
C'est nécessaire pour avoir le droit d'aller dans /media/STORAGE
parce que c'est accessible uniquement à root
et aux membres du groupe borg
.
adduser NOM_DU_COMPTE borg
faire un dossier pour le compte
mkdir /media/STORAGE/NOM_DU_COMPTE
Client
Un « client » est une machine appartenant au NOMDUCOMPTE
En tant que root !
Faire une clé ecd25219 sans mot de passe
ssh-keygen -t ed25519 -C "" et ne pas mettre de phrase de passe
La copier sur le serveur borg
ssh-copy-id NOM_DU_COMPTE@SERVEUR_BORG
installer borgmatic
apt install borgmatic
Générer une config de base
generate-borgmatic-config
initier le repo sur le serveur
Sans chiffrement
Déconseillé.
Avec chiffrement
Voir https://borgbackup.readthedocs.io/en/stable/usage/init.html#borg-init
borg init --encryption=repokey-blake2 NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE Passe phrase : PHRASE_DE_PASSE
borg key export NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE NOM_DE_FICHIER cat NOM_DE_FICHIER BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 l2I7xiDA/5rOjlP8kUFpefFtlMgo0gVcG8NQzqlZu8LQ/yFE3y52ldLc692D9Hr/rmrF+t 9wo7gvy33BaQmh+MrmbabipuJfm6p+u0lso11OJOwoX/GBXghL1lpazQnlERU1PqZZfiDe ct6R1B67vdvQZXhVOuuYuLH9BNDMpq0eSc+9VHV3M/wFygmQtXfpcPTW2GekuQfSp9sk3D a2pSFZs+wOMSZrx432DG5l/dbMXZgwmYgsMuixR2b+d/dNjSheMPy8tju2qCWL+ChbAm9A oETPxAAOdBWUzxGgXPpnmuLxrjHf+XMpnt8E0fW6cqd/hdi2yuZJ0f7daZTVSM0KphHcP2 61JM+elY+xBFur8ibVekYllMC3Ot94DU/SYdAATxv8+X99tyB2UreGYxlwhCXUHNGba2XO WWaDVNciAc1xc3sAX1gBVihEpZV4EbTPWkNj9DD3sWks9O0OeqTHdnhMVD1fpkKw2GDhfs qb77w6DSwVZRnpgK58QwYDiTogukaGFzaNoAIIjMp6rDyIGoH+kxvLmOMq7w7/vzIL7PfO wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8 ueHXWCC+xBNhDNKndmVyc2lvbgE=
Et la coller dans le password store du NOMDUCOMPTE dans borgsurSERVEUR en tant que commentaire repokey-blake2 = “coller la clé”.
Effacer le fichier NOMDEFICHIER.
rm NOM_DE_FICHIER
Éditer la config
location: source_directories: - / repositories: - NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_MACHINE exclude_patterns: - /dev - /proc - /sys - /tmp - /run - /lost+found - /swapfile - /var/cache/apt - /mnt/mmcboot storage: encryption_passcommand: secret-tool lookup borg-repository repo-name encryption_passphrase: "PHRASE_DE_PASSE" compression: lz4 retention: keep_daily: 7 keep_monthly: 2
Borg info
Depuis le client
borg info NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_MACHINE Et donner la phrase de passe
Depuis le serveur
borg info /media/STORAGE/NOM_MACHINE Et donner la phrase de passe
Borg mount
Depuis le serveur
mkdir /tmp/test borg mount /media/STORAGE/NOM_MACHINE
Cron
nano /etc/cron.d/borgmatic Et mettre : 42 00 * * * root /usr/bin/borgmatic
Pour tator et mabrique
NOMDUCOMPTE = nom de la personne / assoss / autre qui reprendra de 1 à n NOMDEMACHINE pour les sauvegardes.
sur mon ordi
créer un password store
pass init --store NOM_DU_COMPTE
créer un mot de passe pour NOMDUCOMPTEsurmabrique dans misc
avec comme commentaire username
= NOMDUCOMPTE.
créer un mot de passe pour NOMDUCOMPTEsurtator dans misc
avec comme commentaire username
= NOMDUCOMPTE.
créer un mot de passe pour borgsurtator dans misc
avec comme commentaire repokey-blake2
= comming soon pour y coller plus tard la clé obtenue depuis la machine avec la commande borg key export NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE NOM_DE_FICHIER
.
sur mabrique
Créer un utilisateur pour NOMDUCOMPTE avec le mot de passe créé précédemment.
Ce NOMDUCOMPTE recevra la clé publique de root
sur une des machine NOM_DE_MACHINE
qui sera sauvegardée.
Modifier la configuration de ssh pour authoriser le saut ssh vers tator
. Yunohost gére la configuration, donc cela va lever un warning pour le diagnostic automatique de Yunohost qui signalera que la configuration a changé.
nano /etc/ssh/sshd_config … Match User admin,root,NOM_DU_COMPTE, AUTRE_NOM_DU_COMPTE, etc. AllowTcpForwarding yes AllowStreamLocalForwarding yes PermitUserRC yes … service ssh relaod
sur tator
Il faut créer un utilisateur NOMDUCOMPTE pour accueillir la clé de root
de chaque NOMDEMACHINE ce qui permettra un accès ssh sans mot de passe.
adduser --home /media/STORAGE/NOM_DU_COMPTE NOM_DU_COMPTE
Et changer les droits du home
pour ce NOMDUCOMPTE.
chmod 700 /media/STORAGE/NOM_DU_COMPTE
Et l'ajouter au groupe borg
pour avoir le droit de rentrer dans /media/STORAGE
qui contient de dossier home
du NOMDUCOMPTE.
adduser NOM_DU_COMPTE borg
sur une NOM_DE_MACHINE
Faire une clé ssh pour root
sans mot de passe.
root@NOM_DE_MACHINE:/root# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): -ne rien mettre- Enter same passphrase again: -ne rien mettre-
Ajouter tator
et mabrique
dans le /root/.ssh/config
pour le proxy jump ssh.
nano /root/.ssh/config Et mettre : Host tierce Hostname tierce.nohost.me User NOM_DU_COMPTE Host tator Hostname 192.168.1.9 User NOM_DU_COMPTE ProxyJump tierce
Copier la clé de root
sur ma brique.
ssh-copy-id tierce
Copier la clé de root
sur tator.
ssh-copy-id tator
Installer borgmatic
.
apt install borgmatic
Créer une config de base pour borgmatic.
generate-borgmatic-config
Vérifier ce qui est monté pour éventuellement l'exclure des backups puisque ce qui est backuper c'est /
et que parfois, pour les briques qui sont sur un disque SATA ou USB par exemple, la carte SD avec l'ancien système est montée sur /media/mmcboot
.
mount et/ou bien: ls /mnt et/ou bien: ls /media
Modifier le fichier de config de borgmatic.
nano /etc/borgmatic/config.yaml #voir exemple plus haut
Initier le repo borg pour NOMDEMACHINE.
borg init --encryption=repokey-blake2 NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_DE_MACHINE
Copier la clé de chiffrement dans le password store du client sur mon ordinateur.
borg key export NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE NOM_DE_FICHIER cat NOM_DE_FICHIER BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 l2I7xiDA/5rOjlP8kUFpefFtlMgo0gVcG8NQzqlZu8LQ/yFE3y52ldLc692D9Hr/rmrF+t 9wo7gvy33BaQmh+MrmbabipuJfm6p+u0lso11OJOwoX/GBXghL1lpazQnlERU1PqZZfiDe ct6R1B67vdvQZXhVOuuYuLH9BNDMpq0eSc+9VHV3M/wFygmQtXfpcPTW2GekuQfSp9sk3D a2pSFZs+wOMSZrx432DG5l/dbMXZgwmYgsMuixR2b+d/dNjSheMPy8tju2qCWL+ChbAm9A oETPxAAOdBWUzxGgXPpnmuLxrjHf+XMpnt8E0fW6cqd/hdi2yuZJ0f7daZTVSM0KphHcP2 61JM+elY+xBFur8ibVekYllMC3Ot94DU/SYdAATxv8+X99tyB2UreGYxlwhCXUHNGba2XO WWaDVNciAc1xc3sAX1gBVihEpZV4EbTPWkNj9DD3sWks9O0OeqTHdnhMVD1fpkKw2GDhfs qb77w6DSwVZRnpgK58QwYDiTogukaGFzaNoAIIjMp6rDyIGoH+kxvLmOMq7w7/vzIL7PfO wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8 ueHXWCC+xBNhDNKndmVyc2lvbgE= rm NOM_DE_FICHIER
Simuler une sauvegarde
borgmatic -n -v2
Planifier la sauvegarde.
nano /etc/cron.d/borgmatic et coller: 42 23 * * * root /usr/bin/borgmatic #ou 43 est la minute et 23 l'heure de début * * * étant chaque jour, chaque mois, chaque jour de la semaine