7.2. 从软件包部署 Keylime verifier
验证器是 Keylime 中最重要的组件。它执行系统完整性的初始和定期检查,并支持使用代理安全地引导加密密钥。验证器对其控制接口使用双向 TLS 加密。
要维护信任链,请保持运行验证器的系统的安全,并在您的控制之下。
您可以根据您的要求,在单独的系统或作为 Keylime 注册器的同一系统上安装验证器。在单独的系统上运行验证器和注册器可提供更好的性能。
要将配置文件保留在置入目录中,请使用具有两位数字前缀的文件名,例如 /etc/keylime/verifier.conf.d/00-verifier-ip.conf
。配置处理以字典顺序读取置入目录中的文件,并对每个选项设置为它读取的最后一个值。
前提条件
-
您在要安装 Keylime 组件的系统上有
root
权限和网络连接。 - 您有来自您的证书颁发机构的有效密钥和证书。
可选:您可以访问 Keylime 保存来自验证器的数据的数据库。您可以使用以下数据库管理系统:
- SQLite (默认)
- PostgreSQL
- MySQL
- MariaDB
流程
安装 Keylime 验证器:
# dnf install keylime-verifier
通过在
/etc/keylime/verifier.conf.d/
目录中创建一个新的.conf
文件来定义验证器的 IP 地址和端口,例如:/etc/keylime/verifier.conf.d/00-verifier-ip.conf
,其内容如下:[verifier] ip = <verifier_IP_address>
-
将
<verifier_IP_address>
替换为验证器的 IP 地址。或者,使用ip = *
或ip = 0.0.0.0
将验证器绑定到所有可用 IP 地址。 -
另外,您还可以使用
port
选项更改验证器的端口默认值8881
。
-
将
可选:为代理列表配置 verifier 的数据库。默认配置使用验证器的
/var/lib/keylime/cv_data.sqlite/
目录中的 SQLite 数据库。您可以通过在/etc/keylime/verifier.conf.d/
目录中创建一个新的.conf
文件来定义一个不同的数据库,例如:/etc/keylime/verifier.conf.d/00-db-url.conf
,其内容如下:[verifier] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
将
<protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
替换为数据库的 URL,如postgresql://verifier:UQ?nRNY9g7GZzN7@198.51.100.1/verifierdb
。确保您使用的凭证为 Keylime 提供了权限,来创建数据库结构。
将证书和密钥添加到验证器(verifier)中。您可以让 Keylime 生成它们,或使用现有的密钥和证书生成它们:
-
使用默认
tls_dir = generate
选项,Keylime 在/var/lib/keylime/cv_ca/
目录中为验证器、注册器和租户生成新证书。 要在配置中加载现有的密钥和证书,请在验证器配置中定义其位置。证书必须可以被运行 Keylime 服务的
keylime
用户访问。在
/etc/keylime/verifier.conf.d/
目录中创建一个新的.conf
文件,例如:/etc/keylime/verifier.conf.d/00-keys-and-certs.conf
,其内容如下:[verifier] tls_dir = /var/lib/keylime/cv_ca server_key = </path/to/server_key> server_key_password = <passphrase1> server_cert = </path/to/server_cert> trusted_client_ca = ['</path/to/ca/cert1>', '</path/to/ca/cert2>'] client_key = </path/to/client_key> client_key_password = <passphrase2> client_cert = </path/to/client_cert> trusted_server_ca = ['</path/to/ca/cert3>', '</path/to/ca/cert4>']
注意使用绝对路径定义密钥和证书位置。或者,相对路径是从
tls_dir
选项中定义的目录解析的。
-
使用默认
在防火墙中打开端口:
# firewall-cmd --add-port 8881/tcp # firewall-cmd --runtime-to-permanent
如果您使用其他端口,请将
8881
替换为.conf
文件中定义的端口号。启动验证器(verifier)服务:
# systemctl enable --now keylime_verifier
注意在默认配置中,在启动
keylime_registrar
服务前启动keylime_verifier
,因为验证器会为其他 Keylime 组件创建 CA 和证书。使用自定义证书时不需要这个顺序。
验证
检查
keylime_verifier
服务是否活跃且在运行:# systemctl status keylime_verifier ● keylime_verifier.service - The Keylime verifier Loaded: loaded (/usr/lib/systemd/system/keylime_verifier.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2022-11-09 10:10:08 EST; 1min 45s ago