Подробный гайд по использованию пакета mokutil в операционной системе ALT Linux

Подробный гайд по mokutil в ALT Linux: управление Secure Boot, генерация и регистрация MOK-ключей для безопасной загрузки и подписи сторонних модулей ядра.

2026.07.23                  


Подробный гайд по использованию пакета mokutil в операционной системе ALT LinuxПодробный гайд по использованию пакета mokutil в операционной системе ALT Linux Рад приветствовать вас. Ниже представлен подробный гайд по использованию пакета mokutil в операционной системе ALT Linux. Этот инструмент критически важен, если вы используете UEFI Secure Boot и вам нужно загружать сторонние модули ядра (например, проприетарные драйверы NVIDIA, VirtualBox) или использовать собственные ключи.


1. Что такое MOK и зачем нужен mokutil?

Secure Boot — это механизм UEFI, который разрешает загрузку только того ПО (включая модули ядра), которое подписано доверенными ключами (обычно ключами Microsoft и дистрибутива).

Если вы собираете свой модуль ядра, Secure Boot его заблокирует. MOK (Machine Owner Key) — это дополнительная база данных ключей в UEFI, которой владеет сам пользователь (Machine Owner). Утилита mokutil позволяет добавлять, удалять и просматривать ключи в этой базе данных из работающей ОС, не отключая Secure Boot.


2. Установка mokutil в ALT Linux

В ALT Linux используется пакетный менеджер apt-get (apt-rpm).

Откройте терминал и выполните команды от имени суперпользователя (root):

su -
apt-get update
apt-get install mokutil

Примечание:

Если пакет не находится, убедитесь, что подключены основные репозитории вашего релиза (p10, p9 или Сизиф).


3. Основные команды mokutil

Вот базовый набор команд для управления ключами:

* Проверить статус Secure Boot:

    mokutil --sb-state

* Посмотреть список уже доверенных MOK ключей:

    mokutil --list-enrolled

* Добавить ключ в очередь на регистрацию (импорт):

    mokutil --import /путь/к/ключу.der

(При выполнении этой команды система попросит вас придумать и ввести временный пароль. Он понадобится при следующей перезагрузке в меню UEFI).


* Удалить ключ из очереди на регистрацию:

    mokutil --delete /путь/к/ключу.der

* Сбросить все MOK ключи (очистить очередь):

    mokutil --reset

* Отключить/Включить Secure Boot (требует прав root и поддержки BIOS):

    mokutil --disable-validation  # Временно отключает проверки
    mokutil --enable-validation   # Включает обратно

4. Пошаговый сценарий: Регистрация собственного ключа

Это самый частый сценарий. Допустим, вы сгенерировали ключи для подписи модулей ядра.

Шаг 1: Генерация ключей (если их еще нет)

Обычно ключи генерируются с помощью openssl. Создадим их в /etc/keys/:

mkdir -p /etc/keys
cd /etc/keys
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Denis Sergeevich ALT Linux MOK/"
chmod 600 MOK.priv

Важно:

Файл MOK.priv (приватный ключ) храните в секрете. Файл MOK.der (публичный ключ/сертификат) мы будем регистрировать.


Шаг 2: Импорт ключа через mokutil

Добавляем публичный ключ в очередь MOK:

mokutil --import /etc/keys/MOK.der

Система попросит ввести пароль (Enter password) и подтвердить его (Enter password again).


Внимание:

Это НЕ ваш пароль от Linux. Это одноразовый пароль, который вы запомните для следующего шага. Он не сохраняется в ОС.


Шаг 3: Перезагрузка и подтверждение в UEFI (MOK Manager)

  1. Перезагрузите компьютер: reboot.
  2. Сразу после старта, до загрузки ОС, на черном экране появится синее меню Perform MOK management (MOK Manager).
  3. Выберите Enroll MOK.
  4. Выберите Continue.
  5. Выберите Yes.
  6. Система попросит ввести тот самый одноразовый пароль, который вы задали в Шаге 2. Вводите его (раскладка клавиатуры в UEFI обычно английская, символы могут не отображаться).
  7. Выберите Reboot.

После перезагрузки ваш ключ будет добавлен в доверенную базу UEFI.


Шаг 4: Проверка

Загрузившись в ALT Linux, проверьте, что ключ добавлен:

mokutil --list-enrolled

Вы должны увидеть хэш вашего сертификата MOK.der.


5. Практическое применение в ALT Linux: Подпись модулей ядра

Теперь, когда ключ зарегистрирован, вы можете подписывать им сторонние модули (например, nvidia, vboxdrv, wireguard), чтобы они загружались при включенном Secure Boot.

В ALT Linux для подписи используется утилита kmodsign (обычно поставляется с пакетами kernel-headers или kernel-build-tools).

Пример подписи модуля NVIDIA:

# Узнаем точное имя файла модуля
modinfo -n nvidia

# Подписываем модуль (замените пути на актуальные)
/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
/etc/keys/MOK.priv \
/etc/keys/MOK.der \
/lib/modules/$(uname -r)/updates/nvidia.ko

Лайфхак для ALT Linux:

Если вы используете DKMS для сборки модулей (например, apt-get install nvidia-modules), вы можете настроить автоматическую подпись. Для этого в файле конфигурации DKMS или в скриптах post-install нужно прописать вызов sign-file с использованием ваших ключей из /etc/keys/.


6. Важные нюансы и решение проблем для ALT Linux

1. Ошибки при вводе пароля в UEFI:

В UEFI MOK Manager нет визуального подтверждения ввода пароля (звездочки не показываются). Просто введите пароль и нажмите Enter. Если пароль не подошел, система предложит попробовать снова или выйти.


2. Клавиатура в UEFI:

Убедитесь, что ваша клавиатура подключена напрямую к материнской плате (не через USB-хаб) и используется базовый USB-порт, иначе она может не определиться на этапе MOK Manager.


3. Слетает Secure Boot после обновления BIOS:

На некоторых материнских платах сброс настроек BIOS или его обновление может очистить базу MOK. В этом случае вам придется снова выполнить mokutil --import и пройти процедуру в UEFI.


4. Конфликт с ключами ALT Linux:

ALT Linux по умолчанию использует свои ключи для подписи штатного ядра. mokutil работает с дополнительной базой MOK и никак не конфликтует с базовыми ключами дистрибутива.


5. Если модуль все равно не грузится:

Проверьте системный лог: dmesg | grep -i secureboot или journalctl -k | grep -i lock. Если видите Lockdown или signature verification failed, значит модуль не подписан, либо подписан неверным ключом.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта