Syncscript.sh: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| Line 21: | Line 21: | ||
* Damit das temporäre Ecnfs-Volume angelegt werden kann, braucht es ein encfsctl mit einem Patch. Der Patch sorgt dafür, dass man das Passwort für das Encfs über einen File-Handle zur Verfügung stellen kann (ohne Patch geht nur Eingabe über Tastatur). Da wir die Sourcen von Encfs auf fish-serv nicht kompilieren konnten, haben wir die nötigen Binaries (und versch. dazugehörige 32-bittige Libraries) von marcos.dyndns.org einfach kopiert.  | * Damit das temporäre Ecnfs-Volume angelegt werden kann, braucht es ein encfsctl mit einem Patch. Der Patch sorgt dafür, dass man das Passwort für das Encfs über einen File-Handle zur Verfügung stellen kann (ohne Patch geht nur Eingabe über Tastatur). Da wir die Sourcen von Encfs auf fish-serv nicht kompilieren konnten, haben wir die nötigen Binaries (und versch. dazugehörige 32-bittige Libraries) von marcos.dyndns.org einfach kopiert.  | ||
* Ebenso kopiert wurde /usr/bin/filetemp da dies offenbar bei Suse nicht dabei ist.  | * Ebenso kopiert wurde /usr/bin/filetemp da dies offenbar bei Suse nicht dabei ist.  | ||
== Weiteres ==  | |||
* Verschlüsseltes volume manuell auf Efan's System mounten: encfs ~/backupdisk/new_enc/LxjIsYEwDQROhmjFYh1REj9b/ ~/clear/  | |||
* unmount: fusermount -u clear  | |||
* Grosse Files finden: find . -type f -size +500000k -ls  | |||
Revision as of 11:52, 9 June 2018
Grundidee
Seit Version 1.5 beherrscht Encfs die sog. Reverse-Encryption. Dabei wird ein Klartext-Verzeichniss als Chiffrat gemountet (normal wäre ja umgekehrt: Die Daten liegen als Chiffrat auf der Platte und werden dann zum Klartext gemountet). Mit dieser Reverse-Encryption lässt sich folgendes erreichen:
- Auf dem Quell-System werden die Klartext-Verzeichnisse mittels Reverse-Encryption in ein temporäres Verzeichnis gemountet
 - Das temporäre Verzeichnis wird per rsync auf das Ziel-System synchronisiert
 - Auf dem Ziel-System muss zu keiner Zeit der Verschlüsselungs-Schlüssel vorliegen!
 
Auf diese Art kann die grösstmögliche "plausable deniability" erreicht werden: Der Eigner des Ziel-Systems kann nicht wissen, was für Daten abgelegt werden. Er kann auch den entsprechenden Verschlüsselungs-Schlüssel weder mitsniffen noch sonst wie erhalten.
In- und Exclusions
Knifflig war die Umsetzung von In- und Exclusions: Damit wie bei rsync üblich mit include- und exclude-files verwendet werden können, muss syncshript.sh die verschlüsselten Namen der In- und Excluded Files und Directories ermitteln. Dies wird durch ein temporär erzeugtes Encfs-Volume erreicht. Dieses wird kurz erzeugt, mittels der In- und Exclude-Files werden die verschlüsselten Namen darin erzeugt und diese dann für die effektiven In- und Exclude-Files für den rsync verwendet.
Implementierung
Hier ein paar Details zur Implementierung auf fish-serv:
- syncscript.sh und die dazugehörigen Dateien liegen im Home von root und werden als root ausgeführt
 - Die nicht-sensitiven Bereiche des Offsite-Backup (wwwrun, mp3) werden unverschlüsselt übertragen und gespeichert.
 - Das Script syncall.sh synct zuerst wwwrun, dann mp3 und schliesslich home mittels syncscript.sh
 - Damit das temporäre Ecnfs-Volume angelegt werden kann, braucht es ein encfsctl mit einem Patch. Der Patch sorgt dafür, dass man das Passwort für das Encfs über einen File-Handle zur Verfügung stellen kann (ohne Patch geht nur Eingabe über Tastatur). Da wir die Sourcen von Encfs auf fish-serv nicht kompilieren konnten, haben wir die nötigen Binaries (und versch. dazugehörige 32-bittige Libraries) von marcos.dyndns.org einfach kopiert.
 - Ebenso kopiert wurde /usr/bin/filetemp da dies offenbar bei Suse nicht dabei ist.
 
Weiteres
- Verschlüsseltes volume manuell auf Efan's System mounten: encfs ~/backupdisk/new_enc/LxjIsYEwDQROhmjFYh1REj9b/ ~/clear/
 - unmount: fusermount -u clear
 - Grosse Files finden: find . -type f -size +500000k -ls