Skip to content

Restic - Backblaze B2 Cloud Storage

Restic
  • Dank eines Tipps, viele Grüße nach Hamburg 😉 , teste ich heute mal Restic in Zusammenarbeit mit dem Cloud Anbieter Backblaze B2. Da Backblaze ein amerikanischer Anbieter ist, scheidet ein Speichern von Daten im Klartext logischerweise aus. Also muss mindestens was nett verschlüsseltes her, so was wie AES256.

    Ok, das kann Restic 🙂

    Restic is built to secure your data against such attackers, by encrypting it with AES-256 in counter mode and authenticating it using Poly1305-AES.
    Quelle: https://restic.net/

    Account erstellen

    Wollte mich anmelden, das erste was passiert ist folgendes...

    0c77b8c9-e655-4899-9cbb-64188e26e2a2-grafik.png

    Ok, dann nur 49 Zeichen 😞 Danach kommt eine Abfrage bzgl. der Telefonnummer. Danach kann man die 2FA einstellen.
    Man kann zwischen SMS und Google Authenticator/Authy wählen. Alles in allem sieht das sehr gut aus. Denke da kann man was ablegen LOL

    Damit haben wir das erledigt.

    Bucket erstellen

    Wir legen ein Bucket an, darauf achten das er auf Privat steht! Auch wenn die Daten verschlüsselt sind 😉 Ok, die Namen müssen wohl über die komplette Cloud einmalig sein, die ersten zwei getesteten Namen gab es schon.

    frank-restic-backup
    

    Den nicht 🙂

    Application Keys erstellen

    Wir brauchen aber mal zu erst, die Application Keys. Dazu kann man auf Backblaze auf App-Keys gehen, dort auf Add a New Application Key klicken. Dann vergeben wir einen Namen, wählen das Bucket aus, für den die Keys gelten. Danach auf Create New Key und die Keys notieren!

    Test Repo erzeugen

    Ich benutze hier ein File /root/passwd worin das gewünschte Passwort abgelegt ist. Denkt an die Rechte, so wenig wie möglich 😉

    $ export B2_ACCOUNT_ID="<ApplicationID>"
    $ export B2_ACCOUNT_KEY="<ApplicationKEY>"
    

    Da oben die ApplicationID und den ApplicationKEY eingeben!

    Init

    restic --password-file /root/passwd -r b2:frank-restic-backup init
    

    Dann kommt folgendes

    root@debian:~# restic -r b2:frank-restic-backup init
    enter password for new repository: 
    enter password again: 
    created restic repository f9419b33bc at b2:frank-restic-backup
    
    Please note that knowledge of your password is required to access
    the repository. Losing your password means that your data is
    irrecoverably lost.
    

    Damit wäre das Repository auf Blackbaze erzeugt. Jetzt können wir dort ein paar Daten zum Testen ablegen.

    root@debian:~# restic --password-file /root/passwd -r b2:frank-restic-backup backup /home/frank/Bilder
    repository f9419b33 opened successfully, password is correct
    created new cache in /root/.cache/restic
    
    Files:          68 new,     0 changed,     0 unmodified
    Dirs:            2 new,     0 changed,     0 unmodified
    Added to the repo: 183.462 MiB
    
    processed 68 files, 183.461 MiB in 5:49
    snapshot 6dc27047 saved
    

    Gut zum Testen was kleines und hier direkt der Hinweis, für Server ist das sicherlich besser geeignet. Der Upload ist ja zu Hause meistens ein Flaschenhals. Aber, wir sehen, es funktioniert.

    Restic Script erstellen

    Ich habe ja schon ein paar Cronjobs Laufen, so das ich jetzt eines dieser Scripte nehme und es modifiziere.

    #!/bin/bash
    # Script um mit Restic Daten automatisiert zu sichern!
    # Hier sichern wir das Bilderverzeichnis auf ein Backblaze Bucket!
    
    export B2_ACCOUNT_ID="ApplicationID"
    export B2_ACCOUNT_KEY="ApplicationKey"
        
    #Was soll gesichert werden?
    backup_pfad=/home/frank/Bilder
    
    #Programm Start
    restic --password-file /root/passwd -r b2:frank-restic-backup backup --verbose $backup_pfad
    

    Mittels --exclude-file=excludes.txt am Ende könnt ihr noch Verzeichnisse vom Sichern ausklammern.

    Backblaze.com hat eine gute Anleitung, schaut auf alle Fälle mal rein.
    https://help.backblaze.com/hc/en-us/articles/115002880514-How-to-configure-Backblaze-B2-with-Restic-on-Linux

    Test des Scriptes

    root@debian:~# ./backblaze.sh 
    open repository
    repository f9419b33 opened successfully, password is correct
    lock repository
    load index files
    using parent snapshot 6dc27047
    start scan on [/home/frank/Bilder]
    start backup on [/home/frank/Bilder]
    scan finished in 2.652s: 68 files, 183.461 MiB
    
    Files:           0 new,     0 changed,    68 unmodified
    Dirs:            0 new,     0 changed,     2 unmodified
    Data Blobs:      0 new
    Tree Blobs:      0 new
    Added to the repo: 0 B  
    
    processed 68 files, 183.461 MiB in 0:03
    snapshot e72e0f67 saved
    

    Ich hoffe, dem ein oder anderen habe ich jetzt auf den Geschmack gebracht. Mir sind beim Schreiben dieser Zeilen ein paar Ideen gekommen, was ich dort sichern könnte 😉

    de848228-fa40-4e6e-8cd4-7b15c8a26c8a-grafik.png

  • Update 1.32.7 - Security Fixes!

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    55 Aufrufe
    Niemand hat geantwortet
  • Nextcloud - Update auf 28.0.0

    Nextcloud
    5
    0 Stimmen
    5 Beiträge
    440 Aufrufe
    FrankMF

    28.0.1 ist da. Den Log Reader wieder aktiviert. Gleiches Verhalten. Kann ich so leider nicht gebrauchen, also wieder deaktiviert.

  • Debian 12 Bookworm - Release 12.1

    Linux
    1
    0 Stimmen
    1 Beiträge
    115 Aufrufe
    Niemand hat geantwortet
  • LUKS Key Derivation Function

    Linux
    1
    0 Stimmen
    1 Beiträge
    64 Aufrufe
    Niemand hat geantwortet
  • Rest-Server aufsetzen

    Angeheftet Restic
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    M

    @FrankM

    Hallo Frank,

    vielen Dank für deine Antwort. Die Clients greifen alle via REST-Schnittstelle auf den restic-Server zu. Da der restic-Server im append-only Modus läuft, können die Clients prinzipiell keine Snapshots entfernen, ihnen fehlt das Recht.

    Derzeit teste ich ein lokales, auf dem REST-Server liegendes Skript, welches per cron ausgeführt wird. Dieses Skript stellt eine lokale Verbindung zum REPO her, also nicht über die REST-Schnittstelle. Damit würde erstmal das Löschen älterer Snapshots funktionieren. Vielleicht hat ja noch jemand eine andere Idee??

  • Nextcloud Talk

    Nextcloud
    5
    0 Stimmen
    5 Beiträge
    824 Aufrufe
    FrankMF

    All I needed to do was setting the permissions to 744 for the archive directory and the symlinks resolved correctly after a reboot of coturn

    My turnserver installation on Debian runs as the user turnserver and not as root, nor is the user turnserver in any group owning the letsencrypt directory.
    If your turnserver does run as root, it should be fine just adding execute permissions.

    I hope this helps some of you.
    Quelle: https://help.nextcloud.com/t/lets-encrypt-symlink-breaks-coturn-configuration/70166

    Was zum Testen die Tage....

  • Cups Druckdaemon

    Linux
    1
    0 Stimmen
    1 Beiträge
    386 Aufrufe
    Niemand hat geantwortet
  • [HOWTO] Verschlüsseltes NAS aufsetzen

    Verschoben ROCKPro64
    12
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    FrankMF

    Da btrfs bei mir ja nicht so der Bringer war, Fehler im Image vom Kamil?, Fehler in btrfs? Ich weiß es nicht, also weg damit! Da ich das NAS noch richtig produktiv genutzt hatte, waren die Daten schnell gesichert. Danach das NAS neugestartet, nun sind die beiden Platten nicht mehr gemountet und wir können damit arbeiten.

    ACHTUNG! Ich bitte wie immer darum, das Gehirn ab hier einzuschalten! Sonst droht Datenverlust! Aus Sicherheitsgründen gebe ich hier die Laufwerke so an = sdX1 Das X bitte entsprechend austauschen!

    Die beiden Platten mit

    sudo fdisk /dev/sdX

    neu einrichten. Alte Partition weg, neu einrichten usw. Im Detail gehe ich hier jetzt nicht drauf ein. Ich gehe davon aus, das das bekannt ist.

    Der Plan

    raid_pool0 = sdX1 = /dev/mapper/raid_pool0
    raid_pool1 = sdX1 = /dev/mapper/raid_pool1

    Verschlüsseln sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1 sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1 Platten entschlüsseln sudo cryptsetup open /dev/sdX1 raid_pool0 sudo cryptsetup open /dev/sdX1 raid_pool1 RAID1 anlegen sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/mapper/raid_pool0 /dev/mapper/raid_pool1 sudo mkfs.ext4 /dev/md0 Script zum Entschlüsseln und Mounten crypt.sh #!/bin/bash ###############################################################################$ # Autor: Frank Mankel # Verschlüsseltes Raid1 einbinden! # # Hardware: # ROCKPro64v2.1 # PCIe SATA Karte # 2St. 2,5 Zoll HDD Platten a 2TB # # Software: # bionic-minimal 0.7.9 # Kontakt: frank.mankel@gmail.com # ###############################################################################$ #Passwort abfragen echo "Passwort eingeben!" read -s password echo "Bitte warten......" #Passwörter abfragen echo -n $password | cryptsetup open /dev/sdX1 raid_pool0 -d - echo -n $password | cryptsetup open /dev/sdX1 raid_pool1 -d - #Raid1 mounten mount /dev/md0 /mnt/raid echo "Laufwerke erfolgreich gemountet!"

    Bis jetzt sieht das Raid ok aus, ich werde das die nächsten Tage mal ein wenig im Auge behalten.

    [ 82.430293] device-mapper: uevent: version 1.0.3 [ 82.430430] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com [ 108.196397] md/raid1:md0: not clean -- starting background reconstruction [ 108.196401] md/raid1:md0: active with 2 out of 2 mirrors [ 108.240395] md0: detected capacity change from 0 to 2000260497408 [ 110.076860] md: resync of RAID array md0 [ 110.385099] EXT4-fs (md0): recovery complete [ 110.431715] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null) [57744.301662] md: md0: resync done.