Jump to content

IMA: различия между версиями

Новая страница: «== Введение == Эта статья описывает настройки и использование замкнутой программной среды в ОС ROSA rosa2021.1 (Fresh/Chrome 12+), rosa2019.05 (Nickel). '''Решаемая задача: запрет запуска исполняемых файлов недоверенного происхождения.''' Администратор сам управляет списком дов...»
 
Нет описания правки
Строка 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

Создание политики IMA