Von Steffen Broßler auf Dienstag, 14. April 2026
Kategorie: IT-Security

Restic done right!

Backups sind ein essenzieller Bestandteil jeder IT-Infrastruktur, weshalb sie in den unterschiedlichsten Lösungsansätzen vertreten sind. Von einfachen Copy-Jobs, rclone oder rsync bis hin zu umfangreichen Enterprise-Lösungen wie dem EMC NetWorker ist nahezu alles möglich, je nach benötigtem Funktionsumfang und verfügbarem Budget.

Doch nicht immer muss es die „große, fully managed”-Lösung sein. Oft reichen leichtgewichtige Tools vollkommen aus, um eine zuverlässige Datensicherung zu gewährleisten.

Dieser Blogartikel stellt die Backup-Lösung restic vor, die sich in den letzten Jahren zunehmend etabliert hat – sowohl im Homelab-Bereich als auch für kleinere Enterprise-Szenarien.

Grundlagen zu restic

Restic ist in der Programmiersprache Go geschrieben, vollständig Open Source und wurde als sichere wie effiziente Backup-Lösung entwickelt. Es unterstützt moderne Sicherheitsmechanismen wie Verschlüsselung, Deduplizierung und eine performante Datenorganisation.

Dafür arbeitet restic intern mit einem Chunk-basierten Ansatz: Dateien werden in Blöcke („Chunks") zwischen ca. 512 kB und 8 MB Größe zerlegt – abhängig vom Dateninhalt. Das sorgt für effiziente Deduplizierung und schnelle inkrementelle Backups.

restic im Stand-alone-Einsatz

Am unkompliziertesten nutzt man restic als „Stand-alone”-Backup-Tool. Dabei wird lediglich der restic-Client benötigt, um Backups anzulegen oder wiederherzustellen. Dreh- und Angelpunkt ist dabei das sog. Repository, also das Zielverzeichnis, in dem die Backups gespeichert werden. 

Init – Repository erstellen

Ein neues Repository wird mit folgendem Befehl initialisiert:

restic -r <repo> init

<repo> kann dabei ein Dateipfad oder eine Remote-Adresse sein. restic fragt anschließend nach einem Passwort, mit dem das Repository verschlüsselt wird. In einem entsprechenden Beispiel sieht das ganze dann so aus:

Ein großer Vorteil von restic ist, dass das Repository lediglich aus Ordnern und Dateien besteht, welche sich mit normalen Dateisystemmitteln kopieren und sichern lassen. Dadurch können auch restic-Repos selbst zuverlässig gesichert werden. 

Backup – Daten sichern

Ein Backup wird über folgenden Befehl ausgeführt:

restic -r <repo> backup <pfad>

Damit das funktioniert, muss das <repo> zuvor bereits initialisiert worden sein. Der angegebene <pfad> wird als Snapshot gesichert. Bei weiteren Backups speichert restic nur die geänderten Blöcke, was den Speicherbedarf gering hält.

Review – Snapshots anzeigen

Mit:

restic -r <repo> snapshots

können alle Snapshots, die in einem Repository bereits erstellt wurden, angezeigt werden. Ein „ls” listet im Anschluss auch die Dateien des Snapshots auf.

Recover – Daten wiederherstellen

Restic erlaubt sowohl die Wiederherstellung des letzten Snapshots als auch eines gezielten Snapshots: 

oder eine einzelne Datei aus einem Snapshot: 

Für eine komfortable Suche im Backup bietet restic zudem: restic mount 

Damit wird das Repository als Dateisystem eingebunden und ist einfach durchsuchbar. 

Forget – Snapshots aufräumen

Snapshots können mit folgendem Befehl verworfen werden: restic -r <repo> 

Mit der Option --prune werden die Daten auch physisch gelöscht. Hier lassen sich flexible Retention‑Policies definieren, um alte Backups automatisiert zu entfernen. Bspw „--keep-last 5” oder „--keep-daily 5”, das funktioniert auch mit weekly, yearly, monthly oder sogar hourly.

Da die manuelle Eingabe des Passworts in vielen automatisierten Szenarien nicht sinnvoll ist, können dafür Passwort-Files oder Umgebungsvariablen eingesetzt werden.

Besonders elegant ist die Verwendung des „Password Commands”, bei dem das Passwort als Ausgabe eines ausgeführten Befehls erwartet wird – damit könnten auch externe Secret-Management-Lösungen angebunden werden. 

Verifikation der Integrität mit restic check

Um sicherzustellen, dass die Backups integer und frei von Schreibfehlern sind, ist es dringend angeraten, regelmäßig das Kommando restic check auf das Repository anzuwenden. 

Sollten dabei Fehler auffallen, können diese proaktiv angegangen und behoben werden und sorgen nicht für einen Ausfall des Backups, wenn es „brennt”.

Konfigurationsdateien mit resticprofile

Egal, ob die Backups automatisiert oder per CLI manuell angelegt werden sollen, aufgrund der Komplexität und Menge der Parameter tut man gut daran, ein entsprechendes Skript zu entwickeln, welches das Backup für einen durchführt. Das könnte wie folgt aussehen: 

Die Entwicklung eines eigenen Skripts führt allerdings zwangsläufig zu dem Problem, dass diese Skripte zum Anlegen des Backups sowohl potenziell komplex als auch fehleranfällig und wartungsintensiv sind und ggf. aufgrund von zu starkem Customizing auch schlecht wiederverwendet werden können. Außerdem müssen zusätzliche Cronjobs oder Systemd-Timer angelegt werden, damit das Backup automatisiert ausgeführt wird.

Um das zu vereinfachen, bietet es sich an, als Ergänzung zur restic ebenfalls resticprofile einzusetzen. Anstatt alle Parameter per CLI händisch an den restic-Befehl anzuhängen, nutzt diese Anwendung eine Konfigurationsdatei, wahlweise im .toml-, .yaml-, .json- oder .hcl-Format, um die Parameter einzulesen und anzuwenden. Eine entsprechende profile.yaml sieht bspw. so aus:

Um damit ein Backup anzustoßen, genügt nun ‚resticprofile backup' und die Parameter der Datei werden (bei korrektem Dateinamen und Pfad, bspw. ~/profiles.yaml) automatisch angewendet. Damit das funktioniert, muss die profiles-Datei an einem definierten Pfad liegen, der von resticprofile gelesen wird. Die vollständige Liste der möglichen Pfade findet sich hier. Dort findet sich auch eine umfangreiche Doku mit Beispielen, in denen viele Parameter beschrieben sind.

Die gewohnten CLI-Parameter von restic funktionieren in den meisten Fällen weiter (bspw. ls, snapshots, mount), wobei ohne Parameter automatisch ein Snapshot durchgeführt wird.

Damit die in der Datei definierten „Schedules” auch greifen, muss ein resticprofile schedule ausgeführt werden, wodurch automatisch ein systemd-timer angelegt wird, der fortan automatisiert die Backups anlegt.

Im o. g. Beispiel-Profil finden sich außerdem die Parameter „tag” und „host”, welche für ein strukturiertes Backup-Konzept ggf. sehr nützlich sein können. Denn je nach Backup-Konzept sichern mehrere Server in das gleiche Repository und unter Umständen sogar unterschiedliche Backups. Mit dem Parameter „host” merkt sich restic, von welchem Host das Backup erzeugt wurde. Mit dem Parameter „tag” lassen sich frei wählbare Tags vergeben (z. B. 'automatic' und 'daily'). Dadurch können beispielsweise anlassbezogen händische Backups erzeugt werden, die sich von automatisierten Backups einwandfrei unterscheiden lassen. Es lassen sich auch mehrere Verzeichnisse über die „Source”-Liste eintragen, sodass auch komplexere Sicherungsprozesse abgebildet werden können.

Speicherorte und Rest-Server

Als Speicherort für die Backups unterstützt restic eine Vielzahl an gängigen Speichermethoden, darunter natürlich gemountete Netzwerkverzeichnisse, SFTP-Adressen, S3-Buckets usw., womit eine Vielzahl an Usecases bereits abgedeckt sein dürfte.

Doch gerade in der aktuellen Zeit der Ransomware-Angriffe sind Lösungen, bei denen die alten Backups nicht gelöscht oder überschrieben werden können, gefragt – und auch hier bietet restic eine Lösung: den restic-rest-server.

Der restic-REST-Server lässt sich nativ oder als Docker-Container auf einem beliebigen Zielserver starten und sollte mit einer .htpasswd-Datei vor unberechtigtem Zugriff geschützt werden.

Im Anschluss kann mittels „rest://…" der Server als Zieladresse angesprochen werden und über den Pfad <servername>/<reponame> kann ein entsprechendes Repo ausgewählt/angesprochen werden.

Die resticprofile-Konfig ändert sich dadurch wie folgt:

Neben der erhöhten Sicherheit durch den Schutz vor unberechtigtem Überschreiben/Löschen liefert dieser bspw. auch einen /metrics-Endpoint zur Überwachung via Prometheus usw. direkt aus, was eine höhere Transparenz und Überwachbarkeit ermöglicht.  

Fazit

Restic allein ist bereits eine sinnvolle und gute Lösung, um Backup & Recovery im kleinen Unternehmen kostengünstig zu betreiben. Es ist zwar kein vollwertiger Ersatz für so manche „Full Service”-Lösung, bietet aber eine solide Basis. Wird es um resticprofile und restic-rest ergänzt, können damit bereits viele Backup-Usecases erfüllt werden und insbesondere die wichtigen, automatischen und regelmäßigen Backups lassen sich strukturiert und zuverlässig umsetzen.  

Seminarempfehlung

Verwandte Beiträge

Kommentare hinterlassen