Cloud-Encryption

Aus Neobikers Wiki
Zur Navigation springen Zur Suche springen

Verschlüsselung, Datensicherung, Cloud und mehr

(En)CryptFS verschlüsselt Daten auf dem Fileserver. Diese werden verschlüsselt in beliebigen Cloud-Storage (webdav) gesichert (rsync), und können von beliebigen Geräten - sogar einem Live Linux auf einem USB-Stick - im Notfall gelesen werden.

Ich habe ein Knoppix mit verschlüsselter Datenpartition auf einem USB-Stick an meinem Schlüsselbund und kann damit von jedem (fremden) PC vom USB-Stick booten, eine VPN-Verbindung nach Hause aufbauen oder ein verschlüsseltes Backup-Verzeichnis aus dem Cloud-Storage mounten und auf dieses entschlüsselt zugreifen. Meine Notfall Datensicherung liegt also verschlüsselt in einem Cloud-Storage (falls meine Hütte mal abbrennt oder absäuft, oder Stromschlag alle 5 Harddisks zuhause zerstört, wo die Daten redundant liegen).

Verschlüsselung

Nachdem meine 2TB Harddisk einen Defekt hatte, und ich 2 Wochen gebraucht habe, die Daten runter zu kratzen und anschliessend zu löschen (dd dauert bei einer defekten 2TB Disk ziemlich lange), habe ich mich entschlossen meine kritischen Daten zu verschlüsseln. Von 3 neuen Festplatten war prompt eine sofort wieder defekt, freilich erst, nachdem ich diese mit 2TB in einem RAID eingebunden und gesynced hatte. Garantie heisst: zurück zu AMAZONE ... also sollten keine Daten mehr drauf liegen - bin extrem genervt.

Problem: Der (XEN-) Server muss vollautomatisch starten, der Schlüssel darf nicht auf den Platten liegen!

Lösung: Ich speicher den Schlüssel auf einen USB-Stick, und kopiere diesen beim booten des XEN-Host in den RAM(tmpfs)! Die virtuellen Server lesen den Schlüssel bedarfsweise per ssh vom XEN Hostsystem.

root@m450# ls -l /etc/EncFS.PWD
lrwxrwxrwx 1 root root 18 Sep  9 17:38 /etc/EncFS.PWD -> /var/run/EncFS.PWD

root@m450:~# df /var/run
Dateisystem    1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
tmpfs              35780     908     34872    3% /run

root@m450:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

ssh vm01 'cat /root/USB-Stick/EncFS.PWD' > /etc/EncFS.PWD # USB-Stick is mounted in virtual System vm01

Der Fileserver benötigt diesen Schlüssel zum mounten der verschlüsselten Filesystems. Dazu wird mit ein Helper-Skript benötigt, welches in der fstab eingetragen wird:

root@srv:~# cat /usr/local/sbin/encfs.sh
#!/bin/sh
encfs --public --extpass="ssh m450 cat /etc/EncFS.PWD" $*


root@srv:~# cat /etc/fstab | grep encfs
/usr/local/sbin/encfs.sh#/srv/crypt                         /srv/daten               fuse noauto,kernel_cache,nofail 0 0
/usr/local/sbin/encfs.sh#/backup/snapshot/latest/srv/crypt  /backup/snapshot-latest  fuse noauto,nofail,ro           0 0

Datensicherung

Jetzt wo die Daten verschlüsselt sind, können diese an beliebige Orte gesichert werden. Ich benutze zur Sicherung weiterhin rsync, jeweils den letzten Snapshot sichere jede Nacht in verschiedene Cloud-Speicher (T-Online, 1blu, ...).

Cloud Storage

Den Cloud Storage binde ich mit webdav auf meinem Fileserver ein (T-Online), oder kann sogar direkt per ssh rsync verwenden (1blu). Webdav kann man von inzwischen überall direkt mounten (Windows und Linux Clients), sehr praktisch. Ich hab alles notwendige auf einem Knoppix-USB Stick installiert, von dem ich booten kann.