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

17.09.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, Verbesserungsvorschläge, weitere Ideen?

Einfach das Kontaktformular verwenden oder direkt eine E-Mail an info@kirgus.net.