Verschlüsseltes Backup mittels einer FreeNAS-Jail mit Duplicity und Amazon Drive

08.11.2017
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Bild

Heute möchte ich in diesem Artikel zeigen, wie man in einer FreeNAS-Jail beliebige Daten auf seinem Server auf sein Amazon-Cloud-Drive verschlüsselt hochladen kann.

Ausgangssituation:

  • Eine Jail wurde bereits eingerichtet
  • Ein Amazon Drive Zugang besteht
  • Duplicity ist bereits mit GnuPGP in der Jail korrekt eingerichtet

Wir verbinden uns mit root-Rechten mit dem Server und wechseln als erstes in die Jail:

jexec <Name der Jail> csh

Nun aktualisieren wir alle Pakete:

pkg update

Nun sollten die Paketinformationen aktualisiert werden. Evtl. muss hierbei auch auf eine neuere pkg-Version aktualisiert werden.
Wenn alle Paketinformationen auf dem neusten Stand sind, installieren wir den aktuelle Version von Python (am besten die aktuelle Versionsbezeichnung suchen und dann dementsprechend anpassen):

pkg install pypy3-5.2.0.a1

Nun müssen wir einen kleinen Umweg gehen: Auf jeder Jail ist bereits eine Python-Version installiert. Deshalb wird der Python-Paketmanager nicht direkt installiert. Dieses Problem umgehen wir, indem wir den Installer für den Paketmanager mittels wget herunterladen und dann installieren:

pkg install wget
wget https://bootstrap.pypa.io/get-pip.py
chmod +x get-pip.py
python3.5 get-pip.py

Nun können wir acd_cli (in meinem Fall direkt über Git) herunterladen und installieren:

pip3 install --upgrade git+https://github.com/yadayada/acd_cli.git

Leider fehlt (nach einiger Recherche) dann noch das SQLite-Modul von Python:

pkg install py35-sqlite3

Nun können wir versuchen, acd_cli das erste Mal zu starten:

acd_cli init

Sollten alle Pakete korrekt installiert worden sein, sollte nun die folgende Meldung angezeigt werden:

For the one-time authentication a browser (tab) will be opened at <URL>.
Please accept the request and save the plaintext response data into a file called "oauth_data" in the directory "/root/.cache/acd_cli".
Press a key to open a browser.

Da wir uns aktuell auf einer Konsole befinden, kopieren wir den Link aus der Konsole heraus und öffnen auf unserem Desktop-PC einen Browser mit diesem Link.

Nun erscheint nach kurzer Zeit das Anmeldefenster von Amazon. Nun müssen die Amazon-Drive-Daten angegeben werden. Nach einem Klick auf "Anmelden" wird eine Datei zum Download angeboten. Die Datei muss nun heruntergeladen werden und in das Verzeichnis /root/.cache/acd_cli kopiert werden.

In meinem Fall wurde das .cache-Verzeichnis nicht unter WinSCP angezeigt, deshalb habe ich es in das /root-Verzeichnis gelegt und von dort mittels

cp /root/oauth_data /root/.cache/acd_cli/oauth_data

hineinkopiert.

Nun versuchen wir ein zweites Mal, acd_cli zu starten:

acd_cli init

Nun kommt folgende "kritische" Fehlermeldung:

[CRITICAL] [acd_cli] - Root node not found. Please sync.

Diese Meldung entsteht, da das System noch nicht mit den "Nodes" synchronisiert ist. Das wird nun mit diesem Befehl nachgeholt:

acd_cli sync

Nun sind die Nodes synchronisiert und es kann mit acd_cli gearbeitet werden. In diesem Beispiel erstellen wir einen neuen Ordner auf dem Amazon Drive, um später darin ein Backup ablegen zu können:

acd_cli mkdir --parents /<Backupverzeichnis>

Nun erstrellen wir ein Shell-Script und kopieren in diesem Beispiel die folgenden 3 Zeilen hinein:

setenv PASSPHRASE <Das Kennwort für PGP>
duplicity -v 6 <Pfad zum lokalen Verzeichnis> acd+acdcli:///<Backupverzeichnis>
setenv PASSPHRASE nothing

Nun das Script noch als ausführbar kennzeichnen und von der Shell starten.

Happy Backup!


 

Feedback, suggestions for improvement, further ideas?

Simply use the contact form or send an email directly to info@kirgus.net.