IMA: различия между версиями
PastorDi (обсуждение | вклад) Новая страница: «== Введение == Эта статья описывает настройки и использование замкнутой программной среды в ОС ROSA rosa2021.1 (Fresh/Chrome 12+), rosa2019.05 (Nickel). '''Решаемая задача: запрет запуска исполняемых файлов недоверенного происхождения.''' Администратор сам управляет списком дов...» |
PastorDi (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
Строка 26: | Строка 26: | ||
=== Создание ключей === | === Создание ключей === | ||
Создается пара ключей: закрытый и открытый ключи. | |||
Закрытым ключом подписываются файлы, следовательно, к нему не должно быть доступа у тех, кто не должен иметь возможности подписать файлы, и рекомендуется хранить его отдельно, а не на машине, где выполняется запуск подписанных исполняемых файлов. | |||
Открытый ключ должен быть установлен на каждой системе, на которой производится запуск подписанных исполняемых файлов, он используется для проверки валидности подписи. Открытый ключ хранится на диске и загружается в ключницу ядра в initrd. | |||
Ниже описано создание ключевой пары по ГОСТ. Возможно применение RSA. | |||
Откройте консоль root командой: | |||
sudo -i | |||
или: | |||
su - | |||
Создайте каталог «ima»: | |||
mkdir -p ima | |||
Переведите терминал в него: | |||
cd ima | |||
[[Файл:Ima2.png]] | |||
Создайте файл x509.conf с приведенным ниже текстом. Для создания файла откройте консольный текстовый редактор, например, nano, командой: | |||
nano x509.conf | |||
и вставьте текст ниже: | |||
<pre> | |||
[ req ] | |||
distinguished_name = req_distinguished_name | |||
prompt = no | |||
string_mask = utf8only | |||
x509_extensions = myexts | |||
[ req_distinguished_name ] | |||
O = IMA | |||
CN = Executable Signing Key | |||
emailAddress = ivan@petrov.tld | |||
[ myexts ] | |||
basicConstraints=critical,CA:FALSE | |||
keyUsage=digitalSignature | |||
subjectKeyIdentifier=hash | |||
authorityKeyIdentifier=keyid | |||
</pre> | |||
Значения полей O, CN, emailAddress являются произвольными, можно заменить их на свои. | |||
Сохраните файл. Если используется редактор nano, то последовательно нажмите: Ctrl+O, Enter, Ctrl+X. | |||
Теперь создайте пару ключей: | |||
Значения полей O, CN, emailAddress являются произвольными, можно заменить их на свои. | |||
Сохраните файл. Если используется редактор nano, то последовательно нажмите: Ctrl+O, Enter, Ctrl+X. | |||
Теперь создайте пару ключей: | |||
libressl req -new -nodes -utf8 -batch -newkey gost2001 -pkeyopt dgst:streebog512 -pkeyopt paramset:A -streebog512 -days 109500 -x509 -config x509.conf -outform DER -out ima_cert.der -keyout ima_priv.pem | |||
ima_cert.der — открытый ключ, ima_priv.pem — закрытый. | |||
[[Файл:Ima3.png]] | |||
Создайте каталог с открытыми ключами: | |||
mkdir -p /etc/keys/ima | |||
Все ключи из этого каталога будут импортированы в ядро на этапе initrd. | |||
Скопируйте созданный открытый ключ в этот каталог: | |||
cp -v ima_cert.der /etc/keys/ima/ima_cert.der | |||
И дополнительно в другой каталог для работы evmctl ima_verify: | |||
cp -v ima_cert.der /etc/keys/x509_evm.der | |||
=== Создание политики IMA === |
Версия от 13:39, 28 мая 2025
Введение
Эта статья описывает настройки и использование замкнутой программной среды в ОС ROSA rosa2021.1 (Fresh/Chrome 12+), rosa2019.05 (Nickel).
Решаемая задача: запрет запуска исполняемых файлов недоверенного происхождения. Администратор сам управляет списком доверенных ключей.
Фиксируется состояние системы путем подписывания имеющихся в ней файлов, а иные файлы не могут быть запущены, а неподписанные разделяемые библиотеки не смогут быть загружены, в т.ч. путем dlopen().
Настройка замкнутой программной среды
Подготовка
Запуск с разрешающим SELinux
Если используется система со включенным SELinux (Никель), то необходимо ее запустить с SELinux в разрешающем (permissive) режиме. Для этого при включении системы в загрузчике Grub выберите нужный пункт меню и нажмите клавишу с латинской буквой E, введите логин ("root") и пароль от загрузчика, в открывшемся текстовом редакторе с помощью клавиш со стрелками вверх, вниз, вправо, влево переместите курсор ввода текста в конец строки, начинающейся со слова «linux», и допишите в конец строки: « enforcing=0».
Нажмите Ctrl+X или F10 для запуска ОС с измененными параметрами ядра.
Если используется система без настроенного SELinux (ROSA Fresh, ROSA Chrome), то выполнять данный пункт не требуется (однако, если его выполнить, не будет ни плохо, ни хорошо).
Установка пакетов
Установите необходимые пакеты:
sudo dnf install ima-evm-utils libressl audit ima-inspect audit
Во многих дистрибутивах ROSA все эти пакеты уже установлены, в таком случае пакетный менеджер dnf сообщит об этом при выполнении приведенной выше команды.
Создание ключей
Создается пара ключей: закрытый и открытый ключи.
Закрытым ключом подписываются файлы, следовательно, к нему не должно быть доступа у тех, кто не должен иметь возможности подписать файлы, и рекомендуется хранить его отдельно, а не на машине, где выполняется запуск подписанных исполняемых файлов.
Открытый ключ должен быть установлен на каждой системе, на которой производится запуск подписанных исполняемых файлов, он используется для проверки валидности подписи. Открытый ключ хранится на диске и загружается в ключницу ядра в initrd.
Ниже описано создание ключевой пары по ГОСТ. Возможно применение RSA.
Откройте консоль root командой:
sudo -i
или:
su -
Создайте каталог «ima»:
mkdir -p ima
Переведите терминал в него:
cd ima
Создайте файл x509.conf с приведенным ниже текстом. Для создания файла откройте консольный текстовый редактор, например, nano, командой:
nano x509.conf
и вставьте текст ниже:
[ req ] distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = myexts [ req_distinguished_name ] O = IMA CN = Executable Signing Key emailAddress = ivan@petrov.tld [ myexts ] basicConstraints=critical,CA:FALSE keyUsage=digitalSignature subjectKeyIdentifier=hash authorityKeyIdentifier=keyid
Значения полей O, CN, emailAddress являются произвольными, можно заменить их на свои.
Сохраните файл. Если используется редактор nano, то последовательно нажмите: Ctrl+O, Enter, Ctrl+X.
Теперь создайте пару ключей:
Значения полей O, CN, emailAddress являются произвольными, можно заменить их на свои.
Сохраните файл. Если используется редактор nano, то последовательно нажмите: Ctrl+O, Enter, Ctrl+X.
Теперь создайте пару ключей:
libressl req -new -nodes -utf8 -batch -newkey gost2001 -pkeyopt dgst:streebog512 -pkeyopt paramset:A -streebog512 -days 109500 -x509 -config x509.conf -outform DER -out ima_cert.der -keyout ima_priv.pem
ima_cert.der — открытый ключ, ima_priv.pem — закрытый.
Создайте каталог с открытыми ключами:
mkdir -p /etc/keys/ima
Все ключи из этого каталога будут импортированы в ядро на этапе initrd.
Скопируйте созданный открытый ключ в этот каталог:
cp -v ima_cert.der /etc/keys/ima/ima_cert.der
И дополнительно в другой каталог для работы evmctl ima_verify:
cp -v ima_cert.der /etc/keys/x509_evm.der