Come eseguire backup con Borg da riga di comando su Linux

Cerca

Borg Backup (o Borg in breve) è una soluzione Open Source, completamente gratuita e altamente performante per il backup dei dati. Esistono altre soluzioni di backup per Linux, ma Borg ha tutte le funzionalità che ci aspetteremmo da un software di backup, come crittografia, compressione e deduplicazione. Queste funzionalità consentono di utilizzare al meglio lo spazio di archiviazione disponibile, riducendo significativamente i costi di archiviazione.

Prerequisiti

I comandi presenti in questo tutorial sono riferiti all’utilizzo di una macchina Ubuntu 22.04. Con i dovuti adattamenti, può essere utilizzato come spunto anche per installare e configurare Borg su macchine basate su *BSD o macOS recenti.

Seppur sia possibile utilizzare come repository per i backup eseguiti da Borg un proprio server con SSH abilitato, in questo esempio utilizzo BorgBase.com, un servizio a pagamento che offre un primo piano gratuito con 10 GB di spazio. Altri provider sono eventualmente disponibili a questo link.

Step 1 - Installazione di Borg

Ho trovato in diverse guide indicato come metodo di installazione di default l’utilizzo di PIP. In termini assoluti è un’opzione possibile, ma nel caso il package manager della propria distribuzione metta a disposizione Borg, suggerisco di utilizzare quello. La ragione è semplicemente questa: https://unix.stackexchange.com/a/734798/599159

				
					apt install borgbackup
				
			

Step 2 - Creazione di una SSH Key per l'autenticazione

Questo passaggio è fondamentale in quanto ci permette di collegare in modo sicuro la macchina oggetto di backup al repository remoto utilizzando una chiave SSH.

Iniziamo generando una coppia di chiavi pubblica-privata basata sullo standard Ed25519 (attualmente) più sicuro. Lanciamo quindi il comando:

				
					$ ssh-keygen -o -a 100 -t ed25519
				
			

Questo chiederà la posizione in cui salvare la chiave e una password. Se si desidera schedulare backup automatici con Borg, si consiglia di non impostare alcuna password per la chiave SSH. In alternativa, se si vuole impostare una password per la chiave SSH, questa sarà necessario memorizzarla nel keyring della propria macchina oggetto di backup.

Una volta eseguito il comando, avremo a disposizione una chiave privata ed una chiave pubblica. La chiave privata deve ovviamente rimanere segreta e memorizzata sul proprio computer locale. La chiave pubblica la copiamo su BorgBase, il nostro repository di backup remoto. Visualizziamo la chiave pubblica usando questo comando:

				
					cat ~/.ssh/id_ed25519.pub
				
			

Colleghiamoci al nostro account BorgBase.com ed andiamo nella sezione SSH KEYS -> ADD KEY

Incolliamo quindi la nostra chiave SSH publica

Step 3 - Connettersi al repository remoto

Dopo aver aggiunto la chiave pubblica, siamo pronti per configurare un repository remoto. Su BorgBase, possiamo aggiungerlo da REPOSITORIES -> NEW REPO. Verranno richiesti quindi il nome del repository, la quota e la chiave SSH da utilizzare. Tra le opzioni aggiuntive si può inoltre scegliere se posizionare il repository negli Stati Uniti o nell’UE.

Dopo aver aggiunto il repository, puoi copiare la posizione del repository utilizzando l’icona nella prima colonna Nome.

Step 4 - Inizializzare il repository

Dopo aver configurato la connessione sicura al nostro repository via chiave SSH, possiamo iniziare a usarlo. Il primo passo è inizializzarlo e ciò comporta l’impostazione di una modalità di crittografia e di una password.

Borg supporta diverse modalità di crittografia, ma quella consigliata varia a seconda della versione. repokey significa che la chiave di crittografia è protetta da una password e archiviata nel repository di backup remoto. Esiste anche la modalità keyfile che memorizza il file di chiavi nella cartella home. È importante sapere che per accedere a un repository sono necessari sia il file di chiavi che la password. Quindi, se per esempio si perdesse accesso alla macchina oggetto di backup su cui è memorizzato il keyfile, non si potrà accedere al backup. Ecco perché è importante utilizzare la modalità repokey o conservare una copia del file di chiavi da qualche altra parte.

Per inizializzare il repository remoto, utilizziamo i seguenti comandi sostituendo l’URL ssh:// con l’indirizzo effettivo completo del repository fornito nel pannello di controllo. L’URL del repository verrà mantenuto come variabile BORG_REPO per evitare di digitarlo ogni volta.

Borg 1.x
				
					export BORG_REPO=ssh://...
borg init -e repokey-blake2
				
			
Borg 2.x
				
					export BORG_REPO=ssh://...
borg benchmark cpu  # optional: find fastest encryption algorithm
borg rcreate --encryption=repokey-blake2-aes-ocb
				
			
L’esecuzione di questi comandi chiederanno l’impostazione di una passphrase per proteggere la chiave del repository. È consigliato impostare una passphrase sufficientemente lunga e memorizzarla in un password manager (possibilmente offline come keypass). Una volta eseguito il comando, il repository di backup remoto è configurato e pronto per accettare file. Per testarlo possiamo provare ad eseguire un backup di alcuni file di test prendendoli dalla cartella Documenti lanciando questo comando:
Borg 1.x
				
					borg create ::my-archive-1 ~/Documents
				
			
Borg 2.x
				
					borg create my-archive-1 ~/Documents
				
			
my-archive-1 è il nome dello snapshot e può per tanto essere personalizzato a piacere, ma la maggior parte delle persone usa il nome host e un timestamp. Per esempio alessandro-macbook-2024-05-10. Gli archivi consentono di accedere a diverse versioni dei tuoi file. Ciò può essere utile se un file è stato eliminato per sbaglio o crittografato da un cryptolocker.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come aggiornare mailcow

In questo scenario viene illustrato come eseguire l’aggiornamento di un’istanza di mailcow dockerized utilizzando i tools in esso integrati. Aggiornamento automatico Nella directory di mailcow-dockerized

Partners