So vermeiden Sie die Eingabe einer verschlüsselten Boot-Partitionskennung in LVMarch Linux

1959
Vipin

Ich verwende LVM mit Arch Linux. Die Festplattenstruktur finden Sie unten.

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk  |-sda1 8:1 0 512M 0 part  | `-cryptboot 254:3 0 510M 0 crypt  | `-vgboot-boot 254:4 0 508M 0 lvm /boot `-sda2 8:2 0 49.5G 0 part  `-cryptlvm 254:0 0 49.5G 0 crypt  |-vgos-swap 254:1 0 4G 0 lvm [SWAP] `-vgos-root 254:2 0 45.5G 0 lvm / sr0 11:0 1 560M 0 rom  

Wenn ich in mein System boote, bekomme ich eine Aufforderung zur Passworteingabe für meine Boot-Partition, da diese verschlüsselt ist. Aber ich möchte diese Kennwortabfrage vermeiden und auch meine Bootpartition sollte sich in lvm befinden. Bitte lassen Sie mich wissen, wenn jemand dies getan hat.

Wenn Sie das obige Diagramm sehen, befindet sich auch mein Stamm in lvm. Nachdem Sie den Kernel ausgewählt haben, werden Sie auch nach einem Kennwort gefragt. Das ist aber kein Problem.

0

1 Antwort auf die Frage

0
gronostaj

Sie erhalten eine doppelte Kennwortaufforderung, da Ihre /bootPartition verschlüsselt ist. Zunächst fordert GRUB zur Eingabe eines Kennworts auf, da der Kernel verschlüsselt geladen werden muss /boot. Anschließend fordert der Kernel erneut zum Entschlüsseln des Kennworts auf /.

Es gibt zwei Ansätze für dieses Problem:

  1. Verwenden Sie keine verschlüsselten /boot. GRUB fragt nicht nach dem Passwort. Dies erlaubt jedem, an Kernel- und Initramfs-Dateien zu basteln . Beispielsweise könnte man den Kernel durch einen böswilligen Kernel ersetzen /, der nach der Eingabe des Kennworts auf Ihr verschlüsseltes zugreift .

  2. Erstellen Sie einen Entschlüsselungsschlüssel, fügen Sie ihn einem freien LUKS-Slot hinzu und binden Sie ihn /dann in initramfs ein. Dadurch wird der Kernel /ohne Passwort zugreifen können.

Das Setup für # 2 ist ziemlich kompliziert, also gehe ich mit dem bisherigen Ansatz weiter. Ich schreibe das von ganz oben, ohne zu testen. Machen Sie Backups und fahren Sie vorsichtig fort. Ich bin nicht verantwortlich für Datenverlust und andere Probleme, die durch diesen Prozess verursacht werden.

Sie benötigen ein bootfähiges Linux-Medium mit cryptsetupund resize2fs. Ich würde empfehlen, Ubuntu Flash-Laufwerk zu verwenden. Letzteres können Sie auch durch ersetzen partclone. Sie benötigen außerdem etwa 500 MB freien Speicherplatz, um zwischengespeicherte Zwischenbilder zu speichern /boot.

Booten Sie von Ihrem Linux-Medium. Greifen Sie auf das LVM zu (ehrlich gesagt, ich habe mich noch nie damit befasst, daher habe ich keine Ahnung, ob weitere Schritte erforderlich sind - es besteht die Möglichkeit, dass Ubuntu dies automatisch erledigt). Öffne das verschlüsselte /boot:

cryptsetup open /dev/<boot> cryptboot 

Erstellen Sie ein Image des unverschlüsselten Startvorgangs: (um den Fortschritt pvanstelle von zu sehen cat)

cat /dev/mapper/cryptboot > /media/ubuntu/<someExternalStorage>/boot.img 

Schließen /boot:

sync cryptsetup close cryptboot 

Schreiben Sie unverschlüsselt /bootin die Partition und passen Sie die Größe des Dateisystems an:

cat /media/ubuntu/<someExternalStorage>/boot.img > /dev/<boot> resize2fs /dev/<boot> 

Holen Sie sich eine UUID von /boot(notieren Sie sich diese):

blkid /dev/<boot> 

Öffnen und Mounten /, Update fstab:

cryptsetup open /dev/<root> cryptroot mkdir -p /mnt/root mount /dev/mapper/cryptroot /mnt/root cd /mnt/root vi etc/fstab 

Passen Sie die angehängte Zeile /bootan, um die neue UUID anstelle des /dev/mapper/...Eintrags zu verwenden. Möglicherweise müssen Sie auch die /bootLeitung von entfernen etc/crypttab.

Aktualisieren Sie initramfs (dieses kann in Ubuntu brechen, wenn Ihr Haupt-Betriebssystem Arch ist. Ich bin mir nicht sicher, also seien Sie vorsichtig):

cd /mnt/root mount -t sysfs sysfs sys mount -t tmpfs tmp tmp mount -t proc proc proc mount --bind /dev dev mount /dev/<boot> boot mount --bind /boot/efi boot/efi chroot update-initramfs -u -k all exit 

Soweit ich mich erinnere, sollte das ausreichen. Sie können die GRUB-Konfiguration auch vereinfachen, indem Sie den verschlüsselten Start in den Konfigurationsdateien deaktivieren. Das Booten kann etwas beschleunigt werden, ist aber nicht erforderlich.

Aufräumen nach dir selbst:

umount boot/efi boot dev proc tmp sys cd .. umount root cryptsetup close cryptroot 
Danke für die Antwort und sehr nützliche Informationen. Ich möchte jedoch nicht, dass mein Boot die verschlüsselte Partition verlässt Vipin vor 5 Jahren 0
Dann musst du mit # 2 gehen. [Hier ist ein Leitfaden] (https://web.archive.org/web/20160101193137/http://missinglink.xyz/security/tutorial-debianubuntu-full-disk-encryption-luks-fde-inkludierend-encryptedboot/ Verbesserte-Full-Disk-Verschlüsselung-Add-Luks-Key-Datei-Initrdinitramfs /). gronostaj vor 5 Jahren 0
Danke für den Link. Nur eine Klarstellung. Wenn wir die Schlüsseldatei in initramfs einlesen. Diese Schlüsseldatei hilft uns beim Entsperren des Root-Dateisystems. / Boot ist aber immer noch verschlüsselt. Wir müssen jedes Mal das Passwort eingeben. Es gibt keine Möglichkeit, es als Schlüsseldatei einzubetten? Vipin vor 5 Jahren 0
Sie können denselben Schlüssel zu `/` und `/ boot` hinzufügen. Sie müssen das Kennwort nur einmal eingeben, damit GRUB den Kernel und initramfs von `/ boot` laden kann. Dann wird der Kernel die Schlüsseldatei verwenden, um `/` zu öffnen, und dieselbe Schlüsseldatei erneut, um `/ boot` zu öffnen und zu mounten. Der LUKS-Header kann bis zu 8 Schlüssel / Kennwörter enthalten. Das Öffnen mit Kennwort (für GRUB) und mit Schlüssel (für Kernel) ist daher nicht exklusiv. gronostaj vor 5 Jahren 0
Vielen Dank. Schlüsseldatei wird in initramfs hinzugefügt, wenn Sie dies richtig verstehen. Aber woher weiß man, welche Partition wir diese Schlüsseldatei verwenden sollen? Vipin vor 5 Jahren 0
Siehe `/ etc / crypttab`, Schritt 6 in dem Artikel, den ich oben verlinkt habe. Linux entscheidet damit, welche Partitionen geöffnet werden müssen, bevor Dateisysteme gemäß `/ etc / fstab` gemountet werden. Es wird auch beim Erstellen von initramfs verwendet, aber normalerweise werden Einträge, die Schlüsseldateien verwenden, ignoriert, da Schlüsseldateien im Dateisystem gespeichert werden, das zu diesem Zeitpunkt nicht verfügbar ist. In diesem Artikel wird die Schlüsseldatei in initramfs eingebettet, damit sie während des Startens verfügbar ist, bevor Dateisysteme eingehängt werden. gronostaj vor 5 Jahren 0
Ok, das habe ich gelesen. Können Sie bitte sagen, was diese Anweisung in Schritt 2 macht, wenn Sie cryptsetup luksAddKey / dev / sda2 /root/autounlock.key --key-slot 1 ausführen. Ist es wie ein Autounlock-Pfad, wird es auf Slot gesetzt und der Passwort-Hash wird einfach kopiert. Vipin vor 5 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (https://chat.stackexchange.com/rooms/77788/discussion-between-gronostaj-and-vipin). gronostaj vor 5 Jahren 0