BTRFS Snapshots gegen Ransomeware und Zeugs

Fedora kommt seit Version 34 mit btrfs als Standard-Dateisystem. Einer der Vorteile von btrfs ist die Möglichkeit, sehr schnell Snapshots zu erstellen, die praktisch keinen Platz auf der Platte verbrauchen - oder besser - nur Platz für geänderte Dateien verbrauchen. Es bietet sich also an, regelmäßige Snapshots zu erstellen.

Da ich faul bin, nehme ich dafür btrfs-snapshot-rotation. Ich installiere das Skript in /usr/local/bin und mache es ausführbar chmod 755 btrfs-snapshot.

Snapshot Subvolume erstellen

Ich habe ein standard Fedora Layout also ein subvolume für home und genau dafür möchte ich Snapshots erstellen. Dafür brauche ich ersteinmal ein subvolume wo die Snapshots gespeichert werden.

sudo btrfs subvolume create /home/.btrfs

Kurzer Test

Einmal überprüfen, ob es funktioniert:

sudo /usr/local/bin/btrfs-snapshot /home /home/.btrfs daily 8

Das sollte jetzt ein nur lesen Snapshot in /home/.btrfs angelegt haben.

Täglicher Snapshot

jetzt lege ich eine Datei in /etc/cron.daily an, damit jeden Tag ein Snapshot erzeugt wird.

#!/bin/bash
/usr/local/bin/btrfs-snapshot /home /home/.btrfs daily 8 -q

Ausführbar machen nicht vergessen. Done. Jetzt sollte jeden Tag ein Snapshot erzeugt werden und nur die letzten 8 werden aufbewahrt.

Wenn ich jetzt also versehentlich mein home Verzeichnis lösche, oder über npm eingeschleppte Malware meine Daten löscht, habe ich noch den Snapshot vom letzten Tag.