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!