3.4.6 Замкнутая программная среда
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Все
- Версия ПО: ima-manage-0.2-1, dracut-056-9
Для контроля целостности компонентов ОС используется IMA. Компонент архитектуры измерения целостности (IMA) производит проверки целостности во время выполнения файлов с использованием хэшей, сравнивая их со списком допустимых хэшей.
Работает, начиная с версии ядра 5.15.78 из репозитория РЕД ОС.
Для проведения контроля целостности необходимо перейти в сеанс пользователя root:
su -
и выполнить следующие действия:
1. Установить пакеты для работы с IMA:
dnf install ima-manage openssl-gost-engine keyutils
2. Обновить пакет dracut:
dnf update dracut
Для корректного осуществления контроля целостности компонентов ОС необходимо, чтобы в системе были установлены актуальные версии пакетов - dracut версии 056-6 и выше, ima-manage версии 0.2-1 и выше.
3. Включить ГОСТ в openssl:
openssl-switch-config gost
4. Сгенерировать пару ключей.
а) Создать файл test-ca.conf:
nano test-ca.conf
В test-ca.conf добавить содержимое:
[ req ] distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = v3_ca [ req_distinguished_name ] O = IMA-CA CN = IMA/EVM certificate signing key emailAddress = ca@ima-ca [ v3_ca ] basicConstraints=CA:TRUE subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer
Значения полей O, CN, emailAddress являются произвольными, можно заменить их на свои. Место расположения файла не играет роли, он нужен только для создания пары ключей один раз.
Сохранить изменения (Ctrl + S) и закрыть редактор (Ctrl + X).
б) Сгенерировать приватный ключ:
openssl genpkey -algorithm gost2012_512 -pkeyopt paramset:A -out privkey_evm.pem
в) Создать запрос:
openssl req -new -config test-ca.conf -md_gost12_512 -key privkey_evm.pem -out cert.req
г) Отправить файл запроса в Техническую поддержку РЕД СОФТ.
Контроль целостности компонентов ОС может быть осуществлен только с использованием ключей, подписанных доверенным центром РЕД СОФТ. Использование самоподписанных ключей не допускается.
Получить публичный ключ (например, x509_evm.der). В случае получения сертификата в CRT-формате, его можно перевести в формат DER следующим образом:
openssl x509 -outform der -in pub.crt -out x509_evm.der
5. Создать папку /etc/keys/ima/ и скопировать в нее открытый ключ x509_evm.der.
mkdir /etc/keys/ima/ cp x509_evm.der /etc/keys/ima/x509_evm.der
Секретный ключ «privkey_evm.pem» сохранить в каталоге, недоступном для всех пользователей, кроме администратора root, например:
mv privkey_evm.pem /root/privkey_evm.pem
Постоянное наличие на машине закрытого ключа для работоспособности ЗПС не требуется. Закрытый ключ требуется только для подписи файлов. Для проверки используется открытый ключ, импортированный в хранилище ключей (keyring) ядра.
Однако обратите внимание, что закрытый ключ потребуется для установки нового ПО или обновления системы.
6. Запустить утилиту ima-manage с ключом init:
ima-manage init
7. В файле /etc/ima-manage.conf изменить значение HASHALGO="sha256" на HASHALGO="streebog512".
Значение битности параметра HASHALGO должно совпадать с битностью сгенерированных ключей. Например, если приватный ключ был сгенерирован с параметром gost2012_256, то значение параметра HASHALGO в таком случае будет равен streebog256.
8. Запустить утилиту ima-manage с ключом «signfs» и указанием пути размещения секретного ключа:
ima-manage signfs /root/privkey_evm.pem
9. Запустить утилиту ima-manage с ключом «enforce»:
ima-manage enforce
Дождаться завершения работы утилиты и предложения перезагрузки. Дать согласие на перезагрузку системы.
После обновления/редактирования файлов, которые ранее были подписаны IMA, их рекомендуется переподписать, выполнив действия, указанные в п. 8-9.
В противном случае корректное поведение системы при следующем запуске не гарантируется.
Для проверки работы защиты от запуска неподписанных исполняемых файлов создайте копию существующего исполняемого файла, например:
cp /bin/ls ls.copy
Попробуйте его запустить, будет выведена ошибка:
./ls.copy bash: ./ls.copy: Permission denied
При этом в логе аудита появится запись о запрете запуска неподписанного файла:
grep -i ima /var/log/audit/audit.log | tail -n 1 type=INTEGRITY_DATA msg=audit(1638974599.231:11315): pid=2800 uid=1000 auid=1000 ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 op=appraise_data cause=IMA-signature-required comm="bash" name="/home/user/ls.copy" dev="dm-0" ino=946370 res=0 errno=0UID="user" AUID="user"
Для запуска сторонних файлов, не имеющих подписи, необходимо от имени администратора подписать файл:
evmctl ima_sign --hashalgo md_gost12_512 --key <путь_к_приватному_ключу_privkey_evm.pem> <путь_к_файлу>
Например:
evmctl ima_sign --hashalgo md_gost12_512 --key /root/privkey_evm.pem /home/user/ls.copy
Для включения режима журналирования (система не будет запрещать запуск неподписанных файлов, но будет записывать попытки их запуска) необходимо в файле /etc/default/grub изменить параметр ima_appraise=enforce на ima_appraise=log.
После этого обновите конфигурацию загрузчика ОС, для этого выполните в терминале команду:
grub2-mkconfig -o /boot/grub2/grub.cfg
Дата последнего изменения: 16.03.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.