24.6. 签名自定义构建的软件包
为保持系统的完整性,在部署前务必要为自定义构建的软件包签名。使用 rpm-sign
工具和 IMA 代码签名密钥,您可以签署您的自定义构建软件包。
先决条件
- 您在系统中具有 root 权限。
- 您有一个要签名的自定义构建软件包。
- 您有 IMA 代码签名密钥。
-
已安装
rpm-sign
工具。 - 创建自定义 IMA 密钥。请参阅使用 OpenSSL 创建自定义 IMA 密钥。
流程
使用
rpmsign -signfiles
为软件包文件签名:rpmsign --define "gpg_name _<GPG_KEY_NAME>" --addsign --signfiles --fskpass --fskpath=<PATH_TO_YOUR_PRIVATE_IMA_CODE_SIGNING_KEY> <PATH_TO_YOUR_RPM>
# rpmsign --define "gpg_name _<GPG_KEY_NAME>" --addsign --signfiles --fskpass --fskpath=<PATH_TO_YOUR_PRIVATE_IMA_CODE_SIGNING_KEY> <PATH_TO_YOUR_RPM>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --define "gpg_name _<GPG_KEY_NAME>"
- GPG 密钥为软件包签名,IMA 代码签名密钥签署软件包中的每个文件。
--addsign
- 在软件包中添加签名。
--signfiles
- 对软件包中的每个文件进行签名。
--fskpass
- 避免重复输入 IMA 代码签名密钥的密码。
--fskpath
- 指定 IMA 代码签名密钥的路径。
验证
要验证软件包是否已签名,您可以使用以下命令:
rpm -q --queryformat "[%{FILENAMES} %{FILESIGNATURES}\n] <PATH_TO_YOUR_RPM>"
# rpm -q --queryformat "[%{FILENAMES} %{FILESIGNATURES}\n] <PATH_TO_YOUR_RPM>" /usr/bin/YOUR_BIN 030204... /usr/lib/YOUR_LIB.so 030204... ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow