• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Anleitung: Benutzerverzeichnis mit TrueCrypt verschlüsseln

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Hallo,

ich habe mit ein bisschen probieren festgestellt, dass es möglich ist, mit TrueCrypt sich eine Alternative zu FileVault zu basteln.

Wichtig: Wenn man sich daran wagt, sollte man wissen, was man tut. Es ist höchstwahrscheinlich nicht möglich, der Anleitung zu folgen ohne selbst zu wissen, was man macht und gegebenenfalls einen Befehl etwas anzupassen beziehungsweise zu korrigieren.

Meine Ziele waren:

  • Verschlüsselung mit TrueCrypt statt mit proprietärem FileVault. So weiß ich, wie verschlüsselt wird und dass nicht noch ein Zweitkey existiert.
  • Verschlüsselung mit einem Keyfile, welches auf einem USB-Stick gespeichert sein kann. Ich finde es komfortabler, außerdem kann dann das Nutzerpasswort recht kurz gehalten sein. So ein Keyfile bietet natürlich auch weniger Angriffsfläche für einen Bruteforce-Angriff als ein Passwort (und sich ein vernünftiges Passwort zu merken ist doch nicht sooo leicht).

Diese Ziele konnten erfüllt werden. ;)


Anleitung:

Zuerst habe ich mich mit einem Administratoraccount angemeldet.

Ich gehe davon aus, dass TrueCrypt in /Applications installiert wurde. Dann legen wir erstmal einen Symlink an, damit man immer nur tc eintippen muss, um TrueCrypt über die Konsole aufzurufen.

Code:
ln -s /Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /usr/local/bin/tc

Nun muss ein Keyfile erstellt werden. 4kB = 4096 Byte = 32768 Bit sollten genügen, da die Verschlüsselung ja "nur" 256 Bit stark ist. Zum Erstellen öffnet man ein Terminal, wechselt zu dem Verzeichnis auf seinem USB-Stick, auf dem man den Key speichern möchte mit
Code:
cd /Volumes/STICK-1GB/.tc
(diese Bezeichnungen sind die, die ich gewählt habe, sie stimmen auch mit denen im Script überein), und erstellt schließlich die Datei mit
Code:
dd if=/dev/random of=./keyForHome.img count=1 bs=4096

Jetzt kann man das TrueCrypt Volume anlegen. Mit TrueCrypt wird über die grafische Oberfläche (mir erscheinen die Mausbewegungen zufälliger als 320 Zeichen) ein Volume Filesystem erzeugt, als Keyfile wird natürlich das eben erzeugte angegeben, und nach /Users verschoben. Hierbei muss man sich wieder authentifizieren, da nur root das tun kann. Nun wird wieder ein Terminal geöffnet, ein
Code:
sudo su
ausgeführt und das Volume wie folgt gemountet.

Code:
tc -t --filesystem=none /Users/home.meinbenutzername.tc.img

Nun wählt man mit dem Festplattendienstprogramm (unter Dienstprogramme) /tmp/.truecrypt_aux_mnt1/volume.dmg aus und formatiert es mit HFS+, falls es danach automatisch gemountet wird, wirft man es über das Festplattendienstprogramm wieder aus. Jetzt muss es auch noch von TrueCrypt ausgeworfen werden:
Code:
tc -t -d /tmp/.truecrypt_aux_mnt1/volume.dmg

Natürlich möchte man seine Daten vom Home-Verzeichnis in das neue TrueCrypt-Volume kopieren. Falls dadurch der Speicherplatz knapp wird, sollte man als Zwischenstation eine externe Festplatte nehmen (die sparseimage-Datei also auf eine externe Platte verschieben). Damit das Kopieren klappt, ist es sicherer, den User, der FileVault benutzt, abzumelden, falls das nicht schon geschehen ist. Nun mountet man über das Terminal, immer noch als root (also
Code:
sudo su
nicht vergessen), den FileVault-Ordner in einen temporären Ordner in /tmp. Das geschieht mit
Code:
cd /tmp; mkdir ./home; hdiutil attach /Users/meinbenutzername/sparseimage* -readonly -owners on -mountpoint /tmp/home
Da steht sparseimage*, weil ich mir gerade nicht ganz sicher bin, wie das heißt... Ihr findet das schon, müsst ihr aber gar nicht, weil man * natürlich auch in der Konsole eintippen kann. Nun muss mit TrueCrypt das TrueCrypt-Volume mounten. Das geschieht mit
Code:
mkdir /tmp/tcmeinbenutzername; tc -t --filesystem=none --non-interactive -v -k /Volumes/STICK-1GB/.tc/keyForHome.img /Users/home.meinbenutzername.tc.img; /usr/bin/hdiutil attach /tmp/.truecrypt_aux_mnt1/volume.dmg -readwrite -owners on -mountpoint /tmp/tcmeinbenutzername
Jetzt müssen die Daten kopiert werden:
Code:
cp -Rp /tmp/home/* /tmp/tcmeinbenutzername/

Nun ist man fertig. Wenn alles klappt, sollte man natürlich (wenn man sich mehrmals vergewissert hat dass es funktioniert!) /Users/meinbenutzername/sparseimage* löschen (oder am besten erstmal auf eine externe Platte verschieben)...
Schnell noch alles unmounten:

Code:
hdiutil detach /tmp/tcmeinbenutzername;
hdiutil detach /tmp/home;
tc -t -d /tmp/.truecrypt_aux_mnt1/volume.dmg;

Die Dateien loginhook, logouthook und mounttconstartup.sh müssen nach /Library/Management kopiert werden. In mounttconstartup.sh müssen KEYFILEPATH angepasst werden (relativ zum KEYFILEMOUNTDIR), TCIMAGEPATH, TCIMAGEMOUNTPATH, KEYFILEDEVICEFS, MOUNTCHOWN, STANDARDUSBSTICKMOUNTPOINT, USERNAME auch. Die Dateien sind in der ZIP-Datei, die angehängt ist, enthalten.

Damit alles automatisiert beim nächsten Start funktioniert, ist noch folgendes nötig (wieder durch Adminaccount:

Code:
sudo su;
defaults write com.apple.loginwindow LoginHook /Library/Management/loginhook;
defaults write com.apple.loginwindow LogoutHook /Library/Management/logouthook;


Bei Fragen könnt ihr euch gerne an mich über diesen Thread wenden. Garantie übernehme ich natürlich keine. ;) Für eine Sicherung eures Homeverzeichnisses seid ihr selber verantwortlich. :p
Es ist durchaus möglich, dass ich hier jetzt etwas vergessen habe, das ist mehr oder weniger alles aus dem Gedächtnis herausgekramt.

Viel Spaß!
Der_Apfel
 

Anhänge

  • management.zip
    3,5 KB · Aufrufe: 230

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Es existiert auch eine ToDo-Liste. ;)

  • Manuelle Passworteingabe

Das Problem dabei ist, dass ich nicht weiß, wie man im LoginHook Benutzereingaben abfragen kann, vielleicht gar nicht. Ich habe mit Google folgende, meiner Meinung nach unelegante Lösung gefunden:

  1. Benutzer meldet sich an
  2. Passwort für TC-Volume wird abgefragt
  3. TC-Volume wird in Benutzerordner gemounted
  4. Benutzer wird ausgeloggt
  5. Benutzer meldet sich zum zweiten Mal an und landet nun im TC-Volume

Fällt jemandem vielleicht eine bessere Lösung ein?

Frohe Weihnachten!
Der_Apfel
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Mir ist gerade aufgefallen, dass es ein Board Tutorials Software gibt. Kann dieses Thema vielleicht jemand dahin verschieben?

Danke!
 

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
Wow, super Tutorial! :)
Eigentlich wollte ich, seitdem ich mein MBP habe, auch FileVault benutzen, allerdings haben mich o.g. Gründe bisher davon abgehalten. Da kommt das Tutorial eigentlich ganz recht ;)

Ich habe allerdings noch einige Fragen:


  • Was passiert, wenn ich den USB-Stick beim Booten vergesse einzustecken?
  • Funktioniert das Ganze auch in Zusammenhang mit Standby/Bildschirmschoner?
  • Wird ein unmount ausgeführt, wenn man den USB-Stick während dem Betrieb rauszieht?

Vielen Dank schonmal für deine Mühe :)

Grüße,
stonie10
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Hi,

Wow, super Tutorial! :)

Danke!

Was passiert, wenn ich den USB-Stick beim Booten vergesse einzustecken?

Dann wird das Homeverzeichnis geladen, was sich ohne das Mounten des TrueCrypt-Containers in /Users/Benutzername befindet, wenn es leer ist, wird ein neues angelegt. Man erkennt dann schnell, dass der USB-Stick gefehlt hat, kann sich abmelden, den Stick reinstecken und erneut anmelden.


Funktioniert das Ganze auch in Zusammenhang mit Standby/Bildschirmschoner?

Ja, Suspend2Ram funktioniert, Bildschirmschoner natürlich auch. Mac OS macht meines Wissens normalerweise wenn es in den Standby-Modus geht zusätzlich ein Image des Rams auf die Festplatte um bei leerem Akku den Zustand fortsetzen zu können (Suspend2Disk), das braucht immer einige Zeit beim Schließen des Deckels und ich habe es deshalb deaktiviert. Es ist natürlich auch eine Sicherheitslücke, wenn der TrueCrypt-Schlüssel (der ja im Ram liegt) auf die Festplatte geschrieben wird.

Wird ein unmount ausgeführt, wenn man den USB-Stick während dem Betrieb rauszieht?
Vielen Dank schonmal für deine Mühe :)

Ein Unmount des TrueCrypt-Containers meinst du? Nein, der USB-Stick wird sowieso nachdem er benutzt wurde, geunmounted (und dann in aller Regel von Mac OS wieder gemounted). Er muss aber nicht während des Betriebes eingesteckt sein, der Schlüssel wird im Ram gecached.



Grüße,
Der_Apfel
 
  • Like
Reaktionen: stonie10

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
Danke für die ausführliche Erklärung! :) Das klingt ja alles schon fast zu schön um wahr zu sein :-D
Ich werde mich die Tage dann mal daran begeben - ist mir nämlich schon wichtig, dass meine Daten im Falle eines Verlustes des Laptops sicher bleiben, und das ist mit dieser Methode meiner Meinung nach sehr gut umgesetzt :)

*karmageb*

Grüße,
stonie10
 

Kel

Erdapfel
Registriert
08.01.09
Beiträge
1
So etwas hab ich gesucht
Klingt aber recht kompliziert da mir allgemein Terminalarbeiten nicht gefallen ;). Windows scheint da doch noch ne ganze Ecke unkomplizierter zu sein (genau wie Linux in der Hinsicht).
Liegen den alle privaten Daten von Programmen auch im Homeordner? Wegen möglichem Laptopverlust mal so gefragt.
Und wie gehe ich vor wenn ich nur das Homeverzeichnis mittels TC schützen will ohne USB-Stick? Passwort ist bei mir schon sicher genug nur Filevault traue ich mal gar nicht über den Weg.
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Windows scheint da doch noch ne ganze Ecke unkomplizierter zu sein (genau wie Linux in der Hinsicht).

Da hast du leider Recht...

Liegen den alle privaten Daten von Programmen auch im Homeordner? Wegen möglichem Laptopverlust mal so gefragt.

Solange du ein Programm nicht mit Admin-Rechten starten musst, schreibt es auch nur in deinen Homeordner. :) Die Userspezifischen Einstellungen werden ja in ~/Library gespeichert.

Und wie gehe ich vor wenn ich nur das Homeverzeichnis mittels TC schützen will ohne USB-Stick? Passwort ist bei mir schon sicher genug nur Filevault traue ich mal gar nicht über den Weg.

Das ist bisher noch ein ungelöstes Problem. :-D Mit zweimaligem Anmelden (habe ich auf der ersten Seite irgendwo erklärt) würde es funktionieren, das finde ich aber nicht schön.
 

testing

Erdapfel
Registriert
26.02.09
Beiträge
3
Hallo zusammen,

ich habe eine Frage zu Truecrypt und Linux. Truecrypt ist auf Suse11.1 installiert. Zudem habe ich eine Partition einer externen Festplatte verschlüßelt, mit Keyfile und Passwortabfrage. Das Keyfile ist auf einem USB-Stick gespeichert. Seither wurde die verschlüßelte Partition von einer Windowskiste mit Putty gemountet und zwar mit dem Befehl: truecrypt -t --protect-hidden=no --keyfiles=/media/SONST/key/ /dev/sdd5 /home/true. Das klappt alles wunderbar. Da der Server mit Suse11.1 wieder in den Keller soll, habe ich mir überlegt, den USB-Stick in die Windowskiste einzustecken. Nur weiß ich dann leider nicht, wie ich den Konsolenbefehl ( Putty ) ändern muß, damit er das Keyfile auch findet. Wißt ihr mir vielleicht einen Rat ??????
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Hi,

mit Putty steuerst du ja eigentlich nur den anderen Rechner fern. Wenn der Stick in dem anderen Rechner steckt, hat der Linux-Server keinen direkten Zugriff darauf.

Ganz spontan würde ich sagen, die einzige Möglichkeit ist, den Stick unter Windows freizugeben, dann den Stick über Putty mounten (mount -t smbfs -o username=benutzer,password=Passwort //Windowsrechner/pfad /mnt), deine Partition mit Truecrypt mounten (... keyfiles=/mnt/keyfile ...), und am Ende die Freigabe wieder zu unmounten (unmount /mnt).
 

testing

Erdapfel
Registriert
26.02.09
Beiträge
3
Danke für die Antwort. Nun versuche ich gerade alles über die Konsole zu machen. Partition erstellen usw. Klappt alles auch wunderbar. Nur bis zu dem Punkt, wo man den Pfad zu den Keyfiles eintragen soll, das scheint er irgendwie nicht zu verstehen. Bei "Enter keyfile path [finish] kapiert er nicht, wenn ich eingebe /media/SONSTIGES/key/usb4, dass es das Keyfile ist. Man gibt ja den Befehl als root ein, also müßte er es unter dem Ordner /media doch auch finden. Übrigens (SONSTIGES) ist mein USB-Stick.
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Er „kapiert“ es nicht? Was heißt das? Sagt er, dort befinde sich keine Datei?
 

testing

Erdapfel
Registriert
26.02.09
Beiträge
3
In letzter Zeit kommt bei mir, wenn ich eine Partition einbinden will, immer die Fehlermeldung ERROR: ist ein Verzeichnis. Ich habe aber den Datenträger definitiiv als Partition verschlüßelt.....
irgendwie klappt es unter Linux garnicht mehr das mounten. Muß man die verschlüßelte Partition nach dem Verschlüßeln nochmal mit z.Bsp. Yast formatieren und neu einbinden ?????
 

TBH

Alkmene
Registriert
28.12.06
Beiträge
31
Hallo allerseits,
ersteinmal vielen Dank an Der_Apfel! Super Anleitung!
Gibt es denn mittlerweile eine (elegante) Lösung mit Passworteingabe? Und spricht etwas dagegen, dass das alles auch auf Snow Leopard funktioniert?
Viele Grüße,
TBH
 

Der_Apfel

Transparent von Croncels
Registriert
03.12.07
Beiträge
305
Hi,

danke. :)

Nein, eine elegante Lösung für Passworteingabe gibt es nicht und ich denke, die wird es auch zukünftig nicht geben, leider. ;) Ich denke nicht, dass MacOS einem die Eingabe des Benutzerpassworts einfach auslesen lässt.

Bis grade ging ich davon aus, dass es ohne Probleme auf SL laufen wird. Aber auf http://snowleopard.wikidot.com/ steht für TrueCrypt
Unable to create new volumes, some errors in loading existing volumes - but retry and it will open; might be causing kernel panics; crashes on startup for another user

Das klingt natürlich gar nicht gut, nach meiner Anleitung würde ja „but retry and it will open“ bedeuten „melde dich an, wieder ab und noch mal an, dann klappt's“ und wäre nicht wirklich schön.
 
  • Like
Reaktionen: circa und drlecter

TBH

Alkmene
Registriert
28.12.06
Beiträge
31
Hm ok, schade, das mit der Passworteingabe ist für mich ein wichtiges Kriterium - habe Angst, dass das Keyfile durch irgendeinen blöden Umstand verloren geht oder zerstört wird...
Löse es jetzt so, dass ich alle relevaten Daten in ein Image lege und mit Symlinks in /User/... arbeite, die auf die verschlüsselten Dateien zeigen.