Existe-t-il un moyen d'activer le démarrage sécurisé sous Linux?

8

Tout comme Windows a un démarrage sécurisé qui empêche tout code de chargeur de système d'exploitation externe de s'exécuter au démarrage, Linux a-t-il une option similaire pour lui-même? J'ai regardé autour de moi, mais lorsque je recherche, les seuls résultats que j'obtiens sont comment installer Linux sur une machine Windows compatible UEFI. Je ne trouve pas comment apporter cette option à ma machine Linux.

Rohan
la source
mot-clé de recherche: "grub de confiance"
Gilles 'SO- arrête d'être méchant'
Il est possible d'installer un shimchargeur de démarrage qui a été signé par Microsoft, voir par exemple wiki.debian.org/SecureBoot
phk
@Gilles est le logiciel de confiance de confiance? Il est intimidant de télécharger quelque chose qui modifiera mon processus de démarrage.
Rohan
@Rohan Trusted Grub est aussi fiable que n'importe quel autre logiciel Linux fondamental. Il est maintenu par les mêmes personnes que TrouSers, qui est la pile logicielle TPM de Linux.
Gilles 'SO- arrête d'être méchant'

Réponses:

3

Pour que le démarrage sécurisé fonctionne, votre matériel doit prendre en charge le démarrage sécurisé et votre système d'exploitation doit prendre en charge le démarrage sécurisé.

Pour HW, vous pouvez vérifier dans les menus de configuration UEFI et vous devez ajouter les certificats / clés fournis par le système d'exploitation

Pour OS, vous pouvez vérifier le support en suivant les commandes:

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

Si la sortie de la commande ci-dessus est "1", le démarrage sécurisé est pris en charge et activé par votre système d'exploitation.

shubham
la source
Il n'y a pas un tel fichier ...
Rohan
@Rohan, Il est possible que votre noyau ne soit pas compilé avec un support de démarrage sécurisé. Vérifiez la sortie de ce qui suit: [root @ secureboot-guest ~] # cat / boot / config-uname -r | grep SECURE Si le support de démarrage sécurisé existe dans le noyau, vous obtiendrez la sortie comme ci-dessous: CONFIG_EFI_SECURE_BOOT_SECURELEVEL = y CONFIG_SECURITY_SECURELEVEL = y
shubham
-rest une option invalide pour chat, selon mon terminal.
Rohan
oh en fait c'était une commande linux. C'est la commande: cat / boot / config- uname -r mettez uname -r inside `aux deux extrémités
shubham
2

Tout d'abord: générer sa propre clé

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

Essayez de compiler le noyau linux avec CONFIG_EFI_STUB et d'y intégrer des initramfs comme décrit ici: https://prosauce.org/blog/2015/10/31/booting-linux-securely , pour signer des modules que vous pouvez utiliser le script suivant:

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

Ensuite, créez un fichier avec le noyau cmdline pour votre ordinateur portable \ poste de travail, et créez une image et copiez-la dans le répertoire de démarrage efi comme ceci:

# 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

Pour installer votre propre clé dans le firmware MB, vous pouvez faire des cmds comme ceci:

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
la source
-1

Le démarrage sécurisé AFAIK est une fonctionnalité UEFI développée par Microsoft et d'autres sociétés qui forment le consortium UEFI.

UEFI est partiellement appliqué par le matériel, c'est-à-dire que la configuration de votre carte mère peut / peut ne pas gêner. Si vous utilisez un UEFI complet, il est probable que vous pourrez activer le démarrage sécurisé à partir du menu UEFI lui-même.

Cependant, si votre firmware est UEFI avec CSM / BIOS, vous pouvez rencontrer certains obstacles tels que l'option permettant d'activer le démarrage sécurisé en grisé et tout.

sohom154
la source
2
Ce n'est pas un produit Microsoft, c'est un standard Microsoft aurait pu avoir son mot à dire dans sa création: en.wikipedia.org/wiki/…
phk
@phk a mis à jour la réponse en conséquence
sohom154