7.5. 为断开连接的环境配置 Clair
Clair 使用一组名为 Updaters 的组件来处理从各种漏洞数据库中获取和解析数据。这些更新器默认设定为直接从互联网拉取漏洞数据,并可开箱即用。对于没有直接访问互联网的断开连接的环境中的客户来说,这会产生问题。Clair 可以支持这些环境,从而处理不同类型的更新工作流,这些工作流考虑进行网络隔离。使用 clairctl
命令行工具,任何进程都可以通过虚拟主机轻松地从互联网获取更新器数据,安全地将数据传送到隔离的主机,然后将隔离主机上的 Updater 数据导入到 Clair 本身。
这些步骤如下所示。
首先,请确保您的 Clair 配置已禁止自动 Updaters 运行。
config.yaml
matcher: disable_updaters: true
将最新的 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.6.8 --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.6.8 --config /cfg/config.yaml import-updaters /updaters/updaters.gz