Wie kann ich vorab festlegen, dass nur die Root-Partition verschlüsselt wird?

13

Ich habe 3 Partitionen: EFI ( /boot/efi), boot ( /boot) und root ( /). Ich möchte verschlüsseln nur / . Ich kann dies manuell über den Installer tun, aber ich möchte es voreinstellen.

Wie definiere ich das? Mein (unverschlüsseltes) Rezept sieht ungefähr so ​​aus. Es ist eine Mischung aus Vorschlägen für EFI-Systempartitionen, die ich gefunden habe (keine klare Anleitung gefunden).

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

Wie mache ich sda3eine physikalische Partition für die LUKS-Verschlüsselung und habe dann ein Dateisystem darüber?

AKTUALISIEREN:

Ich habe festgestellt, dass ich die Partition wie folgt als Krypto festlegen kann, aber es gibt immer noch drei Probleme:

  1. Ich muss weiterhin die verschlüsselten Volumes auf der ausgewählten Partition erstellen und aktivieren
  2. Ich muss immer noch das richtige ext4-Dateisystem auf dem verschlüsselten Volume einstellen, nachdem es erstellt und aktiviert wurde
  3. Das Rezept wählt nicht den Verschlüsselungstyp aus, dm-cryptder zum Erstellen und Aktivieren der verschlüsselten Volumes erforderlich ist.

Immer noch mächtig zu kämpfen

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .
Gottheit
quelle
Zu Ihrer Information, die Etiketten wie sda, sdb, sdcusw. halten nicht immer die gleichen Buchstaben (a, b, c) zwischen Stiefel (meine wechseln jeden Boot)
Xen2050
2
@ Xen2050 hast recht, UUIDoder PARTUUIDoder LABELoder PARTLABELsind viel besser. In meinem Fall wird ein Image zum Formatieren gebootet, sodass nur ein Laufwerk vorhanden ist. Wie richte ich es zum Verschlüsseln einer einzelnen Partition ein? Ich kann es interaktiv machen, aber ich brauche es vorher.
deitch
Hmm, vielleicht kommen wir weiter, aber es gibt mehr Fragen. Posten andere q.
deitch
@deitch - Ist dies eine Serverpartitionskonfiguration oder ein Client oder nur ein Beispiel für eine Desktoppartition? Diese 3 Partitionen sind zu wenig für Ihre Absicht - es fehlt / swap und / home - Sie müssen also irgendwie einen erweiterten Teil der Festplatte mit logischen Partitionen einrichten - normalerweise erlauben Partitionen insgesamt nur 4, aber mit logischen Partitionen erweiterte Partitionen erlauben Maximal 4 mal 63 Partitionen (und GPT ermöglicht viel mehr)?! - unix.stackexchange.com/questions/33555/… - in Bezug auf Master- und Slave-Partitionen.
dschinn1001
@ dschinn1001 Eigentlich ist es eine Vorlage für einen sicheren Server. Das Kernbetriebssystem befindet sich auf einem Wechseldatenträger. Die Benutzerdaten und der Swap befinden sich auf einem internen Laufwerk, das ein systemd-Dienst findet und entsprechend einbindet. Aber ignoriere ich das .... wie kann ich den Root so einrichten, dass er ohne LVM verschlüsselt wird?
Deitch

Antworten:

1

Öffnen Sie zunächst ein Root-Terminal:

sudo -i

Füllen Sie dann die Partition, die verschlüsselt werden soll, mit zufälligen Daten mit einem Befehl wie dem folgenden:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

Sie müssen sdxydie zu verschlüsselnde Partition ersetzen . Dann tippe

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

die Partition zu verschlüsseln sdxy. Öffnen Sie das Volume und nennen Sie es root:

cryptsetup luksOpen /dev/sdxy root

Verwenden Sie diesen Befehl, um ein ext4-Dateisystem darin zu erstellen:

mkfs.ext4 /dev/mapper/root

Als nächstes können Sie den Installer starten. Wählen Sie "Etwas anderes", wenn Sie gefragt werden, was Sie tun möchten. Wählen Sie dann die Einhängepunkte für alle Ihre nicht verschlüsselten Partitionen. Wählen Sie für Ihre rootPartition /dev/mapper/root"Ändern". Wählen Sie dann ext4als Dateisystemtyp und setzen Sie den Mount-Punkt auf /. Klicken Sie dann auf "Jetzt installieren" und installieren Sie Ubuntu normal.

Wenn Sie mit der Installation fertig sind, klicken Sie auf "Continue testing". Öffnen Sie ein Terminal und geben Sie Folgendes ein:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyzsollte durch Ihre bootPartition ersetzt werden. Geben Sie als Nächstes Folgendes ein:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

Öffnen Sie ein zweites Terminal und geben Sie ein sudo blkid. Suchen Sie die UUID für root(die crypto_luksam Ende steht) und fügen Sie sie ein /etc/crypttab. Dann sollte die Datei /etc/crypttabungefähr so ​​aussehen:

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Schließen Sie die Datei mit Ctrl+ x, yund Enter. Tippen Sie nano /etc/fstabdas Terminal ein und prüfen Sie, ob alles richtig aussieht (zB die UUIDs).

Beenden Sie schließlich die Chroot-Umgebung und geben Sie Folgendes ein:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

Dadurch wird ein Abbild des Headers der verschlüsselten Partition in den Ordner eingefügt /rootund benannt root.img. Verschieben Sie das Image anschließend auf ein externes Laufwerk (falls Sie das Kennwort vergessen haben). Jetzt können Sie Ihr neu installiertes Ubuntu neu starten.

Quelle: http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

Earl Nick
quelle
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Karl Richter
@Earl Sie schlagen vor, die Partition im Voraus in einer Chroot-Umgebung (oder einer containerisierten Umgebung) zu erstellen und sie dann im Installationsprogramm zu speichern?
Deitch
Wie würde ich das mit dem Preseeder machen?
Deitch
Ich weiß es nicht, aber das ist zumindest eine Lösung, um eine LUKS-verschlüsselte rootPartition ohne LVM zu erstellen.
Earl Nick