Gnuragist.es

Support Gnu/Linux

Outils pour utilisateurs

Outils du site


documentation:borg

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
documentation:borg [2021/03/26 15:31] – créée tiercedocumentation:borg [2021/04/14 17:53] (Version actuelle) – nom variable hgo
Ligne 3: Ligne 3:
 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. 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.
  
-NOM_DU_COMPTE +Les sauvegardes seront réalisées avec [borgmatic](https://torsion.org/borgmatic/) qui facilite la mise en place de [borg](https://borgbackup.readthedocs.io/en/stable/index.html).
-NOM_DE_MACHINE +
-SERVEUR +
-STORAGE +
-PHRASE_DE_PASSE +
-NOM_DE_FICHIER +
- +
-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 . +
  
 +```
 +NOM_DU_COMPTE   = Une personne ou une assoss
 +NOM_DE_MACHINE  = Une machine appartenant à NOM_DU_COMPTE
 +SERVEUR_BORG    = Le serveur qui accueillera les sauvegarder
 +STOCKAGE_BORG   = L'espace disque prévu pour les sauvegardes sur SERVEUR_BORG
 +PHRASE_DE_PASSE = La phrase de passe pour chiffrer et déchiffrer les sauvegardes d'une NOM_DE_MACHINE
 +CLE_SSH         = Chemin vers une clé privée SSH
 +```
  
 ## Serveur ## Serveur
  
-### Matériel+Le serveur peut-être un Debian récent disposant d'un accès `ssh`.  Merci de veiller à ce que `root` ne puisse pas se connecter directement et de mettre en place un utilisateur qui aura un accès par clé ssh //(ed25519 si possible ou RSA4096)// Cet utilisateur n'aura pas d'accès par mot de passe et n'aura pas le droit d'utiliser `sudo`.
  
-Avec l'outil que ptr à trouvé…+### Installation
  
-- Un plug PC 32bit 1 cœur, 512Mb de RAM +Borg est disponible dans les dépôts sur Debian.
-- 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+
  
 ``` ```
Ligne 38: Ligne 26:
 ``` ```
  
-### Groupe borg+### Créer un compte
  
-``` +Le dossier `homede chaque nouveau compte devrait se trouver sur `STORAGE`.
-groupadd borg +
-``` +
- +
-### R/W sur storage pour le groupe borg+
  
 ``` ```
-chown root:borg /media/STORAGE +adduser --home /media/STORAGE/NOM_DU_COMPTE NOM_DU_COMPTE
-chmod 770 /media/STORAGE+
 ``` ```
  
-### Nouveau compte+### R/W sur storage pour l'utilisateur uniquement
  
-``` +Pour limiter les accès au `STORAGE` de `NOM_DU_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 +chmod 700 /media/STORAGE/NOM_DU_COMPTE
-``` +
- +
-### faire un dossier pour le compte +
- +
-``` +
-mkdir /media/STORAGE/NOM_DU_COMPTE+
 ``` ```
  
-## Client+## Machine
  
-Un « client » est une machine appartenant au NOM_DU_COMPTE+Un `NOM_DU_COMPTE` peut avoir plusieurs `NOM_DE_MACHINE` virtuelles ou non dont les sauvegardes seraient envoyées sur `NOM_DU_COMPTE@SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_DE_MACHINE`.  Chacune de ces destinations /(repository ou repo)/ étant initiée avec son propre mot de passe et sa propre clé de chiffrement.
  
-En tant que root !+Depuis chaque `NOM_DE_MACHINE` c'est `root` qui se connectera sur `NOM_DE_COMPTE@SERVEUR_BORG` et il est donc nécessaire de générer une clé ssh /(ed25519 de préférence ou bien RSA 4096)* qui sera copiée sur le `SERVEUR_BORG` pour son `NOM_DE_COMPTE`.
  
 ### Faire une clé ecd25219 sans mot de passe ### Faire une clé ecd25219 sans mot de passe
Ligne 90: Ligne 61:
 ``` ```
  
-### installer borgmatic+### Configurer le client SSH 
 + 
 +Pour indiquer à SSH comment se connecter à `SERVEUR_BORG` 
 + 
 +``` 
 +# nano ~/.ssh/config 
 +Host SERVEUR_BORG 
 +User NOM_DU_COMPTE 
 +IdentityFile ~/.ssh/CLE_SSH 
 +PreferredAuthentications publickey,password 
 +``` 
 + 
 +### Installer borgmatic
  
 ``` ```
Ligne 102: Ligne 85:
 ``` ```
  
-### initier le repo sur le serveur+### Initier le repo sur le serveur
  
 #### Sans chiffrement #### Sans chiffrement
Ligne 110: Ligne 93:
 #### Avec chiffrement #### Avec chiffrement
  
-Voir https://borgbackup.readthedocs.io/en/stable/usage/init.html#borg-init+Voir [la documentation](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+borg init --encryption=repokey-blake2 SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE
 Passe phrase : PHRASE_DE_PASSE Passe phrase : PHRASE_DE_PASSE
 ``` ```
  
 ``` ```
-borg key export NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE NOM_DE_FICHIER +borg key export SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE /dev/stdout
-cat NOM_DE_FICHIER +
 BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250
 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9
Ligne 133: Ligne 115:
 ueHXWCC+xBNhDNKndmVyc2lvbgE= ueHXWCC+xBNhDNKndmVyc2lvbgE=
 ``` ```
-Et la coller dans le password store du NOM_DU_COMPTE dans borg_sur_SERVEUR en tant que commentaire repokey-blake2 = "coller la clé". +Et la coller dans le `password-storedu NOM_DU_COMPTE dans borg_sur_SERVEUR en tant que commentaire repokey-blake2 = "coller la clé".
- +
-Effacer le fichier NOM_DE_FICHIER. +
- +
-``` +
-rm NOM_DE_FICHIER +
-```+
  
 ### Éditer la config ### Éditer la config
  
 ``` ```
 +nano /etc/borgmatic/config.yaml
 +# ceci est un exemple
 location: location:
     source_directories:     source_directories:
         - /         - /
     repositories:     repositories:
-        - NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_MACHINE+        - SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE
     exclude_patterns:     exclude_patterns:
         - /dev         - /dev
Ligne 173: Ligne 151:
  
 ``` ```
-borg info NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_MACHINE +borg info SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE 
-Et donner la phrase de passe+Et donner la PHRASE_DE_PASSE
 ``` ```
  
Ligne 181: Ligne 159:
  
 ``` ```
-borg info /media/STORAGE/NOM_MACHINE +borg info /media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE 
-Et donner la phrase de passe+Et donner la PHRASE_DE_PASSE
 ``` ```
  
Ligne 191: Ligne 169:
 ``` ```
 mkdir /tmp/test mkdir /tmp/test
-borg mount /media/STORAGE/NOM_MACHINE+borg mount /media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE
 ``` ```
  
Ligne 199: Ligne 177:
 nano /etc/cron.d/borgmatic nano /etc/cron.d/borgmatic
 Et mettre : Et mettre :
-42 00 * * * root /usr/bin/borgmatic+42 0 * * * root /usr/bin/borgmatic --create --prune 
 +42 1 * * 0 root /usr/bin/borgmatic --check
 ``` ```
  
  
-## Pour tator et mabrique+## Pour tator et les briques
  
-NOM_DU_COMPTE = nom de la personne / assoss / autre qui reprendra de à n NOM_DE_MACHINE pour les sauvegardes.+Pour mettre en pratique ce qui est expliqué plus haut, voici ce qui se fait pour un cas particulier de **mabrique** et de **tator** qui sont deux Olimex LIME1 dans une cave connectées à Internet.
  
-### sur mon ordi+**mabrique** dispose d'une IP publique grâce à un [vpn de Neutrinet](https://neutrinet.be) et **tator** est sur le même réseaulocal //(LAN)//.
  
-créer un password store+D'autre [briques internet](https://labriqueinter.net) viennent déposer leur sauvegardes `borgmatic` en passant //(jump)// par **mabrique** pour atteindre **tator**. 
 + 
 +### Sur mon ordi 
 + 
 +Créer un `password-store` avec [GoPass](https://woile.github.io/gopass-cheat-sheet/).
  
 ``` ```
Ligne 215: Ligne 198:
 ``` ```
  
-créer un mot de passe pour NOM_DU_COMPTE_sur_mabrique dans `miscavec comme commentaire `username` = NOM_DU_COMPTE.+Et dans ce `password-store`:
  
-créer un mot de passe pour NOM_DU_COMPTE_sur_tator dans `misc` avec comme commentaire `username` = NOM_DU_COMPTE.+créer un mot de passe pour `NOM_DU_COMPTE_sur_mabrique` dans `misc` avec comme commentaire `username = NOM_DU_COMPTE`. 
 +* créer un mot de passe pour `NOM_DU_COMPTE_sur_tatordans `misc` avec comme commentaire `username = NOM_DU_COMPTE`. 
 +* créer un mot de passe pour `NOM_DEMACHINE_sur_tator` dans `misc` avec comme commentaire `repokey-blake2 comming soon` pour y coller **plus tard** la clé obtenue depuis `NOM_DE_MACHINE` avec la commande `borg key export NOM_DU_COMPTE@SERVEUR_BORG:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE FICHIER_TEMP` /(voir plus haut)/.
  
-créer un mot de passe pour borg_sur_tator 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
  
-### sur mabrique+Créer un utilisateur pour `NOM_DU_COMPTE` avec le mot de passe créé précédemment.
  
-Créer un utilisateur pour NOM_DU_COMPTE avec le mot de passe créé précédemment.+``` 
 +adduser NOM_DU_COMPTE 
 +```
  
-Ce NOM_DU_COMPTE recevra la clé publique de `root` sur une des machine `NOM_DE_MACHINE` qui sera sauvegardée.+Ce `NOM_DU_COMPTE` recevra la clé publique de `root` d'une `NOM_DE_MACHINE` /(cf. plus haut)/ qui devra envoyer ses sauvegardes.
  
-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é.+Modifier la configuration de `sshpour autoriser le `saut sshvers `tator`.  :!: Yunohost gère la configuration de `ssh`, donc cela va lever un warning pour le diagnostic automatique de Yunohost qui signalera que la configuration a changé.
  
 ``` ```
Ligne 237: Ligne 224:
     PermitUserRC yes     PermitUserRC yes
  
-service ssh relaod+service ssh reload
 ``` ```
  
-### sur tator+### Sur tator
  
-Il faut créer un utilisateur NOM_DU_COMPTE pour accueillir la clé de `root` de chaque NOM_DE_MACHINE ce qui permettra un accès ssh sans mot de passe.+Il faut créer un utilisateur `NOM_DU_COMPTEpour accueillir la clé de `root` de chaque `NOM_DE_MACHINEce qui permettra un accès `sshsans mot de passe.
  
 ``` ```
Ligne 254: Ligne 241:
 ``` ```
  
-Et l'ajouter au groupe `borg` pour avoir le droit de rentrer dans `/media/STORAGE` qui contient de dossier `home` du NOM_DU_COMPTE.+### Sur une machine
  
-``` +Faire une clé ssh pour `root` sans mot de passe sur `NOM_DE_MACHINE` qui sera sauvegardée.
-adduser NOM_DU_COMPTE borg +
-``` +
- +
- +
-### sur une NOM_DE_MACHINE +
- +
-Faire une clé ssh pour `root` sans mot de passe.+
  
 ``` ```
Ligne 277: Ligne 257:
  
 ``` ```
-nano /root/.ssh/config +nano /root/.ssh/config
-Et mettre :+
 Host tierce Host tierce
-Hostname tierce.nohost.me +  Hostname tierce.nohost.me 
-User NOM_DU_COMPTE  +  User NOM_DU_COMPTE  
  
 Host tator Host tator
-Hostname 192.168.1.9 +  Hostname 192.168.1.9 
-User NOM_DU_COMPTE +  User NOM_DU_COMPTE 
-ProxyJump tierce+  ProxyJump tierce
 ``` ```
 Copier la clé de `root` sur ma brique. Copier la clé de `root` sur ma brique.
Ligne 312: Ligne 291:
 ``` ```
  
-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`.+Vérifier ce qui est monté pour éventuellement l'exclure des sauvegardes puisque ce qui sera sauvegardé c'est `/` /(tout le système)/ 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 mount
 +et/ou bien:
 +df
 et/ou bien: et/ou bien:
 ls /mnt ls /mnt
Ligne 330: Ligne 311:
  
 ``` ```
-borg init --encryption=repokey-blake2 NOM_DU_COMPTE@SERVEUR:/media/STORAGE/NOM_DE_MACHINE+borg init --encryption=repokey-blake2 tator:/media/STORAGE/NOM_DU_COMPTE/NOM_DE_MACHINE
 ``` ```
  
Ligne 336: Ligne 317:
  
 ``` ```
-borg key export NOM_DU_COMPTE@SERVEU_BORG:/media/STORAGE/NOM_MACHINE NOM_DE_FICHIER +borg key export tator:/media/STORAGE/NOM_DU_COMPTE/NOM_MACHINE /dev/stdout
-cat NOM_DE_FICHIER +
 BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250
 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9
Ligne 350: Ligne 330:
 wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8 wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8
 ueHXWCC+xBNhDNKndmVyc2lvbgE= ueHXWCC+xBNhDNKndmVyc2lvbgE=
-rm NOM_DE_FICHIER 
 ``` ```
  
Ligne 358: Ligne 337:
 borgmatic -n -v2 borgmatic -n -v2
 ``` ```
 +
 Planifier la sauvegarde. Planifier la sauvegarde.
  
Ligne 363: Ligne 343:
 nano /etc/cron.d/borgmatic nano /etc/cron.d/borgmatic
 et coller: 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+42 * * * root /usr/bin/borgmatic --create --prune #ou 42 est la minute et 00 l'heure de début * * * étant chaque jour, chaque mois, chaque jour de la semaine 
 +42 1 * * 0 root /usr/bin/borgmatic --check
 ``` ```
 +
 +----
  
  
Ligne 377: Ligne 360:
 ### ?? alertes ### ?? alertes
  
 +### ?? log / cron 
 +
 +Ça va avec les alertes.
 +
 +### ?? accès sans terminal
 +
 +Actuellement un NOM_DU_COMPTE dispose d'un accès `ssh` au serveur de sauvegardes.
documentation/borg.1616769099.txt.gz · Dernière modification : 2021/03/26 15:31 de tierce