Kaspersky Endpoint Security for Linux

KESL 容器

Kaspersky Endpoint Security 分发包包含用于创建容器应用程序(“KESL 容器”)的文件,容器应用程序可嵌入到外部系统,从扫描镜像存储库中的容器镜像。

部署激活配置 KESL 容器后,它提供以下功能:

  • 扫描位于存储库中的容器镜像。
  • 将不包含受感染对象的已扫描镜像传输到受信任的存储库。

使用 REST API 执行与 KESL 容器的交互。还可以使用 Kaspersky Security Center 配置 KESL 容器设置

不能使用命令行管理 KESL 容器。

在本帮助部分中

部署和激活 KESL 容器

配置 KESL 容器

使用 REST API

页面顶部
[Topic 213821]

部署和激活 KESL 容器

分发包描述

分发包包含以下文件:

  • docker-service-<版本>.tgz – 包含创建镜像所需文件的压缩文件
  • kesl-<版本>.rpm – Kaspersky Endpoint Security 安装包
  • klnagent.rpm – Kaspersky Security Center 网络代理安装包

docker-service-<版本>.tgz 压缩文件包含以下文件:

  • kesl-service – 容器应用程序文件的目录。
  • Dockerfile – 用于构建 18.06 以下版本的 docker 镜像的文件。
  • Dockerfile.1809 – 用于构建 18.05 之后版本的 docker 镜像的文件。
  • build.sh.example – 用于构建镜像的脚本示例。
  • run.sh.example – 用于启动 KESL 容器的脚本示例。
  • kesl-service.config.example – 容器应用程序配置文件的示例。
  • klnagent.conf.example – 用于连接到 Kaspersky Security Center 的配置文件示例。
  • readme.md – 快速参考。

KESL 容器部署和激活

要准备 KESL 容器以供使用:

  1. 解压缩文件 tar -xvf docker-service-<版本>.tgz。
  2. 如果要使用 Kaspersky Security Center 配置 KESL 容器设置,请执行以下操作:
    1. 在 klnagent.conf.example 文件中,指定网络代理变量的值。有关详细信息,请参阅 Kaspersky Security Center 文档(“在静默模式下安装 Linux 网络代理(带应答文件)”部分)。
    2. 将 klnagent.conf.example 复制为 kesl-service/klnagent.conf。
  3. 使用 build.sh.example 安装脚本构建 KESL 容器 Docker 镜像:
    1. 如果使用代理服务器,请为 COMMON_AGRS 变量指定所需的值。
    2. 如有必要,将目标 kesl-service 镜像的名称更改为所需名称。
    3. 将 build.sh.example 复制为 build.sh 并为其分配一个可执行文件属性。
    4. 运行 build.sh。
  4. 通过执行 docker images -a 命令确保构建成功完成。

    将显示以下命令执行结果:

    REPOSITORY TAG IMAGE ID CREATED SIZE

    kesl-service latest <十六进制> <创建时间> <大小>

  5. 通过以下方式之一激活 KESL 容器:
  6. 配置 KESL 容器
  7. 使用以下命令启动 KESL 容器:docker run --privileged --init -p < <KESL 容器端口>:<设备端口> \

    -e <变量_1> -e <变量_2> ... -e <变量_n> \

    -v <挂载点_1> -v <挂载点_2> ... -v <挂载点_n> \

    <镜像名称>

    其中:

    <KESL 容器端口> 是 KESL 容器的端口,必须可以从 KESL 容器外部的网络访问。

    <设备端口> – 是安装了 KESL 容器的设备的端口。

    您可以在文件 run.sh.example 中看到 run 命令的示例。

  8. 如果要使用环境变量激活 KESL 容器,请执行以下操作之一:
    • 如果要指定激活码,请在启动 KESL 容器时添加以下设置(参见步骤 7):KRAS4D_ACTIVATION = '<激活码>'

      docker run ... -e KRAS4D_ACTIVATION='<激活码>'

    • 如果要应用密钥文件,请在启动 KESL 容器时添加以下选项(参见步骤 7):KRAS4D_ACTIVATION = '<密钥文件>' and KRAS4D_KEYPATH=/root/kesl-service/keys

      docker run ... -e KRAS4D_ACTIVATION='<密钥文件>' -e KRAS4D_KEYPATH=/root/kesl-service/keys -v <包含密钥的目录的路径>:/root/kesl-service/keys

页面顶部
[Topic 213822]

配置 KESL 容器

KESL 容器设置以多种方式初始化:

  • 默认值(除非另外指定)。
  • 配置文件。在这种情况下,配置文件中的值​​的优先级高于默认值。
  • 这些值可以在启动时作为环境变量传递给 KESL 容器。环境变量的优先级高于配置文件中的设置。
  • 扫描请求主体中。请求主体中的设置具有最高优先级,但它们仅在单个请求中有效。

本节内容

KESL 容器设置

环境变量

配置文件

可用挂载点

页面顶部
[Topic 213823]

KESL 容器设置

下表介绍了 KESL 容器设置及其默认值​​。

KESL 容器设置

设置说明

可用值

默认值

用于监听 REST API 的端口

 

8085

事件严重性级别

debug

info

warning

error

critical

noset

noset

授权密钥

如果指定了 KRAS4D_XAPIKEY 设置,则会验证每个请求是否存在 x-api-key 标头并且其内容是否与 KRAS4D_XAPIKEY 设置的值匹配。如果不满足这些条件,则拒绝该请求。如果缺少此设置,则不执行验证。

 

激活码或密钥文件

要使用激活码激活 KESL 容器,请在运行 KESL 容器时在配置文件中指定激活码或在环境变量中传递激活码:

docker run ... -e KRAS4D_ACTIVATION='<激活码>'

要使用密钥文件激活 KESL 容器,请在运行 KESL 容器时在配置文件中指定密钥文件或在环境变量中传递密钥文件:

docker run ... -e KRAS4D_ACTIVATION='<密钥文件>' -e KRAS4D_KEYPATH=/root/kesl-service/keys -v <包含密钥的目录的路径>:/root/kesl-service/keys

要使用密钥文件激活 KESL 容器,需要 /root/kesl-service/keys 挂载点。

 

其他扫描设置

可选的 KRAS4D_SCANOPTIONS 设置允许您配置“容器扫描”任务的设置

docker run ... -e KRAS4D_SCANOPTIONS='<设置>'

其中 <设置>容器扫描任务的设置

 

其他更新设置

可选的 KRAS4D_UPDATEOPTIONS 设置允许您配置“更新”任务的设置

docker run ... -e KRAS4D_UPDATEOPTIONS='<设置>'

其中<设置>更新任务设置 SourceTypeApplicationUpdateMode 以及 CustomSources.item_# 部分中的设置。

 

在 KESL 容器启动时更新应用程序数据库

默认情况下,启动 KESL 容器时,应用程序数据库会下载到 /var/opt/kaspersky/kesl/common/updates 目录。

为了实现多个 KESL 容器与一个应用数据库实例的联合操作,并加快 KESL 容器的启动速度,建议通过挂载方式将该目录移至安装了 KESL 容器的设备:

docker run ... -v <数据库目录的路径>:/var/opt/kaspersky/kesl/common/updates

True

如果目标存储库中已存在镜像,则不处理该镜像。

 

False

等待应用程序命令运行的最长时间(秒)

 

600

等待应用程序数据库更新任务运行的最长时间(秒)

 

600

设置配置文件的名称。

 

kesl-service.config

页面顶部
[Topic 234815]

环境变量

以下环境变量可用于配置 KESL 容器:

  • KRAS4D_PORT – 用于监听 REST API 的端口。
  • KRAS4D_LOGLEVEL – 事件严重性级别。
  • KRAS4D_XAPIKEY – 请求授权密钥。
  • KRAS4D_ACTIVATION – 激活码或密钥文件名。
  • KRAS4D_SCANOPTIONS – 其他扫描设置。
  • KRAS4D_UPDATEOPTIONS – 其他更新设置。
  • KRAS4D_FORCEUPDATE – 在 KESL 容器启动时更新应用程序数据库。
  • KRAS4D_SKIPIMAGEIFEXISTS – 如果目标存储库中已存在镜像,则不处理该镜像。
  • KRAS4D_GENERALTIMEOUT – 等待应用程序命令运行的最长时间。
  • KRAS4D_UPDTASKTIMEOUT – 等待应用程序数据库更新任务运行的最长时间。
  • KRAS4D_CFGNAME:KESL 容器配置文件的名称。
页面顶部
[Topic 234816]

配置文件

KESL 容器配置文件采用 yaml 格式。要从文件中读取设置,请在安装了 KESL 容器的设备上挂载 /root/kesl-service/config/ 路径,如果配置文件的名称与默认名称不同,请指定配置文件的名称。因此,您可以为每组 KESL 容器指定单独的配置文件。

示例:启动 KESL 容器

docker run ... \

-e KRAS4D_CFGNAME='unique_file_name' \

-v <HOST_PATH>:/root/kesl-service/config \

kesl-service

下表显示了配置文件设置和相应的环境变量

设置与环境变量之间的对应关系

配置文件设置

环境变量

Common 部分

port: <监听端口>

# KRAS4D_PORT=8085

sqlpath: <包含扫描结果的数据库文件的完整路径>

# KRAS4D_SQLPATH

certdir: <包含注册表证书的目录的路径>

# KRAS4D_CERTDIR

keypath: <包含授权许可密钥的目录的路径>

# KRAS4D_KEYPATH

tmppath: <临时目录的完整路径>

# KRAS4D_TMPPATH

logpath: <事件日志的完整路径>

# KRAS4D_LOGPATH

loglevel: [noset|debug|info|warning|error|critical]

# KRAS4D_LOGLEVEL

Control 部分

xapikey: <请求授权密钥>

# KRAS4D_XAPIKEY=None

forceupdate: <容器启动时强制数据库更新 [True|False]>

# KRAS4D_FORCEUPDATE

activation: </root/kesl-service/config/ 中的激活码或密钥文件名>

# KRAS4D_ACTIVATION

detectaction: [delete|skip]

# KRAS4D_DETECTACTION

scanoptions: <扫描设置 [ScanArchived=yes ScanSfxArchived=yes ...]>

# KRAS4D_SCANOPTIONS

skipimageifexist: <如果要将扫描的镜像复制到的服务器上已存在该镜像,则不扫描该镜像>

# KRAS4D_SKIPIMAGEIFEXIST

generaltimeout: <等待应用程序命令运行的最长时间>

# KRAS4D_GENERALTIMEOUT

updtasktimeout: <等待应用程序数据库更新任务运行的最长时间>

# KRAS4D_UPDTASKTIMEOUT

Repositories 部分

<server>:<port>:请求验证时需要授权的镜像注册表的地址和端口。

 

Credentials 子部分

user: 镜像注册表中授权的用户名

 

pass: 镜像注册表中授权的密码

 

配置文件示例

配置文件示例

页面顶部
[Topic 234817]

可用挂载点

以下挂载点可用于使用 KESL 容器:

  • /root/kesl-service/data/scans.sqlite – 包含扫描结果的数据库文件的路径。
  • /var/opt/kaspersky/kesl/common/updates – 应用程序数据库的路径。
  • /root/kesl-service/certificates – 包含存储库证书的目录的路径。
  • /root/kesl-service/keys – 包含授权许可密钥的目录的路径。
  • /var/log/kaspersky/ – 包含事件日志的目录的路径。
  • /root/kesl-service/config/ – 配置文件的路径。
  • /var/lib/containers/vfs-storage – Podman 实用程序正常工作所需的挂载点。
页面顶部
[Topic 213865]

使用 REST API

使用 REST API 实现与 KESL 容器的交互。

使用 REST API,可以提交以下请求:

页面顶部
[Topic 214323]