7.7. 为断开连接的环境配置 Clair


Clair 使用一组名为 Updaters 的组件来处理从各种漏洞数据库中获取和解析数据。这些更新器默认设定为直接从互联网拉取漏洞数据,并可开箱即用。对于没有直接访问互联网的断开连接的环境中的客户来说,这会产生问题。Clair 可以支持这些环境,从而处理不同类型的更新工作流,这些工作流考虑进行网络隔离。使用 clairctl 命令行工具,任何进程都可以通过虚拟主机轻松地从互联网获取更新器数据,安全地将数据传送到隔离的主机,然后将隔离主机上的 Updater 数据导入到 Clair 本身。

这些步骤如下所示。

  1. 首先,请确保您的 Clair 配置已禁止自动 Updaters 运行。

    config.yaml

    matcher:
      disable_updaters: true

  2. 将最新的 Updater 数据导出到本地存档。这要求 clairctl 工具可以直接作为二进制文件运行,或者通过 Clair 容器镜像运行。假设 Clair 配置在 /etc/clairv4/config/config.yaml 中,以通过容器镜像运行:

    $ podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml export-updaters  /updaters/updaters.gz

    请注意,您需要明确引用 Clair 配置。这会在 /etc/clairv4/updaters/updaters.gz 中创建 Updater 归档。如果要确保创建存档而没有源数据库的错误,您可以向 clairctl 提供 --strict 标志。该存档文件应复制到运行 Clair 的断开连接的主机中被访问的卷。从断开连接的主机中,使用相同的步骤将存档导入到 Clair。

    $ podman run -it --rm -v /etc/clairv4/config:/cfg:Z -v /path/to/output/directory:/updaters:Z --entrypoint /bin/clairctl registry.redhat.io/quay/clair-rhel8:v3.7.13 --config /cfg/config.yaml import-updaters /updaters/updaters.gz

7.7.1. 将存储库映射到常见产品枚举(CPE)信息

Clair 的 RHEL 扫描程序依赖于通用产品枚举(CPE)文件,将 RPM 软件包正确映射到对应的安全数据,从而生成匹配的结果。必须存在此文件,或者必须允许访问该文件,以便扫描程序正确处理 RPM。如果不存在该文件,则不会扫描容器镜像中安装的 RPM。

红帽发布 JSON 映射文件,地址为 https://www.redhat.com/security/data/metrics/repository-to-cpe.json

除了将 CVE 信息上传到断开连接的 Clair 的数据库外,还必须在本地提供映射文件:

  • 对于独立 Quay 和 Clair 部署,映射文件必须加载到 Clair pod 中。
  • 对于基于 Operator 的部署,您必须将 Clair 组件 设置为非受管状态。然后,手动部署 Clair,将配置设置为加载映射文件的本地副本。

使用 Clair 配置中的 repo2cpe_mapping_file 字段指定文件:

indexer:
  scanner:
    repo:
      rhel-repository-scanner:
        repo2cpe_mapping_file: /path/to/repository-to-cpe.json

红帽提供了更多信息,请参阅 如何准确地匹配 OVAL 安全数据到已安装的 RPM

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.