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

  • 0 Stimmen
    1 Beiträge
    84 Aufrufe
    Niemand hat geantwortet
  • Restic v0.16.1 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    93 Aufrufe
    Niemand hat geantwortet
  • Crowdsec - Ein fail2ban Ersatz?

    Linux
    2
    0 Stimmen
    2 Beiträge
    493 Aufrufe
    FrankMF

    Ich kann jetzt hier von meiner ersten Erfahrung berichten und wie CrowdSec mich gebannt hat 🙂

    Was war passiert? Ich war gestern sehr intensiv mit der Konfiguration von Nextcloud <-> Collabora Online beschäftigt. Nachdem ich irgendwie nicht weiterkam habe ich mich der Erstellung eines Dokumentes gewidmet. Nach einiger Zeit war die Nextcloud nicht mehr erreichbar.

    Ok, hatte ich bei der Konfiguration auch schon mal, den Server einmal neugestartet und fertig. Doch jetzt kam es, Server neugestartet - hilft nicht. Gut, schauen wir mal nach, Der SSH Login ging auch nicht 😞

    Jetzt war guter Rat gefragt. Zu diesem Zeitpunkt ging ich noch davon aus, das auf diesem Server kein CrowdSec installiert war, sondern fail2ban. Und fail2ban hatte eine sehr kurze Bantime vom 10M.

    Also blieb wohl nur noch das Rescue System von Hetzner.

    488866bc-3dcf-4abc-9e98-6107d65aa4c7-grafik.png

    Da hatte ich ja so gut wie gar keine Erfahrung mit. Also mal kurz den Nico angetriggert und es kam folgender Link.

    Link Preview Image Hetzner Rescue-System - Hetzner Docs

    favicon

    (docs.hetzner.com)

    Das Laufwerk war schnell bestimmt und schnell nach /tmp gemountet. Danach musste man sich noch mit chroot in diese Umgebung anmelden.

    chroot-prepare /mnt chroot /mnt

    Nachdem das klappte, habe ich eben fail2ban disabled.

    sysmctl disable fail2ban

    Danach das Rescue beendet. Der Server startete wieder und ich kam wieder per SSH drauf. Puuh.
    Bei meiner ersten Kontrolle fiel mir was auf

    root@:~# pstree systemd─┬─2*[agetty] ├─atd ├─cron ├─crowdsec─┬─journalctl │ └─8*[{crowdsec}] ├─crowdsec-firewa───9*[{crowdsec-firewa}]

    Wie? Da läuft CrowdSec? Da ich dabei bin die Server auf CrowdSec umzustellen, war das wohl hier schon gemacht, aber leider nicht vernünftig. fail2ban hätte mindestens disabled werden müssen und in meiner Dokumentation war das auch nicht enthalten. 6 setzen!

    CrowdSec besteht ja aus zwei Diensten, CrowdSec und dem Firewall-Bouncer. Der CrowdSec Dienst lief aber nicht, der war irgendwie failed. Ok, starten wir ihn und schauen was passiert. Nachdem er gestarte war mal die Banliste angeschaut.

    cscli decisions list

    ergab diesen Eintrag.

    2551501 │ crowdsec │ Ip:5.146.xxx.xxx │ crowdsecurity/http-crawl-non_statics │ ban │ │ │ 53 │ 1h5m55.391864693s │ 1671

    Meine IP war gebannt. Dann wissen wir ja , woher die Probleme kamen.

    cscli decisions delete --id 2551501

    Nach Eingabe war der Ban entfernt. Na gut, aber da ich aktuell immer noch an der richtigen Konfiguration von NC <-> CODE bastel, könnte das ja wieder passieren. Was machen? Kurz gegoogelt. Es gibt eine Whitelist. Aha!

    /etc/crowdsec/parsers/s02-enrich/whitelists.yaml

    name: crowdsecurity/whitelists description: "Whitelist events from private ipv4 addresses" whitelist: reason: "private ipv4/ipv6 ip/ranges" ip: - "127.0.0.1" - "::1" - "5.146.XXX.XXX" cidr: - "192.168.0.0/16" - "10.0.0.0/8" - "172.16.0.0/12" # expression: # - "'foo.com' in evt.Meta.source_ip.reverse"

    Danach den Dienst neustarten. Jetzt hoffen wir mal, das es hilft.

    Zum Schluss noch was, was mir aufgefallen war und was mich auch sehr verwirrt hatte. CrowdSec hatte wegen einem crowdsecurity/http-crawl-non_statics gebannt. Dadurch konnte ich meine
    subdomain.<DOMAIN> nicht erreichen. Ok, logisch, wenn der Ban von da ausgeht. Ich konnte aber gleichzeitig eine andere subdomain mit derselben <DOMAIN> auch nicht erreichen. Komplett verwirrte es mich dann, als ich eine andere <DOMAIN> auf dem selben Server erreichen konnte. Und zum Schluss ging auch der SSH nicht.

    Also, wieder viel gelernt.. 🤓

  • 0 Stimmen
    1 Beiträge
    223 Aufrufe
    Niemand hat geantwortet
  • Restic v0.11.0 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    184 Aufrufe
    Niemand hat geantwortet
  • Restic v0.10.0 released

    Restic
    2
    0 Stimmen
    2 Beiträge
    193 Aufrufe
    FrankMF

    Gerade erst gelesen, man kann folgendes machen, damit es sich aktualisiert.

    root@debian:~# restic self-update writing restic to /usr/bin/restic find latest release of restic at GitHub latest version is 0.10.0 download SHA256SUMS download SHA256SUMS.asc GPG signature verification succeeded download restic_0.10.0_linux_amd64.bz2 downloaded restic_0.10.0_linux_amd64.bz2 saved 18378752 bytes in /usr/bin/restic successfully updated restic to version 0.10.0 root@debian:~# restic version restic 0.10.0 compiled with go1.15.2 on linux/amd64

    Klasse!

  • Kopia 0.6.x released

    Kopia
    3
    0 Stimmen
    3 Beiträge
    230 Aufrufe
    FrankMF

    0.6.3 released

    c142598 Disable blob deletion in 0.6 unless KOPIA_ENABLE_BLOB_DELETION is set to true (#552)

    Aufpassen, es gibt da wohl ein Problem, was zu Datenverlust führen könnte!

  • Restic - Ein Backupkonzept

    Angeheftet Restic
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet