Hallo zusammen,

vor einiger Zeit habe ich mich mit Backups beschäftigt. Ich hatte hierzu eine 
Frage an die Liste gestellt und viele hilfreiche Antworten erhalten. Dafür sage 
ich: Danke für die viele Unterstützung.

Damals habe ich keine Lösung implementiert, weil ich nicht alle meine 
Anforderungen umsetzen konnte. Heute habe ich mich des Themas noch einmal 
angenommen und noch einmal folgende Anforderungen an meine Lösung formuliert:

-- Anforderungen --
-------------------
1. Ausgereifte und in Entwicklung befindliche Open-Source Software soll 
eingesetzt werden.
2. Die Backuplösung soll sowohl unter Linux als auch unter Windows lauffähig 
sein.
3. Es soll ein lokales und ein remote Backup erstellt werden.
4. Das lokale Backup soll verschlüsselt sein.
5. Die Verschlüsselung soll dateiweise erfolgen.
6. Die Lösung soll über einen Cron-Job angestoßen werden.
7. Die Verschlüsselung der Übertragung soll nicht vorgenommen werden.
8. Die Lösung soll mit den zur Verfügung stehenden Mitteln umgesetzt werden.

Folgende Situation liegt bei mir vor:

-- Ausgangssituation --
-----------------------
- Ich arbeite an einem Desktop PC mit Windows 7.
- Zusätzlich nutze ich gelegentlich ein Lenovo Notebook mit Windows 7.
- In meinem Netzwerk steht ein NAS mit einer Festplatte.
- Alle Rechner speichern Daten auf dem NAS.
- Die Daten auf dem NAS werden unverschlüsselt gespeichert, die NAS-Software 
unterstützt altersbedingt keine verschlüsselten Backups.
- An das NAS angeschlossen ist eine externe USB-Festplatte, auf das NAS ein 
Backup der Daten ablegt.
- Das Backup der Daten ist ebenfalls unverschlüsselt.
- Es gibt einen Online-Speicher bei 1und1 mit 100 GB Speicherplatz, der derzeit 
nicht genutzt wird.
- Es steht ein Raspberry PI B zur Verfügung.

Ich habe mir folgendes Konzept überlegt:

-- Konzept --
-------------
- Das NAS soll selbst kein Backup durchführen.
- Der Raspberry PI soll als Sicherungsserver dienen.
- Der Raspberry PI soll das Backup für die Daten vom unverschlüsselten NAS 
verschlüsselt auf die externe USB-Festplatte schreiben.
- Der Raspberry PI soll eine Kopie des verschlüsselten Backups von der externen 
USB-Festplatte auf das Cloud-Drive bei 1und1 schreiben.

Das Konzept soll auf ssh, rsync, encfs und cron basieren und wie folgt 
umgesetzt werden:

-- Umsetzung --
---------------
- Raspbian auf dem Raspberry PI installieren.
- ssh, rsync, encfs und cron installieren.
- encfs konfigurieren:
  - Verschlüsselung = AES
  - Blockgröße = 512 Byte
  - Verschlüsselung der Dateinamen = Stromverschlüsselung mit gesetzter Option 
zur Verschlüsselung von Pfad und Dateiname
  - Prüfsummen für jeden Datenblock = ja
  - Neuer Initialisierungsvektor für jede Datei = nein
- Verzeichnisse für unverschlüsselte Daten, z. B. data-plain, und 
verschlüsselte Daten, z. B. .data-crypt (als versteckte Datei), zur Nutzung mit 
encfs auf der externen Festplatte anlegen.
- Datei .encfs6.xml mit dem Volume Key und dem Passwort auf einem externen 
Datenträger verschlüsselt sichern.
- Sicherungsskript erstellen:

-- schnipp --
#!/bin/sh
# Backupskript_2015-04-25.sh

# Einige Shellbefehle müssen noch ergänzt werden, zunächst hier nur das Gerüst.

# Mounten des Verzeichnisses mit den verschlüsselten Daten (.data-crypt) unter 
dem Verzeichnis mit den unverschlüsselten Daten (data-plain)
mount -t ext3 /dev/sdX /media/extern-usb-hdd
encfs /media/extern-usb-hdd/.data-crypt /extern-usb-hdd/data-plain
mount "1 und 1 Cloud Drive" /media/1und1_Online-Speicher

# Backup der Daten vom NAS auf die externe USB Festplatte
# -a: -r kopiert Unterverzeichnisse
#     -l kopiert symbolische Links
#     -p behält Rechte der Quelldatei bei
#     -t behält Zeiten der Quelldatei bei,
#     -g behält Gruppenrechte der Quelldatei bei
#     -o behält Besitzrechte der Quelldatei bei (nur root)
#     -D behält Gerätedateien der Quelldatei bei (nur root)
# -c: Prüfsummen bilden
# -h: Human readable Ausgaben erzeugen
# -e: Remote Shell = ssh
# -E: erhält den Status "executable" von ausführbaren Dateien
# -stats: Bericht der Übertragung anzeigen
# --delete: sorgt dafür, dass Dateien, die im Quellverzeichnis nicht (mehr) 
vorhanden sind, im Zielverzeichnis gelöscht werden
# --inplace: Option im Text gefunden, jedoch keine Dokumentation der Option im 
Wiki, gibt es die Option?
# --iconv: sorgt für eine Konvertierung der Dateinamen zwischen Systemen mit 
verschiedenen Codepages (prüfen!)
rsync -a -c -h -E -stats -e "ssh -i /home/user/.ssh/sshkey" --delete --inplace 
/NAS/data /media/extern-usb-hdd/.data-crypt > 
/pfad/backup_local_report_%Systemdatum- und Zeit%.txt

# Kopie des lokalen Backups auf den Cloudspeicher schreiben
rsync -a -c -h -E -stats -e "ssh -i /home/user/.ssh/sshkey" --delete --inplace 
/media/extern-usb-hdd/.data-crypt /media/1und1_Online-Speicher > 
/pfad/backup_remote_report_%Systemdatum- und Zeit%.txt

# Aushängen der Verzeichnisse
umount /media/1und1_Online-Speicher
fusermount -u /extern-usb-hdd/.data-crypt
umount /media/extern-usb-hdd

# End-of-file
-- schnipp --

Das Backupskript mit

chmod 0700 Backupskript_2015-04-25.txt

nur für root bearbeitbar und ausführbar machen.

Dann einen Cronjob in Tabelle /etc/crontab eintragen:

-- schnipp --
0 0 * * * root Backupskript_2015-04-25.sh
-- schnipp --

Was meint Ihr dazu? Habe ich hier wesentliche Punkte übersehen? Was würdet Ihr 
ändern?

Ich freue mich über Eure Nachrichten.

Viele Grüße

Georg



Quellen:
(1) https://web.archive.org/web/20140211051334/http://www.arg0.net/encfs
(3) 
http://www.pcwelt.de/ratgeber/Datenschutz_unter_Linux_durch_Verschluesselung-Linux-Sicherheit-8205997.html
(4) https://web.archive.org/web/20140316084820/
(4) 
http://www.admin-magazin.de/Das-Heft/2009/03/Verschluesselung-mit-EncFS/(offset)/6/(language)/ger-DE
(5) http://de.wikipedia.org/wiki/EncFS
(6) https://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/
(7) 
https://www.bitblokes.de/2012/02/automatische-datensicherung-backup-script-mit-rsync-bei-einstecken-einer-externen-festplatte/
(8) http://wiki.ubuntuusers.de/rsync
(9) 
https://www.thomas-krenn.com/de/wiki/Daten_mit_rsync_unter_Linux_synchronisieren
(10) http://wiki.ubuntuusers.de/Cron


_______________________________________________
Trolug_trolug.de mailing list
trolug@trolug.de
https://ml01.ispgateway.de/mailman/listinfo/trolug_trolug.de

Antwort per Email an