mehrere Festplatten mit einem Passwort entsperren (luks)

polyphase

Commander
Registriert
Dez. 2010
Beiträge
2.714
So ich bin gerade debei mein Test-NAS (PC mit Ubuntu Server) für Tests zu konfigurieren.
Irgendwann soll das Teil mal die Synology Diskstations ersetzen.

Hintergrund:
Ich wollte eigentlich urprünglich die Verschlüsselung von ZFS nutzen, aber da gibt es aktuell noch Probleme mit der AES Hardwarebeschleunigung. Daher möchte ich als Basis unter ZFS (oder einem anderen Filesystem) Luks zur Verschlüsselung nutzen.

Was hab ich schon:
Ich habe zwei Festplatten mit Luks verschlüsselt und kann diese auch entschlüsseln um darauf ein Dateisystem (in Software RAID1) erstellen zu können.

Was geht schon:
Das entsperren der Platten geht einwandfrei, und auch der Zugriff auf die entsperrten Platten funktioniert.
Leider muss ich nun das Passwort für jede Platte einzeln eingeben.


Und hier brauche ich jetzt Hilfe, ich möchte folgendes tun:
  • Passwort einmal eingeben um alle Platten zusammen zu entsperren
  • die Entsperrung manuell auslösen, nicht beim Boot!
  • Danach das Dateisystem manuell mounten

Ich würde mir hier ein kleines bash Scipt schreiben, welches die benötigten Befehle abarbeitet.
Leider finde ich im Netz immer nur Anleitungen zum Entsperren mehrer Platten beim Boot.
Mit entsprechender Konfiguration von Grub und der fstab, ist aber nicht das was ich machen möchte.

PS:
Das RAID soll vom Dateisystem wie z.B. ZFS gemanaged werden und nicht schon vorher durch einen lvm oder ähnliches.
 
madmax2010 schrieb:
auch unter freebsd? Lief bei mir damals..
Ich möchte aus versch. Gründen ein Linux System verwenden.
Die HW BEschleunigung unter FreeBSD funktioniert, dafür ist die SMB Performance eine kleine Katastrophe und führt schon bei enig Belastung zu sehr hoher CPU Auslastung.
Bedenke ich habe nur einen kleinen Intel J4115.

madmax2010 schrieb:
Was ist hier der Vorteil, gegenüber einem RAID was vom Filesystem gemanaged wird?
Ich bin mir noch nicht sicher ob ich wirklich ZFS nutzen werde, ggf. wird es auch btrfs. Das läuft seit fast 7 Jahren Problemlos auf meinen Synology Diskstations.


Ich würde das Script gerne so Filesystem "unabhängig" wie möglich gestelten, sofern das geht.
Ergänzung ()

Ich habe mir nun folgendes überlegt:
Das Script frägt am Anfang das Passwort ab und speichert es als Variable zwischen.

Bash:
#!/bin/bash
echo "unlock v0.1"

echo "enter luks password"
read -s PW

echo $PW | cryptsetup luksOpen /dev/sda dr0
echo $PW | cryptsetup luksOpen /dev/sdb dr1

mount /dev/mapper/dr0 /files0

Als Beispiel jetzt mit einem btrfs RAID 1, da wird die zweite Platte automatisch mit gemountet.
 
Zuletzt bearbeitet:
Ach schade, da stand Ubuntu Server. Ich wollte gerade vorschlagen, deine Verschlüsselungspasswörter einfach mit dem Gnome-Keyring zu hinterlegen, der dir dann die Laufwerke mounted und entriegelt.
Mit gnome-disk kann man da den Haken ausmachen und dann wird ein Eintrag in /etc/fstab eingetragen und dann sind die Passwörter nur da erforderlich, wo der Keyring die nicht freigeben soll.
Das müsste aber auch ohne die GUI mit einem entsprechendem Eintrag laufen. Jetzt muss man sich überlegen, ob man dem Server erlauben soll, die Passwörter im Keyring zu speichern oder man diese lieber als Klartext mit in der mount-script mit einbaut.

Bei mir zum Beispiel mounte ich eine der verschlüsselten Externen SSDs mit dem Keyring von Ubuntu, der ist aber mit einem Yubikey verschlüsselt. Das Ganze läuft schon beim Einstecken in den USB-Port automatisch ab.
 
  • Gefällt mir
Reaktionen: polyphase
Ja ist Ubuntu Server. Soll meine Diskstations ersetzen, die werden alt.

Und ich bin mit der aktuellen Richtung von Synology unzufrieden, werden immer teurer und die Hardware immer abgespeckter ☹️

Da mache ich es lieber selbst und lerne noch was dabei.


Andere Frage, an die bash Experten.
Sollte ich die Variable am Ende vom Script nicht wieder löschen, oder geschieht das automatisch?
 
Das sollte auf keine Kritik sein. Es ging mir nur darum, dass Ubuntu Server halt ohne GUI installiert wird und man dann halt die Einstellungen von gnome-disk sehen kann.

Ich mache sowas ja auch selber, stelle alles zusammen und baue das dann auch zusammen. Dann weiß ich, was da drin ist.

Und für dein Script einen alten Programmierer-Trick. Kommentiere alles aus, was gerade nicht gebraucht wird, aber lieber einmal zuviel drin lassen, um doppelte Arbeit zu sparen.

Es reicht, wenn du ein # am Anfang der Zeile machst. Das macht auch das Testen von manchen Stücken einfacher.
 
  • Gefällt mir
Reaktionen: polyphase
Elita schrieb:
Das sollte auf keine Kritik sein.
Alles gut 🙂
So war das auch nicht von mir gemeint 😅
Ich wollte Synology kritisieren, nicht dich!


Das Script funktioniert schon, hab's aufm Testsystem getestet 👍

Man kann es jetzt noch schöner machen und kommentieren.
 
Zuletzt bearbeitet:
Zurück
Oben