7.4. 从软件包部署 Keylime registrar
注册器是包含所有代理的数据库的 Keylime 组件,它托管 TPM 供应商的公钥。在注册器的 HTTPS 服务接受可信平台模块(TPM)公钥后,它提供了一个接口来获取这些公钥以进行检查配额。
要维护信任链,请保持运行注册器的系统的安全,并在您的控制之下。
您可以根据您的要求,在单独的系统或作为 Keylime 按整齐的同一系统上安装注册器。在单独的系统上运行验证器和注册器可提供更好的性能。
要将配置文件保留在置入目录中,请使用具有两位数字前缀的文件名,例如 /etc/keylime/registrar.conf.d/00-registrar-ip.conf
。配置处理以字典顺序读取置入目录中的文件,并对每个选项设置为它读取的最后一个值。
前提条件
- 您有访问安装和运行 Keylime 验证器的系统的网络权限。更多信息请参阅 第 7.2 节 “从软件包部署 Keylime verifier”。
-
您在要安装 Keylime 组件的系统上有
root
权限和网络连接。 您可以访问 Keylime 保存来自注册中心的数据的数据库。您可以使用以下数据库管理系统:
- SQLite (默认)
- PostgreSQL
- MySQL
- MariaDB
- 您有来自您的证书颁发机构的有效密钥和证书。
流程
安装 Keylime 注册器:
# dnf install keylime-registrar
通过在
/etc/keylime/registrar.conf.d/
目录中创建一个新的.conf
文件来定义注册中心的 IP 地址和端口,例如:/etc/keylime/registrar.conf.d/00-registrar-ip.conf
,其内容如下:[registrar] ip = <registrar_IP_address>
-
将
<registrar_IP_address>
替换为注册中心的 IP 地址。或者,使用ip = *
或ip = 0.0.0.0
将注册器绑定到所有可用 IP 地址。 -
可选,使用
port
选项更改 Keylime 代理连接的端口。默认值为8890
。 -
可选,使用
tls_port
选项更改 Keylime 验证器和租户连接的 TLS 端口。默认值为8891
。
-
将
可选:为代理列表配置注册数据库。默认配置使用 registrar 的
/var/lib/keylime/reg_data.sqlite
目录中的 SQLite 数据库。您可以在/etc/keylime/registrar.conf.d/
目录中创建一个新的.conf
文件,例如:/etc/keylime/registrar.conf.d/00-db-url.conf
,其内容如下:[registrar] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
将
<protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
替换为数据库的 URL,如postgresql://registrar:EKYX-bqY2?#raXm@198.51.100.1/registrardb
。确保您使用的凭证对 Keylime 有权限,以创建数据库结构。
在注册器中添加证书和密钥:
-
您可以使用默认配置,并将密钥和证书加载到
/var/lib/keylime/reg_ca/
目录中。 或者,您可以在配置中定义密钥和证书的位置。在
/etc/keylime/registrar.conf.d/
目录中创建一个新的.conf
文件,例如:/etc/keylime/registrar.conf.d/00-keys-and-certs.conf
,其内容如下:[registrar] tls_dir = /var/lib/keylime/reg_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>']
注意使用绝对路径定义密钥和证书位置。或者,您可以在
tls_dir
选项中定义目录,并使用相对于该目录的路径。
-
您可以使用默认配置,并将密钥和证书加载到
在防火墙中打开端口:
# firewall-cmd --add-port 8890/tcp --add-port 8891/tcp # firewall-cmd --runtime-to-permanent
如果您使用其他端口,请将
8890
或8891
替换为.conf
文件中定义的端口号。启动
keylime_registrar
服务:# systemctl enable --now keylime_registrar
注意在默认配置中,在启动
keylime_registrar
服务前启动keylime_verifier
,因为验证器会为其他 Keylime 组件创建 CA 和证书。使用自定义证书时不需要这个顺序。
验证
检查
keylime_registrar
服务是否活跃且在运行:# systemctl status keylime_registrar ● keylime_registrar.service - The Keylime registrar service Loaded: loaded (/usr/lib/systemd/system/keylime_registrar.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2022-11-09 10:10:17 EST; 1min 42s ago ...