Datei als verschlüsseltes Dateisystem mounten

rMarkus

Chuck The Plant
Hallo,

ist folgendes unter FreeBSD 6.x möglich:

Man hat eine große Datei, die man lesend und schreibend als Dateisystem in FreeBSD mountet.
Diese Datei soll auch verschlüsselt sein.

Anregungen?
 
Code:
su
truncate -s +64M ~/container
mdconfig -a -t vnode -f ~/container -u 0
dd if=/dev/random of=/dev/md0
bsdlabel -w /dev/md0
bsdlabel -e /dev/md0
gbde init /dev/md0d -K /safe/bde_key -L /safe/lockfile
gbde attach md0d -k /safe/bde_key
cat /safe/eli_key1 /safe/eli_key2 | geli init -a Blowfish -i 23 -K - /dev/md0e
cat /safe/eli_key1 /safe/eli_key2 | geli attach -k - /dev/md0e
newfs /dev/md0d.bde
newfs /dev/md0e.eli
mount /dev/md0d.bde /mnt1
mount /dev/md0e.eli /mnt2
cp -R ~/pr0n/* /mnt1/
cp -R ~/warez/* /mnt2/
umount /mnt1
umount /mnt2
gbde detach md0d
geli detach /dev/md0e
mdconfig -d -u 0
bcwipe -rfIv -md ~/container ~/pr0n ~/warez
Falls ich mich auf die schnelle irgendwo verschrieben hab, nicht mein Problem :) Einfach nicht blind abtippen.
 
Zuletzt bearbeitet:
Vielen Dank stilskin und Elessar.

Ich habe mich für folgende Kurzversion entschieden:
Code:
# leere grosse Datei anlegen (hier 1 GB)
dd bs=1024 count=1000000 if=/dev/zero of=/virtuelleplatte.img

# das Image als Device einhaengen
mdconfig -a -t vnode -f /virtuelleplatte.img  -u 0

# das Image mit GBDE verschluesseln
mkdir /etc/gbde   #hier kommt das Lock-Files, welches den Schluessel haelt, rein

gbde init /dev/md0 -i -L /etc/gbde/lockfile_virtuelleplatte.img
# Für UFS/UFS2 sollte "sector_size     =       2048" eingestellt werden

gbde attach /dev/md0 -l /etc/gbde/lockfile_virtuelleplatte.img

# auf dem verschluesselte Device nun ein Dateisystem anlegen
newfs /dev/md0.bde

Diese Veriante hat innerhalb der virtuellen Festplatte keine Slices oder Partitionen, was auch hier nicht notwendig ist. Ausserdem habe ich mich für GBDE entschieden.

Später wird diese virtuelle Festplatte wie folgt gemountet:
Code:
mdconfig -a -t vnode -f /virtuelleplatte.img -u 0
gbde attach /dev/md0 -l /etc/gbde/lockfile_virtuelleplatte.img
mount /dev/md0.bde /mnt
 
Du machst gbde init -i, stellst du da ein, dass der container mit Zufallszahlen überschrieben werden soll?

Dann kannst du das erste dd auch durch truncate ersetzen. Stellst du das nicht ein, dann willst du zu anfangs ein dd von /dev/random, nicht /dev/zero.
 
truncate wird evtl. performanter als dd sein.

Bei der Initialisierung von GBDE bin ich nach Handbuch vorgegangen.
Welchen Vorteil habe ich, wenn ich die Platte vorher mit Zufallswerten fülle?
Vertuscht man nur damit den Fuellstand.
"gbde init" hat bei mir in jedem Fall die Platte nicht gefüllt, dafür ging es viel zu schnell.


PS: Du verwendest: "bcwipe".
Was macht der, in meinem Manpage-Radius ist der noch nicht aufgetaucht.
 
- truncate ist zum erzeugen von Dateien ganz sicher performanter als dd

- so wie du es aktuell gemacht hast, hast du lauter 0en und einige sektoren mit 0en und 1en, die in die schon geschrieben wurde. Und vermutlich irgendwo einen einzelnen Sektor allein auf weiter Flur, der ebenfalls Daten != 0 enthält - der master key sector. Alles sehr schwer zu finden....

- /usr/ports/security/bcwipe
 
Zurück
Oben