Gibt es eine Möglichkeit, den sicheren Start unter Linux zu aktivieren?

8

Hat Linux eine ähnliche Option für sich, genau wie Windows einen sicheren Start hat, der verhindert, dass externer OS Loader-Code beim Start ausgeführt wird? Ich habe mich umgesehen, aber bei der Suche erhalte ich nur die Installation von Linux auf einem UEFI-fähigen Windows-Computer. Ich kann nicht finden, wie ich diese Option auf meinen Linux-Computer übertragen kann.

Rohan
quelle
Suchbegriff: "Trusted Grub"
Gilles 'SO - hör auf böse zu sein'
Es besteht die Möglichkeit shim, einen von Microsoft signierten Bootloader zu installieren , siehe z. B. wiki.debian.org/SecureBoot
phk
@ Gilles ist die Trustedgrub-Software vertrauenswürdig? Es ist einschüchternd, etwas herunterzuladen, das meinen Startvorgang verändert.
Rohan
@Rohan Trusted Grub ist genauso vertrauenswürdig wie jede andere grundlegende Linux-Software. Es wird von denselben Leuten gepflegt wie TrouSers, der TPM-Software-Stack von Linux.
Gilles 'SO - hör auf böse zu sein'

Antworten:

3

Damit ein sicherer Start funktioniert, sollte Ihre Hardware einen sicheren Start unterstützen und Ihr Betriebssystem sollte einen sicheren Start unterstützen.

Für HW können Sie die UEFI-Einstellungsmenüs überprüfen und die vom Betriebssystem bereitgestellten Zertifikate / Schlüssel hinzufügen

Für das Betriebssystem können Sie die Unterstützung mit den folgenden Befehlen überprüfen:

[root@secureboot-guest ~]# cat /sys/kernel/security/securelevel 

Wenn die Ausgabe des obigen Befehls "1" ist, wird der sichere Start von Ihrem Betriebssystem unterstützt und aktiviert.

Shubham
quelle
Es gibt keine solche Datei ...
Rohan
@Rohan, Es ist möglich, dass Ihr Kernel nicht mit sicherer Boot-Unterstützung kompiliert wurde. Überprüfen Sie die folgenden Ausgaben: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep SECURE Wenn im Kernel sichere Bootunterstützung vorhanden ist, erhalten Sie die folgende Ausgabe: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham
-rist laut meinem Terminal eine ungültige Option für Katze.
Rohan
Oh, eigentlich war es ein Linux-Befehl. Dies ist der Befehl: cat / boot / config- uname -r setze uname -r in `an beiden Enden
shubham
2

Zunächst einmal: eigenen Schlüssel generieren

openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
       -subj "/ CN = Kernel Key" -outform DER -out kernel.der \
       -keyout kernel.key

Versuchen Sie, den Linux-Kernel mit CONFIG_EFI_STUB zu kompilieren und initramfs wie hier beschrieben einzubetten: https://prosauce.org/blog/2015/10/31/booting-linux-securely , um Module zu signieren, können Sie das nächste Skript verwenden:

/ usr / src / linux-headers - $ (uname -r) / scripts / sign-file sha256 kernel.key kernel.der module.ko

Erstellen Sie dann eine Datei mit dem Kernel cmdline für Ihren Laptop \ Workstation, erstellen Sie ein Image und kopieren Sie es wie folgt in das efi-Startverzeichnis:

# objcopy \
  --add-section .osrel = / etc / os-release --change-section-vma .osrel = 0x20000 \
  --add-section .cmdline = / tmp / cmdline --change-section-vma .cmdline = 0x30000 \
  --add-section .linux = / boot / vmlinuz --change-section-vma .linux = 0x2000000 \
  --add-section .initrd = / boot / initrd.img --change-section-vma .initrd = 0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi

# mkdir -p / boot / efi / EFI / BOOT

# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi / boot / efi / EFI / BOOT /BOOTX64.EFI

Um einen eigenen Schlüssel in die MB-Firmware zu installieren, können Sie cmds wie folgt ausführen:

openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
sign-efi-sig-list -k KEK.key -c KEK.pem Kernel kernel.esl kernel.auth
user1024
quelle
-1

AFAIK Secure Boot ist eine UEFI-Funktion, die von Microsoft und einigen anderen Unternehmen, die das UEFI-Konsortium bilden, entwickelt wurde.

UEFI wird teilweise durch Hardware erzwungen, dh Ihre Motherboard-Konfiguration kann / kann nicht im Weg stehen. Wenn Sie eine vollständige UEFI verwenden, besteht die Möglichkeit, dass Sie den sicheren Start über das UEFI-Menü selbst aktivieren können.

Wenn Ihre Firmware jedoch UEFI mit CSM / BIOS ist, können bestimmte Hindernisse auftreten, z. B. die Option, das sichere Ausgrauen des sicheren Starts zu aktivieren .

sohom154
quelle
2
Es ist kein Microsoft-Produkt, es ist ein Standard, den Microsoft bei seiner Erstellung möglicherweise
mitbestimmt hat
@phk aktualisiert die Antwort entsprechend
sohom154