Wer öfters unterwegs ist und sich nicht immer per VPN mit dem Firmenserver verbinden möchte, sucht vielleicht irgenwann nach einer portablem Lösung.

In meinem konkreten Fall war es so, dass ich mich immer per VPN mit dem Hauptserver verbunden hatte, und die Server Laufwerke lokal eingebunden habe. So sollte man theoretisch von unterwegs genau so arbeiten können, wie wenn man im Büro sitzt. Allerdings war hier das Problem, dass das Arbeiten per FTP praktisch unmöglich war, da das Directory Listing der per VPN eingebundenen Laufwerke unglaublich langsam war. Das Problem ist generell bekannt (Ticket1, Ticket2), aber eine wirkliche Lösung habe ich leider nie gefunden. So arbeiten zu müssen war furchtbar, also musste eine andere Lösung her.

Anforderung: Genug grosser USB Stick für den Schlüsselbund, Passwortgeschützt & mit Synchronisationssoftware. Ausserdem muss der Stick plattformübergreifend unter Linux wie auch Windows funktionieren.

Dazu brauchen wir:

  1. USB Stick (z.B. Intenso Slim Line 32GB USB 3.0)
  2. VeraCrypt für die Verschlüsselung
  3. FreeFileSync für die Synchronisation

Anmerkung zu portablen Versionen:

FreeFileSync lässt sich problemlos portabel verwenden. VeraCrypt theoretisch ebenfalls, jedoch ist das „Traveler Disk Setup“ (in VeraCrypt unter Tools zu finden) nur in der Windows Version verfügbar. Hier noch einige Links dazu:

Da ich nicht auf Fremdcomputern arbeiten werde, wird auf allen Computern VeraCrypt fix installiert, damit der Stick verwendet werden kann.

VeraCrypt

Installation

Entweder kann man das Paket manuell herunterladen oder einfach per PPA installieren:

sudo add-apt-repository ppa:unit193/encryption
sudo apt-get update
sudo apt-get install veracrypt

USB Stick passwortschützen (gesamter Stick)

Anmerkung: Bei meinem ersten Versuch, habe ich diese Version gewählt. Die Schreibrate war katastrophal langsam (14Mb/s). Und nachdem ich FileSync laufen liess, wurde meine Maschine (Betrieb mit Linux Mint) immer langsamer und der Load erhöhte sich mit jeder Sekunde. Irgenwann war ein Arbeiten nicht mehr möglich -> da praktisch nichts mehr reagierte, killte ich FileSync und nachher auch VeraCrypt. Das hatte zur Folge, dass die Platte danach nicht mehr lesbar war und ich sie neu partitionieren musste. Das Problem lag am NTFS Mount. u.A. habe ich mit AES auch nicht gerade die Verschlüsselung mit dem Besten Benchmark verwendet. Inzwischen arbeite ich mit mehreren kleineren verschlüsselten Containern – so kann sich der Schaden in Grenzen halten.

  1. USB Stick einstöpseln
  2. Falls bereits Daten auf dem Stick sind -> BACKUPEN! (in den nächsten Schritten werden alle Daten auf dem Stick gelöscht!)
  3. VeraCrypt starten
  4. auf Button „Create Volume“ klicken
  5. Create a volume within a partition/drive auswählen
  6. Standard VeraCrypt volume auswählen
  7. Nun unter „Select Device…“ den USB Stick auswählen
  8. Der Verschlüsselungsalgorithmus kann auf AES bleiben (wenn dir die Geschwindikeit wichtig ist, kannst du hier auf Benchmark klicken um den für dich passenden Algorithmus zu finden) sowie auch der Hash Algorithmus auf SHA-512 bleiben kann.
  9. Nun Passwort wählen und weiter
  10. Nun muss man noch angeben, ob man grosse Files (>4GB) auf dem Datenträger speichern wird oder nicht.
  11. Filesystem auswählen: NTFS
  12. Damit der Stick auch unter Windows läuft: „I will mount the volume on other platforms“ auswählen.
  13. Beim nächsten Schritt, einfach mit dem Mauszeiger im Fenster herumfahren – so werden Zufallswerte generiert, die zu einer besseren Verschlüsselung beitragen. Sobald der Balken voll ausgefüllt ist, auf „Format“ klicken. (Je nach Grösse dauert das jetzt eine Weile ;-))

Label / Bezeichnung ändern

Standartmässig wird der Stick ohne Label eingebunden – bzw, wird einfach als „Datenträger 32 GB“ angezeigt. Um das Label unter VeraCrypt zu ändern, kann man wie folgt vorgehen:

  1. Stick einstöseln
  2. VeraCrypt starten
  3. Slot/Laufwerksbuchstabe auswählen, worauf der USB Stick gemounted / eingebunden werden soll.
  4. Dann auf Mount klicken
  5. Nun im aufgepoppten Dialog auf den Button „Options >“ klicken
  6. Passwort eingeben und „Do not mount“ eingeben und mit OK bestätigen.
  7. Jetzt in der Konsole
    sudo ntfslabel /dev/mapper/veracrypt1 LABELNAME
    eingeben.

Fertig 🙂 Jetzt trägt der Stick die Bezeichnung LABELNAME. Für die Verwendung muss man den Stick natürlich noch mounten – entweder nochmal über VeraCrypt oder manuell:

sudo mkdir /media/veracrypt1
sudo mount /dev/mapper/veracrypt1 /media/veracrypt1

USB Stick einhängen / öffnen

Zum Einbinden, wie folgt vorgehen:

  1. Stick einstöpseln
  2. VeraCrypt starten
  3. Slot/Laufwerksbuchstaben auswählen, worauf der USB Stick gemounted / eingebunden werden soll.
  4. Danach Select Device… und USB Disk auswählen -> Danach Mount
  5. Passwort eingeben

Disk ist nun gemountet und kann ganz normal verwendet werden.

FreeFileSync

Installation

Gewünschte Programmversion herunterladen. Danach deinfach das Archiv in einem gwünschten Verzeichnis auf dem USB entpacken. Eine Installation ist nicht nötig, da die Linux Version bereits fertig kompiliert zum Download angeboten wird.

Danach FreeFileSync sowie RealTimeSync ausführbar machen. (Rechte Maustaste auf den Filenamen -> Eigenschaften -> Zugriffsrechte -> Ausführen muss ausgewählt sein)

Starten

Einfach FreeFileSync starten und neue Konfiguration erstellen:

First Run (USB Stick ist noch leer)

  1. Im rechten Fenster die Verzeichnisse angeben, die miteinander abgeglichen werden sollen (dort wo Drag & Drop steht)
  2. Vergleichseinstellungen öffnen (F6 / F8 oder auf das Zahnrad klicken)
  3. Hier die gewünschten Konfigurationen vornehmen. Wenn das Script zum ersten Mal ausgeführt wird (also der USB Stick noch leer ist) wähle ich als erstes „Spiegeln“ um die Originaldateien (das linke Verzeichnis) auf den Stick (das rechte Verzeichnis) zu kopieren.
  4. Nun auf Synchronisieren (Spiegeln ->) klicken.
  5. Nun werden alle Elemente gesucht und aufgelistet. Nun kommt ein Popup (Synchronisation jetzt starten?) – wenn alles ok ist, kann die Synchronisation gestartet werden.

Daten abgleichen (USB Stick enthält bereits Daten)

Danach dann die „<- Zwei Wege ->“ Synchronisation.

  1. Die Zwei Wege Konfiguration für die zukünftige Verwendung speichern. (Datei -> Speichern als Batchauftrag“

Probleme / Lösungen

Hoher Load / CPU Auslastung & langsame Schreibrate

Damit der Stick unter Windows wie auch Linux läuft & sich auch Programme darauf ausführen können sollen, habe ich NTFS gewählt. Doch genau das generierte das Problem der hohen Auslastung, was schlussendlich zum Crash von VeraCrypt und der Daten führte.

root 9579 21.5 0.0 13972 2096 ? Ss 16:09 6:07 /sbin/mount.ntfs /dev/sdd1 /media/usbstick -o rw,nodev,nosuid,uid=1000,gid=1000,uh

Lösung:

Das Problem mit NTFS Mounts unter Linux ist anscheinend bekannt. Der Parameter big_writes löst dieses Problem:

sudo umount /dev/sdd1

sudo mkdir /media/usbstick
sudo mount -o big_writes /dev/sdd1 /media/usbstick

nun hält sich der Load während dem Schreibprozess in Grenzen:

root 10253 3.9 0.0 14208 1924 ? Rs 16:41 2:21 /sbin/mount.ntfs /dev/sdd1 /media/usbstick -o rw,big_writes

NTFS USB Stick automatisch mit big_writes mounten, wenn er eingestöpselt wird.

Lösung wird noch gesucht….  😉

Timestamp der kopierten Datien auf NAS/Server werden mit aktuellem Datum überschrieben

Beim Wechsel auf ein neues NAS bin ich mit FreeFileSync ein bisschen an meine Grenzen gekommen. Das Problem:

  • Wenn ich mit Windows Dateien auf das NAS kopierte, blieben die Zeitstempel der Dateien erhalten.
  • Wenn ich jedoch die Dateien unter Linux kopierte, erhielten die Dateien das aktuelle Datum

FreeFileSync ohne korrekten Zeitstempel und Binärvergleichen dauert aber totaaaaaaaaaaaaal lange! Das macht niemand freiwillig 😉

Das Problem kann viele Ursachen haben – wie z.B. wenn auf dem NAS Antivirensoftware oder ähnliches installiert ist, das Dateien nach dem Kopieren verändert. Doch das konnte es nicht sein, da unter Windows die Zeitstempel erhalten blieben.

Etwas Licht ins Dunkel brachte ein Test mit cp -p, was den Zeitstempel in jedem Fall berücksichtigen müsste:

cp -p test.doc /media/teslina/Data/
cp: die Zeiten für '/media/teslina/Data/test.doc' werden beibehalten: Vorgang nicht zulässig

Wenn ich es aber mit sudo ausführe, werden die Zeiten korrekt kopiert:

sudo cp -p test.doc /media/teslina/Data/

Also müssen wohl die Laufwerke mit fehlenden Berechtigungen gemounted worden sein.

Mit der Anpassung der /etc/fstab Zeile:

//192.168.0.201/data /media/teslina/Data cifs file_mode=0777,dir_mode=0777,rw,iocharset=utf8,vers=1.0,nounix,user=,password= 0 0

in

//192.168.0.201/data /media/teslina/Data cifs file_mode=0777,dir_mode=0777,rw,iocharset=utf8,gid=1000,uid=1000,vers=1.0,nounix,user=,password= 0 0

löst das Problem.