documentation:borg
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
documentation:borg [2021/03/26 16:04] – relecture et amélioration tierce | documentation:borg [2021/04/14 17:53] (Version actuelle) – nom variable hgo | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
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' | ||
+ | |||
+ | Les sauvegardes seront réalisées avec [borgmatic](https:// | ||
``` | ``` | ||
Ligne 9: | Ligne 11: | ||
STOCKAGE_BORG | STOCKAGE_BORG | ||
PHRASE_DE_PASSE = La phrase de passe pour chiffrer et déchiffrer les sauvegardes d'une NOM_DE_MACHINE | PHRASE_DE_PASSE = La phrase de passe pour chiffrer et déchiffrer les sauvegardes d'une NOM_DE_MACHINE | ||
- | FICHIER_TEMP | + | CLE_SSH |
``` | ``` | ||
## Serveur | ## Serveur | ||
- | Le serveur peut-être un Debian récent disposant d'un accès `ssh`. | + | Le serveur peut-être un Debian récent disposant d'un accès `ssh`. |
### Installation | ### Installation | ||
Ligne 22: | Ligne 24: | ||
``` | ``` | ||
apt install borgmatic | apt install borgmatic | ||
- | ``` | ||
- | |||
- | ### Groupe borg | ||
- | |||
- | En vue de limiter l' | ||
- | |||
- | ``` | ||
- | groupadd borg | ||
- | ``` | ||
- | |||
- | ### R/W sur storage pour le groupe borg | ||
- | |||
- | Pour limiter les accès à `STORAGE` aux membres du groupe `borg`. | ||
- | |||
- | ``` | ||
- | chown root:borg / | ||
- | chmod 770 / | ||
``` | ``` | ||
Ligne 49: | Ligne 34: | ||
``` | ``` | ||
- | ### Ajout au groupe borg | + | ### R/W sur storage pour l' |
- | C'est nécessaire pour avoir le droit d' | + | Pour limiter les accès au `STORAGE` |
``` | ``` | ||
- | adduser | + | chmod 700 / |
``` | ``` | ||
Ligne 74: | Ligne 59: | ||
``` | ``` | ||
ssh-copy-id NOM_DU_COMPTE@SERVEUR_BORG | ssh-copy-id NOM_DU_COMPTE@SERVEUR_BORG | ||
+ | ``` | ||
+ | |||
+ | ### Configurer le client SSH | ||
+ | |||
+ | Pour indiquer à SSH comment se connecter à `SERVEUR_BORG` | ||
+ | |||
+ | ``` | ||
+ | # nano ~/ | ||
+ | Host SERVEUR_BORG | ||
+ | User NOM_DU_COMPTE | ||
+ | IdentityFile ~/ | ||
+ | PreferredAuthentications publickey, | ||
``` | ``` | ||
Ligne 99: | Ligne 96: | ||
``` | ``` | ||
- | borg init --encryption=repokey-blake2 | + | # borg init --encryption=repokey-blake2 SERVEUR_BORG:/ |
Passe phrase : PHRASE_DE_PASSE | Passe phrase : PHRASE_DE_PASSE | ||
``` | ``` | ||
``` | ``` | ||
- | borg key export | + | # borg key export SERVEUR_BORG:/ |
- | cat FICHIER_TEMP | + | |
BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 | BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 | ||
hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 | hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 | ||
Ligne 120: | Ligne 116: | ||
``` | ``` | ||
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 FICHIER_TEMP. | ||
- | |||
- | ``` | ||
- | rm FICHIER_TEMP | ||
- | ``` | ||
### É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 159: | 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 185: | Ligne 177: | ||
nano / | nano / | ||
Et mettre : | Et mettre : | ||
- | 42 00 * * * root / | + | 42 0 * * * root / |
+ | 42 1 * * 0 root / | ||
``` | ``` | ||
Ligne 191: | Ligne 184: | ||
## Pour tator et les briques | ## Pour tator et les briques | ||
- | Ceci est l' | + | 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. |
- | **mabrique** dispose d'une IP publique grâce à un [vpn de Neutrinet](https:// | + | **mabrique** dispose d'une IP publique grâce à un [vpn de Neutrinet](https:// |
- | D' | + | D' |
- | ### sur mon ordi | + | ### Sur mon ordi |
Créer un `password-store` avec [GoPass](https:// | Créer un `password-store` avec [GoPass](https:// | ||
Ligne 211: | Ligne 204: | ||
* 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:/ | * 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:/ | ||
- | ### 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. |
``` | ``` | ||
Ligne 219: | Ligne 212: | ||
``` | ``` | ||
- | Ce NOM_DU_COMPTE recevra | + | Ce `NOM_DU_COMPTE` recevra |
Modifier la configuration de `ssh` pour autoriser le `saut ssh` vers `tator`. | Modifier la configuration de `ssh` pour autoriser le `saut ssh` vers `tator`. | ||
Ligne 231: | 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 248: | 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 271: | 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 306: | 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 324: | Ligne 311: | ||
``` | ``` | ||
- | borg init --encryption=repokey-blake2 | + | borg init --encryption=repokey-blake2 |
``` | ``` | ||
Ligne 330: | Ligne 317: | ||
``` | ``` | ||
- | borg key export | + | # borg key export |
- | cat NOM_DE_FICHIER | + | |
BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 | BORG_KEY f6dc3da161fa259ad8c79380b2593d4996e4fb3c3efd802c88d996dd93b5f250 | ||
hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 | hqlhbGdvcml0aG2mc2hhMjU2pGRhdGHaAZ6DIeXAqvfULdYvWU6QooZHvmEaUvP3yzjQj9 | ||
Ligne 344: | Ligne 330: | ||
wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8 | wQvKVucuWuqml0ZXJhdGlvbnPOAAGGoKRzYWx02gAg0tq+i2wceA8guVTmn4AzKJsJRDb8 | ||
ueHXWCC+xBNhDNKndmVyc2lvbgE= | ueHXWCC+xBNhDNKndmVyc2lvbgE= | ||
- | rm NOM_DE_FICHIER | ||
``` | ``` | ||
Ligne 352: | Ligne 337: | ||
borgmatic -n -v2 | borgmatic -n -v2 | ||
``` | ``` | ||
+ | |||
Planifier la sauvegarde. | Planifier la sauvegarde. | ||
Ligne 357: | Ligne 343: | ||
nano / | nano / | ||
et coller: | et coller: | ||
- | 42 23 * * * root / | + | 42 0 * * * root / |
+ | 42 1 * * 0 root / | ||
``` | ``` | ||
+ | |||
+ | ---- | ||
Ligne 374: | Ligne 363: | ||
Ça va avec les alertes. | Ç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.1616771099.txt.gz · Dernière modification : 2021/03/26 16:04 de tierce