[d-kernel] [PATCH 4/6] efi: Lock down the kernel if booted in secure boot mode
Egor Ignatov
egori на altlinux.org
Ср Май 20 15:28:51 MSK 2026
On 5/9/26 3:24 AM, Vitaly Chikunov wrote:
> On Wed, May 06, 2026 at 08:37:20PM +0300, Egor Ignatov wrote:
>> From: David Howells <dhowells at redhat.com>
>>
>> UEFI Secure Boot provides a mechanism for ensuring that the firmware
>> will only load signed bootloaders and kernels. Certain use cases may
>> also require that all kernel modules also be signed. Add a
>> configuration option that to lock down the kernel - which includes
>> requiring validly signed modules - if the kernel is secure-booted.
>>
>> Signed-off-by: David Howells <dhowells at redhat.com>
>> Signed-off-by: Jeremy Cline <jcline at redhat.com>
>> [egori: merged Fedora and Debian downstream patches]
>
> Допустим возник merge conflict, что здесь смержено? Да и зачем?
>
> Если мерж не зачем-то важен, то лучше оставить не смерженые патчи чтоб
> потом можно было понять что к чему относится и посмотреть апстримную
> версию.
Возможно не совсем верно с моей стороны было написать "merged". Дело в
том, что в Fedora, как и в оригинальной серии имеется 2 коммита:
- security: lockdown: expose a hook to lock the kernel down
- efi: Lock down the kernel if booted in secure boot mode
А в Debian изменения обоих этих коммитов содержатся в одном патче:
efi-lock-down-the-kernel-if-booted-in-secure-boot-mo.patch.
Мне показалось правильнее и понятнее сохранить оригинальный набор
коммитов, при этом взять более качественную реализацию для 'security:
lockdown: expose a hook to lock the kernel down' на основе патчей из
Fedora (см PATCH 2/6). И подход Debian для 'efi: Lock down the kernel if
booted in secure boot mode', где вызов security_lock_kernel_down
происходит внутри efi_set_secure_boot, что необходимо для последующего
патча (PATCH 5/6).
По итогу, от Fedora в этом коммите только название. Заменю запись на:
[egori: based on
efi-lock-down-the-kernel-if-booted-in-secure-boot-mo.patch Debian patch]
>> Signed-off-by: Egor Ignatov <egori at altlinux.org>
>> ---
>> arch/x86/kernel/setup.c | 4 ++--
>> drivers/firmware/efi/secureboot.c | 3 +++
>> security/lockdown/Kconfig | 15 +++++++++++++++
>> 3 files changed, 20 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
>> index b67b87af6f..7605f3372a 100644
>> --- a/arch/x86/kernel/setup.c
>> +++ b/arch/x86/kernel/setup.c
>> @@ -995,6 +995,8 @@ void __init setup_arch(char **cmdline_p)
>> if (efi_enabled(EFI_BOOT))
>> efi_init();
>>
>> + efi_set_secure_boot(boot_params.secure_boot);
>> +
>> reserve_ibft_region();
>> x86_init.resources.dmi_setup();
>>
>> @@ -1156,8 +1158,6 @@ void __init setup_arch(char **cmdline_p)
>> /* Allocate bigger log buffer */
>> setup_log_buf(1);
>>
>> - efi_set_secure_boot(boot_params.secure_boot);
>> -
>> reserve_initrd();
>>
>> acpi_table_upgrade();
>> diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c
>> index 5cdeb3b6e7..673e2d1b6c 100644
>> --- a/drivers/firmware/efi/secureboot.c
>> +++ b/drivers/firmware/efi/secureboot.c
>> @@ -29,6 +29,9 @@ void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
>> case efi_secureboot_mode_enabled:
>> set_bit(EFI_SECURE_BOOT, &efi.flags);
>> pr_info("Secure boot enabled\n");
>> + if (IS_ENABLED(CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT))
>> + security_lock_kernel_down("EFI Secure Boot mode",
>> + LOCKDOWN_INTEGRITY_MAX);
>> break;
>> default:
>> pr_warn("Secure boot could not be determined (mode %u)\n",
>> diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig
>> index e84ddf4840..f789e07849 100644
>> --- a/security/lockdown/Kconfig
>> +++ b/security/lockdown/Kconfig
>> @@ -16,6 +16,21 @@ config SECURITY_LOCKDOWN_LSM_EARLY
>> subsystem is fully initialised. If enabled, lockdown will
>> unconditionally be called before any other LSMs.
>>
>> +config LOCK_DOWN_IN_EFI_SECURE_BOOT
>> + bool "Lock down the kernel in EFI Secure Boot mode"
>> + default n
>> + depends on SECURITY_LOCKDOWN_LSM
>> + depends on EFI
>> + select SECURITY_LOCKDOWN_LSM_EARLY
>> + help
>> + UEFI Secure Boot provides a mechanism for ensuring that the firmware
>> + will only load signed bootloaders and kernels. Secure boot mode may
>> + be determined from EFI variables provided by the system firmware if
>> + not indicated by the boot parameters.
>> +
>> + Enabling this option results in kernel lockdown being
>> + triggered in integrity mode if EFI Secure Boot is set.
>> +
>> choice
>> prompt "Kernel default lockdown mode"
>> default LOCK_DOWN_KERNEL_FORCE_NONE
>> --
>> 2.50.1
>>
>> _______________________________________________
>> devel-kernel mailing list
>> devel-kernel at lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/devel-kernel
> _______________________________________________
> devel-kernel mailing list
> devel-kernel at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel-kernel
--
Egor Ignatov
ALT Linux Team
Подробная информация о списке рассылки devel-kernel