Voordelige append-only offsite back-ups met restic en Wasabi op Debian

Deze gids laat zien hoe je de gratis back-up software restic op Debian Buster installeert en configureert om off-site back-ups op te slaan bij het cloud opslagbedrijf Wasabi. Het belangrijkste voordeel van deze gids is dat het verplichte append-only back-ups biedt. Dit betekent dat als een back-up eenmaal gemaakt is, deze veilig is in de zin dat hij niet overschreven of gewist kan worden van het systeem waar de back-up van gemaakt is. Dit betekent dat de back-up archieven beschermd zijn tegen zowel natuurrampen op de server van oorsprong (bijvoorbeeld brand) als door de mens veroorzaakte ongelukken (zoals een fout op de root shell prompt). De back-ups zijn ook beschermd in de zin dat ze versleuteld worden opgeslagen, wat betekent dat alleen de persoon of het systeem dat het wachtwoord voor de back-up heeft, deze kan lezen.

Merk op dat deze gids wordt geleverd zoals hij is, zonder enige garantie. De back-up software restic heeft versie 1.0 nog niet bereikt, en je moet het daarom nooit gebruiken als je enige back-up oplossing. Om beschermd te zijn tegen eventuele ongelukken, moet je eerst een back-up maken van het systeem dat je wilt gebruiken voor het doel van deze gids. Test ook of de genomen back-up echt werkt door middel van een test-herstel.

De gids is gebaseerd en getest op Debian Buster (Debian 10). Oudere Debian versies vallen buiten het bereik van deze gids, maar als je zelf wilt experimenteren zou het mogelijk moeten zijn om de Debian Buster apt pakketrepository toe te voegen om recente versies van restic, tinyproxy en rclone ook op Debian Jessie of Stretch te installeren.

Deze gids is opgebouwd uit vijf delen:

In het eerste deel maken we een account aan bij de Wasabi cloudopslag waar we later de back-ups zullen opslaan. Wasabi biedt een gratis proefperiode van 30 dagen voor testdoeleinden.

Ten tweede zullen we rclone installeren en configureren, dat enerzijds toegang biedt tot de opslag bij Wasabi, en anderzijds een toegangsinterface biedt voor restic naar de opslag.

Ten derde wordt tinyproxy – een eenvoudige proxyserver – klaargemaakt, omdat die nodig is als tussenstation om de opslag op een append-only manier samen met restic te laten werken.

Ten vierde zetten we het back-upprogramma restic op.

Als allerlaatste stap testen we zowel het maken van een back-up als een gedeeltelijke restore.

1 Maak een account aan bij Wasabi cloudopslag

1.1 Start een Wasabi account

Wasabi heeft een gratis proefperiode van 30 dagen die je hier kunt vinden:

https://wasabi.com/sign-up/

Na het invullen van het formulier op bovenstaande webpagina ontvang je je toegangsgegevens voor de webinterface van Wasabi. Gebruik je toegangsgegevens om in te loggen op deze pagina:

https://console.wasabisys.com/

1.2 Maak een emmer voor gegevens en een andere voor vergrendeling

We gaan nu twee zogenaamde “Buckets” aanmaken. Een bucket is een opslagcontainer waarin je gegevens opslaat.

Maak de eerste emmer aan door te klikken op het rode icoontje genaamd Create Bucket dat je rechtsboven op de webpagina vindt. In de eerste emmer worden alle back-up gegevens opgeslagen, die we later zullen aanduiden als de DATABUCKET. Je weet dat je een emmernaam moet kiezen. Je kunt bijvoorbeeld het volgende formaat gebruiken als sjabloon voor de emmernaam:

yourdomain.com-restic-data

Vervang uwdomein.nl in bovenstaande sjabloonnaam door de domeinnaam van de computer waarvan je een back-up wilt maken. Na het instellen van de DATABUCKET naam, schrijf hem op. Je hebt hem later nodig om de plaatshoudertekst te vervangen DATABUCKET in de sjablonen die later in deze handleiding volgen.

Kies vervolgens de regio waarin je de emmer wilt hebben. Voor optimale prestaties is het goed om de regio/continent te kiezen van de server waarvan je een back-up wilt maken. Dus in het geval dat je server in Europa staat zou je kunnen kiezen:

eu-central-1

Druk dan op Volgende.

Op de volgende pagina worden twee keuzes getoond: voor respectievelijk Bucket Versioning en Bucket Logging. Je kunt deze keuzes op hun standaardwaarden laten staan, dus Suspend Versioning en Suspend Logging. Klik dan op Next, en klik op Create Bucket.

Herhaal nu dezelfde procedure en maak nog een emmer aan. Deze tweede emmer zal alleen gebruikt worden om de vergrendelingsinformatie van restic in op te slaan. We zullen er later naar verwijzen als de LOCKBUCKET. Klik opnieuw op de knop Create Bucket, en kies nu een naam voor deze tweede emmer, bijvoorbeeld met deze opmaak:

yourdomain.com-restic-locks

Vervang uwdomein.nl in het bovenstaande sjabloon door de domeinnaam van de computer waarvan een back-up moet worden gemaakt. Na het instellen van de LOCKBUCKET naam, schrijf hem op. Die heb je later nodig om te vervangen LOCKBUCKET in de sjablonen die later in deze gids volgen.

(Restic gebruikt locks om ervoor te zorgen dat slechts één client tegelijk backups of restores uitvoert. De reden dat we een aparte emmer nodig hebben voor de vergrendelingsinformatie is dat restic zowel sloten moet kunnen toevoegen als verwijderen, en daarom hebben we een emmer nodig die verwijderingen toestaat).

1.3 Maak een gebruiker aan

Klik op het IAM pictogram in de bovenste rij pictogrammen. Je bent nu in Identity & Access management terechtgekomen. Klik op Gebruikers in de linkerkolom. Klik dan op het rode pictogram met de naam + Gebruiker aanmaken en kies een logische gebruikersnaam, zoals de domeinnaam van de server waarvan je een back-up wilt maken. De gebruikersnaam zou bijvoorbeeld system1.example.com kunnen zijn. Nadat je de gebruikersnaam hebt ingesteld, schrijf je hem op zodat je hem kunt vervangen USERNAME in de sjablonen die later in deze handleiding volgen door jouw waarde.

Vink onder het onderdeel Toegang in het dialoogvenster het vakje Programmatisch (API-sleutel aanmaken) aan. Klik dan op Volgende. Maak een groep aan voor de gebruiker. Als al je servers zich onder één hoofddomein bevinden, zou dit hoofddomein een geschikte groepsnaam kunnen zijn. Klik nu op Volgende. Op de volgende pagina (beleid maken) klik je gewoon op Volgende. Klik tenslotte op de knop Gebruiker aanmaken.

Rechts van de tekst Secret Key onderaan het dialoogvenster vind je een kleine link met de naam Show, waarop je moet klikken. Sla zowel de TOEGANGSLEUTEL en de GEHEIME KEY op in een tekstbestand. Je hebt deze informatie later nodig als we de toegang tot Wasabi configureren vanaf de clientcomputer waarvan je een back-up maakt.

1.4 Een beleid maken

Om ervoor te zorgen dat de gebruiker die we hebben aangemaakt toegang krijgt tot de twee buckets, moeten we een toegangsbeleid aanmaken.

Klik op Beleid in de linkerkolom van de Wasabi webinterface. Klik dan op de rode knop Beleid maken. Je kunt voor de beleidsnaam de domeinnaam kiezen van de computer waarvan je een back-up wilt maken, bijvoorbeeld system1.example.com . Schrijf de beleidsnaam in het veld linksboven.

Hieronder staat een sjabloon dat je gaat gebruiken als basis voor het eigenlijke beleid. Kopieer het sjabloon naar een tekstverwerker, en vervang dan de twee voorkomens van DATABUCKET in het tekstbestand door de naam die je aan de eerste emmer gaf, en de twee voorkomens van LOCKBUCKET door de naam die je koos voor de tweede emmer.

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": "s3:ListAllMyBuckets",
 "Resource": "arn:aws:s3:::*"
 },
 {
 "Effect": "Allow",
 "Action": "s3:*",
 "Resource": [
 "arn:aws:s3:::DATABUCKET",
 "arn:aws:s3:::DATABUCKET/*",
 "arn:aws:s3:::LOCKBUCKET",
 "arn:aws:s3:::LOCKBUCKET/*"
 ]
 }
 ]
}

Kopieer het gemaakte beleid uit je tekstverwerker en plak het in het grote, hoofdveld van het dialoogvenster van de Wasabi-webpagina. Klik dan op Opslaan.

1.5 Het beleid toepassen

Het beleid moet nu worden toegepast op de gebruiker. Klik links op Gebruikers en vervolgens op de gebruiker die je hebt aangemaakt. Klik nu op het tabblad Machtigingen (rechts in het grijze horizontale menu). Begin dan de eerste letters van de beleidsnaam die je koos toen je het beleid aanmaakte te typen in het tekstveld onder Begin met typen om beleid voor de gebruiker te vinden. Klik op de naam van je beleid. Nu heb je het beleid toegepast op de gebruiker.

1.6 Stel de gegevensemmer in op onveranderlijk (alleen append)

Om veiligheidsredenen willen we dat het onmogelijk is om reeds gemaakte back-ups van de client (de computer waar de back-ups vandaan komen) te overschrijven. Om dit te bereiken gebruiken we de onveranderlijke functie van Wasabi. Klik in de webinterface van Wasabi op Opslag (in de bovenste balk). Klik dan op de DATABUCKET (waarschijnlijk degene die eindigt op restic-data). Klik op het witte tandwiel voor Instellingen (naar rechtsboven). Klik dan op Compliance in de witte bovenste balk. Klik op het schuifje rechts van Compliance Mode om deze modus te activeren. Als je wilt kun je Delete After Retention activeren, maar dan moet je er wel voor zorgen dat je een grote waarde zet bij Retention Time, dit is de minimale tijd dat elk bestand blijft staan nadat de klant het probeert te verwijderen. Zet hier bijvoorbeeld 100 jaar. (Het lijkt erop dat je dit veld niet leeg kunt laten voor een oneindige bewaartijd). Dit betekent dat gegevens 100 jaar lang veilig zijn, gedurende welke periode ze niet verwijderd of gewijzigd kunnen worden. Druk op Opslaan om je instellingen op te slaan.

1.7 Maak de lock map aan

Klik in de webinterface van Wasabi op Opslag (in de bovenste balk). Klik dan op de LOCKBUCKET (degene die eindigt op restic- locks).

Druk nu op de groene knop met de naam Create folder. Geef de map de naam locks zodat hij later gebruikt kan worden voor de restic lock bestanden.

We zijn nu klaar met de configuratie in de Wasabi webinterface. In de volgende sectie gaan we aan de slag op de terminal van de computer waarvan we een back-up willen maken.

2 Installeer en configureer rclone

2.1 Maak eerst een back-up via je bestaande systeem

Nu is het tijd om toegang te krijgen tot de computer waarvan de back-ups gemaakt zullen worden.

Vergeet niet een back-up te maken van deze computer met een bestaand systeem! Test ook of de back-up werkt door middel van een testherstel voordat je verder gaat. Voor het geval iets niet zou werken zoals verwacht, is het cruciaal om terug te kunnen keren naar een werkend stadium.

2.2 Installeer rclone

Alle onderstaande regels moeten in de terminal worden getypt, gevolgd door Enter.

Maak verbinding met de terminal van de computer waarvan je back-ups wilt maken, bijvoorbeeld via SSH. Voer dan dit commando uit om root te worden:

su -

gevolgd door Enter en het root-wachtwoord. Root-toegang is nodig, omdat we nieuwe programma’s uit de Debian repository gaan installeren.

Installeer nu rclone:

apt install rclone

2.3 Configureer rclone om verbinding te maken met Wasabi

Om rclone te configureren typ je vervolgens dit commando:

rclone config

Typ dan:

n

Nu is het tijd om een naam te kiezen voor de config. Merk op dat. (punt) niet is toegestaan in de naam, maar daarentegen – (streepje) wel. Om je rclone configuratie een naam te geven gebruik je dit sjabloon, maar vervang je eerst yourdomain-com door je eigen domeinnaam en vervang je eerst. (puntjes) in de domeinnaam door – (koppelteken):

wasabi-je-domein-com-restic

Bewaar de naam die je de rclone config geeft, want later vervang je de placeholder RCLONECONFIG door de naam.

Druk dan 4 af voor Amazon S3 Compliant Storage Providers en geef Enter.

Dan 7 voor Wasabi Object Storage en Enter.

Druk dan 1 af voor Voer in de volgende stap AWS-referenties in en Voer in

Kopieer de TOEGANGSSLEUTEL die je eerder hebt opgeslagen in een bestand en plak het, druk dan op Enter

Kopieer en plak dan de GEHEIME KEY die je ook eerder in hetzelfde bestand hebt opgeslagen, gevolgd door Enter

Druk de regio af die je kiest voor je emmers. Je vindt de regio als je klikt op Storage in de bovenste rij van de Wasabi webinterface. Typ bijvoorbeeld deze regio voor Europa en dan Enter:

eu-central-1

Voor Eindpunt voor S3 API typ je dit als de emmer in de EU-regio staat, gevolgd door Enter:

s3.eu-central-1.wasabisys.com

Als je emmer in de VS staat, vind je de naam van je eindpunt in dit document:

https://wasabi-support.zendesk.com/hc/en-us/articles/360015106031-What-are-the-service-URLs-for-Wasabi-s-different-regions-

Laat Location constraint leeg en druk op Enter

Druk op 1 voor Owner krijgt FULL_CONTROL en druk dan op Enter

Druk op y voor Edit advanced config en druk dan op Enter

Druk op Enter voor standaardwaarde voor brokgrootte

Druk op Enter voor de standaardwaarde voor disable checksum

Druk op Enter voor standaardwaarde voor session token

Typ 16 voor Upload concurrency en dan Enter

Druk op Enter voor de standaardwaarde voor force_path_style

Druk op Enter voor de standaardwaarde voor v2_auth gevolgd door Enter

Druk op y voor Yes this is OK en Enter

Druk op q om de configuratie af te sluiten.

Nu is de configuratie voor rclone klaar.

2.4 Testen of rclone werkt met Wasabi

Maak nu een testbestand aan met dit commando :

echo test >> /tmp/test.txt

Breng het testbestand over via onderstaand commando. Je moet echter eerst RCLONECONFIG in jouw waarde, en ook DATABUCKET naar je waarde voor deze parameter. Alles staat op één regel:

rclone -v sync /tmp/test.txt RCLONECONFIG:DATABUCKET/

Als alles werkt zou je nu het bestand test.txt moeten zien in de Wasabi webinterface voor de DATABUCKET. Houd er rekening mee dat het soms tot ca. 1 minuut kan duren voordat het bestand wordt getoond. Test ook een overdracht met de andere emmer, degene die eindigt met restic-locks:

rclone -v sync /tmp/test.txt  RCLONECONFIG:LOCKBUCKET/

Controleer nu opnieuw de Wasabi webinterface, voor het tekstbestand dat in de . LOCKBUCKET.

2.5 Rclone instellen om restic te serveren via systemd

Rclone heeft een ingebouwde functie om een cloudopslagruimte te gebruiken (Wasabi in ons geval) en deze op een compatibele manier te serveren aan restic. Deze manier van uitvoeren van rclone gebeurt via het commando rclone serve restic dat werkt als een serverproces. We hebben twee van deze serverprocessen nodig: een hoofdproces voor bijna alles, en een tweede dat alleen de restic lock-bestanden afhandelt.

Maak eerst een restic gebruiker aan:

adduser restic

Kopieer de rclone configuratie van de root gebruiker naar de restic gebruiker:

su restic
mkdir -p /home/restic/.config/rclone
exit
cp -a /root/.config/rclone/rclone.conf /home/restic/.config/rclone/
chown restic.restic /home/restic/.config/rclone/rclone.conf

Maak een systemd controlebestand aan, bijvoorbeeld via de nano editor:

nano /etc/systemd/system/restic-data.service

Het bestand moet de onderstaande gegevens bevatten. Merk op dat je net als voorheen zowel de waarde RCLONECONFIG als de waarde DATABUCKET moet aanpassen aan je instellingen.

[Unit]       
Description=Rclone serve restic data on wasabi
After=network.target

[Service]
Type=simple
User=restic
Group=restic
ExecStart=/usr/bin/rclone serve restic RCLONECONFIG:DATABUCKET –addr=127.0.0.1:8001 –append-only –retries 10 –transfers 20 –s3-upload-concurrency 8 –s3-chunk-size 16M
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

Sla het bestand op. Het is de bedoeling dat rclone een restic interface biedt naar de Wasabi cloud opslagemmer. De systemd service die we zojuist hebben aangemaakt zal automatisch starten bij de volgende boot, maar eerst moeten we hem activeren via deze commando’s:

systemctl daemon-reload
systemctl enable restic-data
systemctl start restic-data

Daarna controleren we of de service is gestart:

systemctl status restic-data

Je zou nu moeten zien : actief (running) als alles correct werkt. Druk op q om de statusweergave te verlaten.

Nu hebben we de dienst rclone serve restic geïnstalleerd op poort 8001 die verbinding maakt met een emmer die alleen append is en de back-ups zal opslaan.

Vervolgens hebben we nog een dienst nodig op poort 8002 voor het restic locking systeem, verbonden met de tweede emmer die read+write is. Daarom herhalen we de stappen die we zojuist gedaan hebben nog een keer met kleine aanpassingen.

Maak een systemd besturingsbestand aan :

nano /etc/systemd/system/restic-locks.service

Het bestand moet de onderstaande gegevens bevatten. De regel die begint met ExecStart= is een enkele, lange regel die hieronder in drie regels is gesplitst. Verander zowel de RCLONECONFIG waarde als de LOCKBUCKET waarde naar jouw instellingen.

[Unit]       
Description=Rclone serve restic locks on wasabi
After=network.target

[Service]
Type=simple
User=restic
Group=restic
ExecStart=/usr/bin/rclone serve restic RCLONECONFIG:LOCKBUCKET –addr=127.0.0.1:8002
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

Sla het bestand op en activeer het door:

systemctl daemon-reload
systemctl enable restic-locks
systemctl start restic-locks

Controleer of de dienst is gestart:

systemctl status restic-locks

Je zou nu moeten zien : actief (running).

Druk op q om af te sluiten.

Nu hebben we beide rclone serve restic systemd diensten aangemaakt, eerst op poort 8001 voor de hoofddienst in append-only modus en daarna op poort 8002 voor de locking dienst in lees+schrijf modus.

3 Bereid tinyproxy voor

Tinyproxy zal de twee diensten samenvoegen tot een verenigd front dat aan restic wordt gepresenteerd. Het wordt geïnstalleerd in een root terminal van de computer waarvan je een back-up wilt maken:

apt install tinyproxy

Maak vervolgens een back-up van het tinyproxy configuratiebestand:

cp -a /etc/tinyproxy/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf.bak

Als het bestand hier niet te vinden is, is het vaak te vinden in / etc/tinyproxy.conf.

Bewerk nu het configuratiebestand:

nano /etc/tinyproxy/tinyproxy.conf

Je moet een aantal wijzigingen aanbrengen in de bestanden die nu in detail zullen worden besproken. Ten eerste moet je het vooraf ingestelde poortnummer wegcommentariëren en een nieuw poortnummer instellen:

#Port 8888
Port 8000

Ten tweede is het belangrijk om alleen verbindingen van localhost toe te staan, dus voeg een Listen regel toe:

#Listen 192.168.0.1
Listen 127.0.0.1

Ten derde, verander de time-out waarde in een uur:

#Timeout 600
Timeout 3600

Ten vierde koppel je tinyproxy aan de twee rclone serve restic systemd services. Ze moeten in de onderstaande volgorde geschreven worden: de algemene regel eerst en de specifieke regel als laatste, omdat de laatste regel in tinyproxy altijd wint bij gelijke stand.

ReversePath "/" "http://127.0.0.1:8001/"
ReversePath "/locks" "http://127.0.0.1:8002/locks"

Laat tinyproxy tenslotte uitsluitend werken in omgekeerde modus:

#ReverseOnly Yes
ReverseOnly Yes

Nu zijn alle noodzakelijke bewerkingen doorgevoerd. Sla het configuratiebestand op, in nano doe je dit door op Ctrl+O te drukken, en verlaat nano dan met Ctrl+X om terug te gaan naar de terminal.

Om tinyproxy te activeren zullen we het nu opnieuw opstarten:

systemctl stop tinyproxy
systemctl start tinyproxy

Controleer tot slot of tinyproxy goed draait:

systemctl status tinyproxy

Druk op q om af te sluiten. Nu is tinyproxy geconfigureerd voor gebruik door restic. In de volgende sectie zullen we restic zelf instellen.

4 Het restic back-up programma instellen

Tenslotte zullen we de laatste stap van de configuratie uitvoeren, namelijk het instellen van het restic-backupprogramma. Installeer eerst restic:

apt install restic

Dan moeten we de omgevingsvariabelen voor restic initialiseren. Eerst geven we de restic repository locatie op door dit in een terminal in te voeren:

export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'

Bepaal nu een sterke wachtwoordzin voor je back-ups. Het is belangrijk dat je de wachtwoordzin op een veilige plaats bewaart. De wachtwoordzin is nodig om toegang te krijgen tot de back-ups, omdat deze volledig versleuteld zijn. Vervang PASSPHRASE hieronder door het wachtwoord dat je gekozen hebt en voer dan het commando in de terminal in:

export RESTIC_PASSWORD='PASSPHRASE'
 

Laten we nu de restic repository aanmaken:

restic init

Laten we testen of restic werkt zoals het hoort. We hebben het wachtwoord al opgeslagen in de omgevingsvariabele RESTIC_PASSWORD, zodat we toegang hebben tot het archief om snapshots op te vragen:

restic snapshots

Als alles gaat zoals het hoort, zouden we nu een lege lijst moeten krijgen (want we hebben nog geen back-up gemaakt) en de tekst 0 snapshots.

We hebben nu alles voorbereid voor de opslag van de back-ups en kunnen overgaan tot de laatste stappen van het uitvoeren van back-ups en restores.

5 Test zowel de back-up als een gedeeltelijke restore

In de laatste stap van deze tutorial zullen we een volledige back-up van het systeem maken, en daarna een gedeeltelijke restore testen. Hiervoor worden twee shellscripts gemaakt (een voor de back-up en een ander voor het terugzetten).

5.1 Bereid een back-up script voor

Allereerst heb je een back-up script nodig dat via cron met een geschikt interval kan worden uitgevoerd, bijvoorbeeld één keer per dag. Het back-up script kan bijvoorbeeld worden aangemaakt als een bestand waar alleen root toegang toe heeft en vervolgens worden bewerkt met nano:

touch /usr/local/bin/backup-restic.sh 
chown root.root /usr/local/bin/backup-restic.sh
chmod 700 /usr/local/bin/backup-restic.sh
nano /usr/local/bin/backup-restic.sh

Hieronder staat een voorbeeld van de inhoud van het back-up script, waarin je PASSPHRASE moet veranderen in de passphrase die je eerder hebt gekozen.

#!/bin/sh
export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'
export RESTIC_PASSWORD='PASSPHRASE'      
restic backup / --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/mnt --exclude=/root/.cache

Let op de uitsluitingen die hierboven zijn gemaakt – misschien wil je de mappen die zijn uitgesloten van de back-up wijzigen.

5.2 Voer het back-up script uit

Sla het bestand op en voer het uit via de terminal:

/usr/local/bin/backup-restic.sh

Na enkele seconden zou je moeten zien hoe restic je bestanden doorkruist en ook een geschat percentage van hoeveel van de back-up is voltooid. ETA is een ruwe schatting van hoeveel tijd er nog rest tot de voltooiing in minuten en seconden. De eerste back-up duurt vrij lang, maar daarna gaan de volgende back-ups snel, omdat alleen bestanden die sinds de laatste back-up zijn veranderd of aangemaakt moeten worden overgezet.

Om de back-up regelmatig te laten draaien, voeg je een regel toe aan de crontab. Bewerk eerst /etc/crontab met:

nano /etc/crontab

Voeg dan de planning voor de back-up toe. Als de backup bijvoorbeeld elke dag om 02:00 uur ’s ochtends vroeg moet draaien, voeg dan deze regel toe aan /etc/crontab :

00 02           * * *   root    /usr/local/bin/backup-restic.sh

(Merk op dat cron werkt op het formaat mm:hh – dat zijn minuten voor uren).

5.3 Test of terugzetten werkt

Een back-up systeem is pas compleet als men getest heeft dat restores goed werken. We zullen de fuse mount van restic gebruiken om door de laatste back-up te bladeren. Typ dit in de terminal, waarbij je PASSPHRASE in de restic passphrase die je eerder koos:

mkdir /mnt/restic
export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'
export RESTIC_PASSWORD='PASSPHRASE'
restic mount /mnt/restic &
cd /mnt/restic
cd snapshots
cd latest
ls

Nu kun je de laatste momentopname zien (de laatst gemaakte backup). Je kunt met diff vergelijken of een bestand correct gebackupt is, bijvoorbeeld voor /etc/fstab :

diff /mnt/restic/snapshots/latest/etc/fstab /etc/fstab

Krijg je geen uitvoer van diff, dan zijn de twee bestanden identiek en heeft de back-up voor dat bestand gewerkt. Als je daarentegen het bestand veranderd hebt sinds de laatste back-up, zie je welke regels in de bestanden verschillen.

Tenslotte ontkoppelen we de restic fuse mount:

cd ~
umount /mnt/restic/

5.4 Slotopmerkingen

Gefeliciteerd, als alles goed is gegaan heb je nu het opzetten van een secundair back-up systeem met een aantal robuuste eigenschappen voltooid:

Het back-upsysteem is off-site, wat betekent dat het gegevens beschermt tegen ongelukken die zouden kunnen gebeuren met de computer waarvan de back-ups worden gemaakt.

Het is ook append-only, wat betekent dat geen virus of ongeluk op de computer waarvan de back-ups worden gemaakt ooit een eerder gemaakte back-up kan overschrijven. De enige manier om back-ups te verwijderen is door in te loggen via de Wasabi webinterface, en daarom moet je je inloggegevens voor de Wasabi webinterface beveiligen. Bij voorkeur kun je 2FA (two factor authentication) inschakelen voor een hogere beveiliging.

Als je de cron-job inschakelt gaat het back-upsysteem ook automatisch. Denk er echter altijd aan om restores regelmatig te testen, zodat je kunt controleren of de back-up werkt.

Vergeleken met veel andere online cloudopslagdiensten heeft het gebruik van Wasabi het voordeel van snelle overdrachten tegen een concurrerende prijs.

Dit systeem werkt goed voor secundaire back-ups, als extra verzekering voor het geval dat het eerste back-upsysteem om wat voor reden dan ook zou falen. Een belangrijk voordeel ten slotte is dat het schaalt naar elke grootte die je nodig hebt – je betaalt gewoon per GB opslag (zij het dat je altijd voor minimaal 1 TB moet betalen) en hebt praktisch geen drempel voor maximale opslagruimte.