24.4. 加载由自定义 IMA 密钥签名的 IMA 策略
要保持您的系统完整性并满足您的机构的安全要求,您可以加载使用您自己的自定义 IMA 密钥签名的 IMA 策略。这种方法可确保在系统启动或运行时仅应用可信的经过身份验证的策略。
此流程只适用于启用了 UEFI 安全引导的 x86_64
和 aarch64
系统,以及运行 PowerVM 安全引导的 ppc64le
系统。
先决条件
- 在您的系统中必须具有 root 权限。
-
为 Red Hat Enterprise Linux 启用 UEFI 安全引导,或者内核使用
ima_policy=secure_boot
参数引导,以确保只能加载签名的 IMA 策略。 - 自定义 IMA CA 密钥已添加到 MOK 列表中。如需更多信息,请参阅在 MOK 列表中添加公钥在目标系统上注册公钥。
- 内核版本为 5.14 或更高版本。
- 为 IMA 策略生成了很好的参考值。如需更多信息,请参阅 为 IMA appraisal 生成良好的参考值。
流程
将自定义 IMA 代码签名密钥添加到
.ima
密钥环中:keyctl padd asymmetric <KEY_SUBJECT> %:.ima < <PATH_TO_YOUR_CUSTOM_IMA_KEY>
# keyctl padd asymmetric <KEY_SUBJECT> %:.ima < <PATH_TO_YOUR_CUSTOM_IMA_KEY>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 准备 IMA 策略,并使用您的自定义 IMA 代码签名密钥对其进行签名:
evmctl ima_sign <PATH_TO_YOUR_CUSTOM_IMA_POLICY> -k <PATH_TO_YOUR_CUSTOM_IMA_KEY>
# evmctl ima_sign <PATH_TO_YOUR_CUSTOM_IMA_POLICY> -k <PATH_TO_YOUR_CUSTOM_IMA_KEY>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 加载签名的 IMA 策略:
echo <PATH_TO_YOUR_CUSTOM_SIGNED_IMA_POLICY> > /sys/kernel/security/ima/policy echo $?
# echo <PATH_TO_YOUR_CUSTOM_SIGNED_IMA_POLICY> > /sys/kernel/security/ima/policy # echo $? 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 0
表示 IMA 策略已被成功加载。如果命令返回非零值,则 IMA 策略没有成功加载。
警告不要跳过这一步。如果这样做,您的系统可能无法引导,您需要恢复您的系统。
如果 IMA 策略无法加载,请重复步骤 2 和 3 来修复问题。
将签名的 IMA 策略复制到
/etc/ima/ima-policy
中,以便在引导时自动启用它:cp --preserve=xattr <PATH_TO_YOUR_CUSTOM_IMA_POLICY> /etc/ima/ima-policy
# cp --preserve=xattr <PATH_TO_YOUR_CUSTOM_IMA_POLICY> /etc/ima/ima-policy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dracut
完整性模块,自动将自定义 IMA 代码签名密钥添加到引导时.ima
密钥环中:cp <PATH_TO_YOUR_CUSTOM_IMA_KEY> /etc/keys/ima/ cp --preserve=xattr /usr/share/ima/dracut-98-integrity.conf /etc/dracut.conf.d/98-integrity.conf dracut -f
# cp <PATH_TO_YOUR_CUSTOM_IMA_KEY> /etc/keys/ima/ # cp --preserve=xattr /usr/share/ima/dracut-98-integrity.conf /etc/dracut.conf.d/98-integrity.conf # dracut -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,
s390x
系统:zipl
# zipl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证 IMA 策略是否已成功载入:
cat /sys/kernel/security/ima/policy
# cat /sys/kernel/security/ima/policy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应包含自定义 IMA 策略中的规则。