Kompatibilität zu verschlüsselten Datenträgern

wilbert

Member
So ich hab gestern Abend weiter rumprobiert und konnte einige der Kinderkrankreiten recht problemlos beseitigen. Wenn man von Linux kommt ist es eigentlich gar keine soooo große Umstellung.

Ich werde das externe Veracrypt-Backup auf exFat umstellen. Das funktioniert hervorragend. Entschlüsseln und mounten durch zwei befehle im Terminal ist super schnell und angenehm.

Mit Geli hab ich auch rumprobiert und das verschlüsseln und öffnen eines USB-Sticks geht auch einwandfrei. Dazu hätte ich aber eine Frage, habe ich das richtig verstanden, dass man dafür immer eine key-file braucht? Dann müsste man für portable-geli die key-file ja immer auf einem separaten datenträger haben?
Portable-Geli lässt sich übrigens problemlos installieren nur wirklich getestet habe ich es wegen der key-file-Sache noch nicht.

Im Grunde fehlt mir für den 100% vollumstieg nicht mehr viel und ich denke spätestens Freitagabend wage ich es :D.

Es ist etwas offtopic aber hoffentlich trotzdem kein Problem. Ich hätte noch die folgenden kleinen allgemeinen Fragen/Problemchen:

1.) Spielt die Reihenfolge der Einträge in der /boot/loader.conf und der /etc/rc.conf eine Rolle oder ist diese im Grunde egal?
2.) Ist die vorinstalliere sh die sh oder die Almquist Shell?
3.) Was benötige ich, um unter FreeBSD mit Veracrypt ein verschlüsseltes exFat device zu erstellen? Unter Linux gehts problemlos, unter FreeBSD kann ich nur UFS auswählen. Brauche ich dafür das Pakte exfat-utils?
4.) Mountet ihr eure internen Platten unter /mnt oder /media und warum? Thunar zeigt scheinbar nur mounts unter /media als Datenträger an?
5.) Gibt es wie unter Linux die Möglichkeit mittels tty-Konfiguration oder anders den autologin eines bestimmten users zu aktivieren?
6.) Wie stelle ich die tty Auflösung "richtig" ein? Ich habe einen eintrag für die /boot/loader.conf gefunden der es aufhübscht und auch beim boot auswahlmenü ein richtiges FreeBSD Bild einfügt. Ich hätte aber gern das alte "retro" menü, den folgenden boot loader text aber in einer vernünftigen Auflösung.

Es wäre toll, wenn jemand die ein oder andere Frage hiervon beantworten könnte.

Gruß
Wilbert
 

midnight

OpenBSD & FreeBSD
1.) Spielt die Reihenfolge der Einträge in der /boot/loader.conf und der /etc/rc.conf eine Rolle oder ist diese im Grunde egal?
Die Reihenfolge wird von oben nach unten abgearbeitet. Daher werden auch die services in der Reihenfolge gestartet.

2.) Ist die vorinstalliere sh die sh oder die Almquist Shell?
Das ist ein rewrite, welcher auf der urspruenglichen Almquist Shell basiert.


3.) Was benötige ich, um unter FreeBSD mit Veracrypt ein verschlüsseltes exFat device zu erstellen? Unter Linux gehts problemlos, unter FreeBSD kann ich nur UFS auswählen. Brauche ich dafür das Pakte exfat-utils?
Das habe ich auch noch nicht rausgefunden. Daher habe ich das device unter Windows erstellt.

4.) Mountet ihr eure internen Platten unter /mnt oder /media und warum? Thunar zeigt scheinbar nur mounts unter /media als Datenträger an?
Ich mounte von Hand unter /mnt und nutze aus sicherheitsgruenden auch keine automounter.
Code:
     /media/    contains subdirectories    to be used as mount points for remov-
        able media such    as CDs,    USB drives, and    floppy disks

     /mnt/    empty directory    commonly used by system    administrators as a
        temporary mount    point
 

wilbert

Member
@midnight danke für die hilfreichen antworten :).
Habe mir die sh jetzt angesehen und bleibe wohl doch lieber bei der mksh^^
Autologin-problem konnte ich mittlerweile lösen. Falls jemand das aucch aktivieren möchte:

Code:
# nvim /etc/gettytab

username:\
:al=username:ht:np:sp#115200:


# nvim /etc/ttys

change

ttyv0 "/usr/libexec/getty PC"   xterm onifexists     secure

to

ttyv0 "/usr/libexec/getty username"   xterm onifexists     secure

Die ZFS Geli verschlüsselung meiner Daten-SSD mit entschlüsseltung bei boot ist mir mittlerweile auch gelungen:

Code:
# gpart create -s gpt ada1

# gpart add -t freebsd-zfs -a 1M /dev/ada1

# geli init -b -s 4096 -l 256 /dev/ada1p1

# geli attach /dev/ada1p1

# mkdir /media/cryptodisk

# zpool create -m /media/cryptodisk NAME /dev/ada1p1.eli

"Problem" ist dabei halt dass ich beim booten nach dem pw für die FreeBSD-Disk etwas später auch das pw für die Daten-Disk eingeben muss.

Bei der Lösung mittels only keyfile bootet das System zwar, es entschlüsselt die Daten-SSD aber niciht richtig und mounted sie entsprechend auch nicht

Code:
# mkdir /root/keys
# dd if=/dev/random of=/root/keys/ada1.key bs=128 count=1

# gpart create -s gpt ada1

# gpart add -t freebsd-zfs -a 1M /dev/ada1

# geli init -b -P -K /root/keys/ada1.key -s 4096 -l 256 /dev/ada1p1

# geli attach -p -k /root/keys/ada1.key /dev/ada1p1

# mkdir /media/cryptodisk

# zpool create -m /media/cryptodisk NAME /dev/ada1p1.eli

Auch musste ich, um mit meinem nicht root-benutzer schreibrechte auf der /media/cryptodisk zu haben

Code:
# sysctl vfs.usermount=1
# pw group mod operator -m username
# pw group mod dialer -m username
#chmod 770 /media/cryptodisk

durchführen.

Ist die chmod 0770 voraussetzung normal? und woran liegt es, dass die only-Keyfile-Methode nicht funktioniert? Mache ich etwas falsch oder ist es ein bug? Das pw jedes mal eingeben zu müssen ist nicht so schlimm aber mit keyfile wäre schon besser.
Ah und ich habe bewusst nach /media gemountet da mir beim mount nach /mnt cryptodisk nicht in Thunar als device angezeigt wird

Gruß
Wilbert
 

medV2

Well-Known Member
Zuerst zum Keyfile-Part: Das sieht so ganz gut aus, was meinst du mit "es entschlüsselt die Daten-SSD aber niciht richtig"?
Du musst ihm das schon noch bekannt geben wo und wie. In der /boot/loader.conf kann man da ein paar Sachen einstellen, auswendig weiß ich das aber nicht, da müsstest du googeln.
Aber einfacher - und du brauchst die Daten ja nicht wirklich beim Boot, sondern erst danach - wäre es wenn du einfach ein rc-Script erstellst, oder die Zeilen die du offensichtlich schon korrekt immer händisch eintippst in die rc.local schreibst.

Was die Rechte betrifft: Du mountest das ZFS ja als root, es sollte also genügen wenn du auf den gemounteten Ordner die korrekten User, bzw. Gruppenrechte setzt. Dann brauchst du auch nicht auf das chmod aufpassen wenn der Ordner dem User gehört. Oder hast du da komplexe Setups vor?
 

wilbert

Member
Nun also wenn ich es so aufbaue und boote wird mir nur die ada1 als zfs angezeigt und nicht die ada1p1.eli und ich weiß ehrlich gesagt gar nicht, wie ich von da zum "mount" komme. Also was genau ich da eingeben muss. Wenn ich das dann aber einfach in in die rc.local schreiben kann wäre das ja super.

nein ich habe eigentlich nichts wirklich komplexes vor. Ich denke das user, bzw. gruppenrechte setzen sollte gehen ich muss nur mal noch recherchieren, wie man das macht und welche das sind.

Danke für die schnellen Tipps, jetzt weiß ich wo ich in meiner suche ansetzen kann :)
 

medV2

Well-Known Member
Quick&dirty würde mir grad einfallen für die rc.local (einfach zuerst testen indem du es nach dem boot händisch eintippst)

geli attach -p -k /root/keys/ada1.key /dev/ada1p1
zpool import -a
zfs mount -a


Wenn dir aber tatsächlich /dev/ada1 als zpool angezeigt wird, ist da irgendwas schief gegangen. Sollte nicht sein, wenn du wie von dir beschrieben den Pool auf /dev/ada1p1.eli angelegt hast. Hast du da vielleicht zuvor mit Pools direkt auf ada1 experimentiert? Wenn ja sind da vielleicht noch Metadaten die jetzt stören. Vielleicht musst du dann am besten nochmal den ersten Bereich der Platte mit Nullen überschreiben - was natürlich auch alle andere Daten löschen würde, also nur wenn noch nichts wichtiges darauf gespeichert wurde, und danach wie von dir beschrieben neu das geli device, und darauf den zpool anlegen.
 

wilbert

Member
Wahnsinn, danke!
so simpel - so effektiv.

Also ich habe das zu undeutlich formuliert. Der Poolname etc ist schon richtig, dementsprechend hat dein Lösungsvorschlag auf Anhieb funktioniert. Hervorragend.
Interessanterweise habe ich in meiner Recherche zu GELI (wenn ich das richtig verstanden habe) jetzt gelernt dass ich für die GELI-Verschlüsselung entweder ein Passwort, eine Keyfile oder beides nutzen kann. D. h. theoretisch kann ich meine Backup-SSD dann ja auch "komfortabler" mit GELI und nur Passwort verschlüsseln und ganz auf Veracrypt verschlüsseln.
Ich teste das mal mit nem USB-Stick und steige dann vermutlich um, da ich grundsätzlich immer die "OS-Eigenen Werkzeuge" bevorzuge. Die Linux-Kompatibilitäts-Schicht ist dann zwar weg aber im grunde ist das egal. Zum Zugriff auf die Daten-SSD kann ich - falls meine SSD mit FreeBSD abschmiert- ja einfach ein neues FreeBSD auf einer neuen Platte aufsetzen.

Bezüglich rc.local komme ich nicht ganz zurecht. Ich habe mich dazu entschlossen ein kleines script in unter /etc/rc.d zu schreiben
(wenn ich es unter /usr/local/etc/rc.d stelle, funktioniert es nicht)
Oder was wäre der Vorteil es in rc.local anstatt als eigenes script in /etc/rc.d zu schreiben?

Das script sieht so aus:

Code:
name=testd
rcvar=testd_enable

test()
{
geli attach -p -k /root/keys/ada1.key /dev/ada1p1
zpool import -a
zfs mount -a
}

test

Also so funktioniert es unter /etc/rc.d und mit dem eintrag testd_enable="YES" in /etc/rc.conf.

ist das Script so ok oder blockiert es so andere Dienste die gestartet werden sollen?
und wie könnte ich es unter /usr/local/etc/rc.d bzw. unter rc.local realisieren? Ich habe auf meinem system wie ich sehe auch (noch) gar keine rc.local datei. muss ich die unter /etc/ oder unter /usr/local/etc/ erstellen?

Gruß
Wilbert

Edit: Ah und ganz dumm gefragt. Das System funktioniert ja jetzt dann so, dass die ada1p1 erstmal mittels GELI komplett verschlüsselt ist und dann durch und nur durch die ada1.key auf der FreeBSD-Platte entschlüsselt wird? d. h. bei dem Aufbau würde mir das Ausbauen der der Daten-SSD und einbauen in einen anderen rechner ohne die Keyfile nichts nützen? (wenn ja gut, das soll so sein^^) für die Externe Backup-SSD nehme ich dann ZFS GELI mit einem Passwort statt Keyfile.
Habe ich das so richtig verstanden?
 

medV2

Well-Known Member
Bezüglich rc.local komme ich nicht ganz zurecht. Ich habe mich dazu entschlossen ein kleines script in unter /etc/rc.d zu schreiben


snip

ist das Script so ok oder blockiert es so andere Dienste die gestartet werden sollen?
Nein das sollte egal sein wo du das hinmachst. Womöglich ist ein eigenes Script sogar praktischer, da du es einfach in der rc.conf deaktivieren kannt, wenn du mal nicht willst, dass es läuft.

Wieso das bei dir mit der rc.local nicht klappt ist ne andere Frage. Ist das File /etc/rc.local denn executable? Also chmod +x wenn nicht. Aber ansich egal wenn du nen Weg hast wie es für dich Funktioniert.

Edit: Ah und ganz dumm gefragt. Das System funktioniert ja jetzt dann so, dass die ada1p1 erstmal mittels GELI komplett verschlüsselt ist und dann durch und nur durch die ada1.key auf der FreeBSD-Platte entschlüsselt wird? d. h. bei dem Aufbau würde mir das Ausbauen der der Daten-SSD und einbauen in einen anderen rechner ohne die Keyfile nichts nützen? (wenn ja gut, das soll so sein^^) für die Externe Backup-SSD nehme ich dann ZFS GELI mit einem Passwort statt Keyfile.
Habe ich das so richtig verstanden?

Ja richtig verstanden.


Noch ein kleiner Nachtrag für dich:

Geli hat immer 2 Keyslots. Beim erstellen (init) generiert Geli also ein Masterpasswort mitdem immer der ganze Datenkram verschlüsselt wird. In einen Keyslot wird dann das Masterpasswort mit deinem von dir vergebenen Passwort (oder dem von dir gesetztem Keyfile, oder beidem) verschlüsselt abgelegt. Wenn du nun mit deinem Passwot oder Keyfile die Partition entsperrst wird das Masterpasswort entschlüsselt und dass dann verwendet. Von diesen Keyslots hast du 2 Stück.

Du kannst also z.b. bei dir die Platte die sich automatisch mit dem Keyfile entsperrt (default ist immer Keyslot 0) auch am zweiten Keyslot (1) noch ein Passwort zuweisen.
Wenn die Platte mit deinem Freebsd kaputt geht, und du nicht mehr an das Keyfile kommst, kannst du die Platte immer noch mit dem Passwort entsperren.
 
Oben