7.2. 从软件包部署 Keylime verifier


验证器是 Keylime 中最重要的组件。它执行系统完整性的初始和定期检查,并支持使用代理安全地引导加密密钥。验证器对其控制接口使用双向 TLS 加密。

重要

要维护信任链,请保持运行验证器的系统的安全,并在您的控制之下。

您可以根据您的要求,在单独的系统或作为 Keylime 注册器的同一系统上安装验证器。在单独的系统上运行验证器和注册器可提供更好的性能。

注意

要将配置文件保留在置入目录中,请使用具有两位数字前缀的文件名,例如 /etc/keylime/verifier.conf.d/00-verifier-ip.conf。配置处理以字典顺序读取置入目录中的文件,并对每个选项设置为它读取的最后一个值。

前提条件

  • 您在要安装 Keylime 组件的系统上有 root 权限和网络连接。
  • 您有来自您的证书颁发机构的有效密钥和证书。
  • 可选:您可以访问 Keylime 保存来自验证器的数据的数据库。您可以使用以下数据库管理系统:

    • SQLite (默认)
    • PostgreSQL
    • MySQL
    • MariaDB

流程

  1. 安装 Keylime 验证器:

    # dnf install keylime-verifier
  2. 通过在 /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
  3. 可选:为代理列表配置 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 提供了权限,来创建数据库结构。

  4. 将证书和密钥添加到验证器(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 选项中定义的目录解析的。

  5. 在防火墙中打开端口:

    # firewall-cmd --add-port 8881/tcp
    # firewall-cmd --runtime-to-permanent

    如果您使用其他端口,请将 8881 替换为 .conf 文件中定义的端口号。

  6. 启动验证器(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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.