documentation:borg
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| documentation:borg [2021/03/26 14:31] – créée tierce | documentation:borg [2021/04/14 15: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' | 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' | ||
| - | NOM_DU_COMPTE | + | Les sauvegardes seront réalisées avec [borgmatic](https:// |
| - | 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' | + | |
| - | - Donc c'est quand même mieux de ne pas demander au serveur d' | + | |
| - | - Donc il faudrait, dans la plus grande prudence … faire un backup du serveur de backup | + | |
| + | ``` | ||
| + | NOM_DU_COMPTE | ||
| + | NOM_DE_MACHINE | ||
| + | SERVEUR_BORG | ||
| + | STOCKAGE_BORG | ||
| + | PHRASE_DE_PASSE = La phrase de passe pour chiffrer et déchiffrer les sauvegardes d'une NOM_DE_MACHINE | ||
| + | CLE_SSH | ||
| + | ``` | ||
| ## Serveur | ## Serveur | ||
| - | ### Matériel | + | Le serveur peut-être un Debian récent disposant d'un accès `ssh`. |
| - | Avec l' | + | ### Installation |
| - | - Un plug PC 32bit 1 cœur, 512Mb de RAM | + | Borg est disponible dans les dépôts |
| - | - 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, | + | |
| - | + | ||
| - | ### installation | + | |
| ``` | ``` | ||
| Ligne 38: | Ligne 26: | ||
| ``` | ``` | ||
| - | ### Groupe borg | + | ### Créer un compte |
| - | ``` | + | Le dossier |
| - | groupadd borg | + | |
| - | ``` | + | |
| - | + | ||
| - | ### R/W sur storage pour le groupe borg | + | |
| ``` | ``` | ||
| - | chown root: | + | adduser --home |
| - | chmod 770 /media/ | + | |
| ``` | ``` | ||
| - | ### Nouveau compte | + | ### R/W sur storage pour l' |
| - | ``` | + | Pour limiter les accès |
| - | adduser NOM_DU_COMPTE | + | |
| - | ``` | + | |
| - | + | ||
| - | ### ajout au groupe borg | + | |
| - | + | ||
| - | C'est nécessaire pour avoir le droit d' | + | |
| ``` | ``` | ||
| - | adduser NOM_DU_COMPTE borg | + | chmod 700 / |
| - | ``` | + | |
| - | + | ||
| - | ### faire un dossier pour le compte | + | |
| - | + | ||
| - | ``` | + | |
| - | mkdir / | + | |
| ``` | ``` | ||
| - | ## 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:/ |
| - | 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 | + | ### Configurer le client SSH |
| + | |||
| + | Pour indiquer à SSH comment se connecter à `SERVEUR_BORG` | ||
| + | |||
| + | ``` | ||
| + | # nano ~/ | ||
| + | Host SERVEUR_BORG | ||
| + | User NOM_DU_COMPTE | ||
| + | IdentityFile ~/ | ||
| + | PreferredAuthentications publickey, | ||
| + | ``` | ||
| + | |||
| + | ### Installer | ||
| ``` | ``` | ||
| Ligne 102: | Ligne 85: | ||
| ``` | ``` | ||
| - | ### initier | + | ### Initier |
| #### Sans chiffrement | #### Sans chiffrement | ||
| Ligne 110: | Ligne 93: | ||
| #### Avec chiffrement | #### Avec chiffrement | ||
| - | Voir https:// | + | Voir [la documentation](https:// |
| ``` | ``` | ||
| - | borg init --encryption=repokey-blake2 | + | # borg init --encryption=repokey-blake2 |
| Passe phrase : PHRASE_DE_PASSE | Passe phrase : PHRASE_DE_PASSE | ||
| ``` | ``` | ||
| ``` | ``` | ||
| - | borg key export | + | # borg key export |
| - | 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 = " | + | Et la coller dans le `password-store` du NOM_DU_COMPTE dans borg_sur_SERVEUR en tant que commentaire repokey-blake2 = " |
| - | + | ||
| - | Effacer le fichier NOM_DE_FICHIER. | + | |
| - | + | ||
| - | ``` | + | |
| - | rm NOM_DE_FICHIER | + | |
| - | ``` | + | |
| ### Éditer la config | ### Éditer la config | ||
| ``` | ``` | ||
| + | nano / | ||
| + | # ceci est un exemple | ||
| location: | location: | ||
| source_directories: | source_directories: | ||
| - / | - / | ||
| repositories: | repositories: | ||
| - | - NOM_DU_COMPTE@SERVEUR:/ | + | - SERVEUR_BORG:/ |
| exclude_patterns: | exclude_patterns: | ||
| - /dev | - /dev | ||
| Ligne 173: | Ligne 151: | ||
| ``` | ``` | ||
| - | borg info NOM_DU_COMPTE@SERVEUR:/ | + | borg info SERVEUR_BORG:/ |
| - | Et donner la phrase de passe | + | Et donner la PHRASE_DE_PASSE |
| ``` | ``` | ||
| Ligne 181: | Ligne 159: | ||
| ``` | ``` | ||
| - | borg info / | + | borg info / |
| - | Et donner la phrase de passe | + | Et donner la PHRASE_DE_PASSE |
| ``` | ``` | ||
| Ligne 191: | Ligne 169: | ||
| ``` | ``` | ||
| mkdir /tmp/test | mkdir /tmp/test | ||
| - | borg mount / | + | borg mount / |
| ``` | ``` | ||
| Ligne 199: | Ligne 177: | ||
| nano / | nano / | ||
| Et mettre : | Et mettre : | ||
| - | 42 00 * * * root / | + | 42 0 * * * root / |
| + | 42 1 * * 0 root / | ||
| ``` | ``` | ||
| - | ## Pour tator et mabrique | + | ## Pour tator et les briques |
| - | NOM_DU_COMPTE = nom de la personne / assoss / autre qui reprendra | + | Pour mettre en pratique ce qui est expliqué plus haut, voici ce qui se fait pour un cas particulier |
| - | ### sur mon ordi | + | **mabrique** dispose d'une IP publique grâce à un [vpn de Neutrinet](https:// |
| - | créer | + | D' |
| + | |||
| + | ### Sur mon ordi | ||
| + | |||
| + | Créer | ||
| ``` | ``` | ||
| Ligne 215: | Ligne 198: | ||
| ``` | ``` | ||
| - | créer un mot de passe pour NOM_DU_COMPTE_sur_mabrique | + | 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_tator` dans `misc` avec comme commentaire `username | ||
| + | * créer un mot de passe pour `NOM_DEMACHINE_sur_tator` dans `misc` avec comme commentaire | ||
| - | 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:/ | + | ### 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 | + | ``` |
| + | adduser | ||
| + | ``` | ||
| - | Ce NOM_DU_COMPTE recevra | + | Ce `NOM_DU_COMPTE` recevra |
| - | Modifier la configuration de ssh pour authoriser | + | Modifier la configuration de `ssh` pour autoriser |
| ``` | ``` | ||
| 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 |
| ``` | ``` | ||
| Ligne 254: | Ligne 241: | ||
| ``` | ``` | ||
| - | Et l' | + | ### 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 / | + | # nano / |
| - | Et mettre : | + | |
| Host tierce | Host tierce | ||
| - | Hostname tierce.nohost.me | + | |
| - | User NOM_DU_COMPTE | + | User NOM_DU_COMPTE |
| Host tator | Host tator | ||
| - | 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' | + | Vérifier ce qui est monté pour éventuellement l' |
| ``` | ``` | ||
| 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 | + | borg init --encryption=repokey-blake2 |
| ``` | ``` | ||
| Ligne 336: | Ligne 317: | ||
| ``` | ``` | ||
| - | borg key export | + | # borg key export |
| - | 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 / | nano / | ||
| et coller: | et coller: | ||
| - | 42 23 * * * root / | + | 42 0 * * * root / |
| + | 42 1 * * 0 root / | ||
| ``` | ``` | ||
| + | |||
| + | ---- | ||
| 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 : de tierce
