Ima-evm-utils — различия между версиями
Строка 48: | Строка 48: | ||
#Импортируем открытый ключ в специальную связку EVM# | #Импортируем открытый ключ в специальную связку EVM# | ||
evmctl import --rsa /etc/keys/pubkey.pem $evm_kr_id | evmctl import --rsa /etc/keys/pubkey.pem $evm_kr_id | ||
+ | |||
+ | #Выполнив повторно команду, убеждаемся, что ключ импортирован | ||
+ | sudo keyctl show | ||
+ | |||
+ | [root@localhost ~]# keyctl show | ||
+ | Session Keyring | ||
+ | 228099777 --alswrv 0 0 keyring: _ses | ||
+ | 150675630 --alswrv 0 65534 \_ keyring: _uid.0 | ||
+ | 740423240 --alswrv 0 0 \_ keyring: _evm | ||
+ | 939289881 --alswrv 0 0 \_ user: Xv▒ | ||
+ | |||
+ | #Создаем мастер-ключ ядра для защиты ключа EVM | ||
+ | dd if=/dev/urandom bs=1 count=32 2>/dev/null | keyctl padd user kmk-user @u | ||
+ | |||
+ | Создаем шифрованный ключ на основе случайно-сгенерированного мастер-ключа: | ||
+ | keyctl add encrypted evm-key "new user:kmk 64" @u | ||
+ | |||
+ | Включаем EVM | ||
+ | echo 1 > /sys/kernel/security/evm | ||
+ | Убедимся, что EVM активирован | ||
+ | dmesg | tail -1 | ||
+ | ''в результате выполнения команды видим следующий текст EVM: initialized'' | ||
+ | [ 6463.195209] EVM: initialized | ||
Версия 13:22, 19 ноября 2020
ПОВЫШЕНИЕ БЕЗОПАСНОСТИ С ПОМОЩЬЮ ПОДСИСТЕМЫ ЦЕЛОСТНОСТИ ЯДРА
Integrity Measurement Architecture (IMA) : Архитектура проверки целостности
Extended Verification Module (EVM) : Расширенный модуль проверки
Настройка IMA и EVM позволяет подписывать файлы при помощи ЭЦП и повышать безопасность операционной системы.
- Установка необходимых пакетов:
sudo yum install ima-evm-utils keyutils openssl
Внести изменения в файл /etc/fstab выставив параметр iversion на всех записях в файле /etc/fstab относящихся к местам, где могут быть исполняемые файлы:
vi /etc/fstab
# # /etc/fstab # Created by anaconda on Wed Nov 11 15:19:25 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/alteros-root / ext4 defaults,iversion 1 1 UUID=48c0bccf-fa73-4a6b-8476-e89737b2fd4d /boot ext4 defaults 1 2 /dev/mapper/alteros-swap swap swap defaults 0 0
Выполнить команды создания каталога и монтирования
mkdir /sys/kernel/security mount -t securityfs securityfs /sys/kernel/security
sudo grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=fix ima_appraise_tcb evm=fix" sudo reboot
- Создание новой ключевой пары для EVM
sudo evm_kr_id=$(keyctl newring _evm @u)
Команда создает связку ключей _evm и присоединяет ее к связке ключей пользователя системы @u. Затем идентификатор брелока _evm присваивается переменной evm_kr_id для более удобного обращения в будущем
- Убедимся, что ключевая пара создана
sudo keyctl show
- Создадим каталог для хранения ключей
sudo mkdir -p /etc/keys
- Генерация 1024-битного RSA закрытого ключа и запись его в файл /etc/keys/privkey.pem
sudo openssl genrsa -out /etc/keys/privkey.pem 1024
Используя ранее созданный файл /etc/keys/privkey.pem, получаем соответствующий открытый ключ RSA в файл /etc/keys/pubkey.pem
sudo openssl rsa -pubout -in /etc/keys/privkey.pem -out /etc/keys/pubkey.pem
- Импортируем открытый ключ в специальную связку EVM#
evmctl import --rsa /etc/keys/pubkey.pem $evm_kr_id
- Выполнив повторно команду, убеждаемся, что ключ импортирован
sudo keyctl show
[root@localhost ~]# keyctl show Session Keyring 228099777 --alswrv 0 0 keyring: _ses 150675630 --alswrv 0 65534 \_ keyring: _uid.0 740423240 --alswrv 0 0 \_ keyring: _evm 939289881 --alswrv 0 0 \_ user: Xv▒
- Создаем мастер-ключ ядра для защиты ключа EVM
dd if=/dev/urandom bs=1 count=32 2>/dev/null | keyctl padd user kmk-user @u
Создаем шифрованный ключ на основе случайно-сгенерированного мастер-ключа:
keyctl add encrypted evm-key "new user:kmk 64" @u
Включаем EVM
echo 1 > /sys/kernel/security/evm
Убедимся, что EVM активирован
dmesg | tail -1
в результате выполнения команды видим следующий текст EVM: initialized
[ 6463.195209] EVM: initialized
- Включение модуля и генерация мастер-ключа
sudo modprobe trusted encrypted sudo keyctl add trusted kmk-trusted "new 32" @u