通过


为Linux上的Microsoft Defender for Endpoint配置脱机安全智能更新

脱机安全智能更新的工作原理

本文介绍如何在 Linux 上的 Defender for Endpoint 中配置脱机安全智能更新。 借助此功能,可以在Linux设备上更新安全智能 (也称为) 定义签名,这些设备对 Internet 有限制或没有公开。 通过此配置,可以使用本地托管服务器(称为 镜像 服务器)连接到 Microsoft 云来下载安全智能更新。 其他Linux设备以预定义的时间间隔从镜像服务器拉取这些更新。

使用脱机安全智能更新的好处

主要的优点包括:

  • 安全团队可以控制和管理本地服务器上的签名下载频率,以及终结点从本地服务器拉取签名的频率。
  • 你有额外的保护和控制层,因为下载的签名可以在测试设备上进行测试,然后再将其传播到整个队列。
  • 需要较少的网络带宽,因为只有一台本地服务器代表整个机群从Microsoft云获取最新更新。
  • 镜像服务器可以运行 Windows、Mac 或 Linux,无需在该服务器上安装 Defender for Endpoint。
  • 你将获得最新的防病毒保护,因为签名始终随最新的兼容防病毒引擎一起下载。
  • 在每次迭代中n-1, () 的旧版签名将移动到 镜像 服务器上的备份文件夹。 如果最新更新出现问题,可以将签名版本从备份文件夹拉 n-1 取到设备。
  • 在极少数情况下,脱机更新失败时,可以配置回退选项,从Microsoft云获取联机更新。

脱机安全智能更新的工作原理

  • 你设置了一个镜像服务器,它是可由Microsoft云访问的本地 Web 或 NFS 服务器。
  • 通过使用本地服务器上的 cron 作业或任务计划程序执行脚本,从此 镜像 服务器上的 Microsoft 云下载签名。
  • Linux运行 Defender for Endpoint 的终结点按预定义的时间间隔从 镜像 服务器拉取下载的签名。
  • 从本地服务器拉取到Linux设备的签名先进行验证,然后再将其加载到防病毒引擎中。
  • 若要开始并配置更新过程,可以在Linux设备上更新托管配置 json 文件。
  • 可以在 mdatp CLI 中查看更新的状态。

用于下载安全智能更新的镜像服务器上的流程图

图 1:镜像服务器上用于下载安全智能更新的进程流程图

安全智能更新Linux终结点上的流程图

图 2:安全智能更新Linux终结点上的流程图

镜像服务器可以运行以下任何操作系统:

  • Linux (任何口味)
  • Windows (任何版本)
  • Mac (任何版本)

先决条件

  • 必须在Linux终结点上安装 Defender for Endpoint 版本101.24022.0001或更高版本。

  • Linux终结点需要连接到 镜像 服务器。

  • Linux终结点必须运行任何 Defender for Endpoint 支持的分发版。 (请参阅支持的 Linux 分发版。)

  • 镜像服务器可以是 HTTP/HTTPS 服务器,也可以是网络共享服务器,例如 NFS 服务器。

  • 镜像服务器需要有权访问以下 URL:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • 镜像服务器应支持 bash 或 PowerShell。

  • 镜像服务器需要以下最低系统规范:

    CPU 核心 RAM 可用磁盘 交换
    2 核 (首选 4 核) 最小 1 GB (首选 4 GB) 2 GB 系统依赖

    注意

    此配置可能因所处理的请求数和每个服务器必须处理的负载而异。

配置镜像服务器

注意

  • 镜像服务器的管理和所有权完全由客户拥有,因为它驻留在客户的专用环境中。
  • 镜像服务器不需要安装 Defender for Endpoint。

获取脱机安全智能下载器脚本

Microsoft 在此 GitHub 存储库上托管脱机安全智能下载器脚本。

执行以下步骤获取下载器脚本:

选项 1:克隆存储库 (首选)

  1. 在 镜像 服务器上安装 git

  2. 导航到要克隆存储库的目录。

  3. 运行以下命令:git clone https://github.com/microsoft/mdatp-xplat.git

选项 2:下载压缩的文件

  1. 下载压缩文件

  2. 将下载的文件复制到要保留脚本的文件夹。

  3. 提取压缩的文件夹。

  4. 计划任务或 cron 作业 ,以定期将存储库/下载的 zip 文件更新到最新版本。

克隆存储库或下载压缩文件后的本地目录结构

克隆存储库或下载压缩文件后,本地目录结构应如下所示:

user@vm:~/mdatp-xplat$ tree linux/definition_downloader/
linux/definition_downloader/
├── README.md
├── settings.json
├── settings.ps1
├── xplat_offline_updates_download.ps1
└── xplat_offline_updates_download.sh

0 directories, 5 files

注意

浏览 README.md 文件,详细了解如何使用脚本。

文件 settings.json 包含一些变量,用户可以配置这些变量来确定脚本执行的输出。

字段名称 说明
downloadFolder string 映射到脚本将文件下载到的位置。
downloadLinuxUpdates 布尔值 true设置为 时,脚本会将Linux特定更新下载到 downloadFolder
logFilePath string 在给定文件夹中设置诊断日志。 如果遇到任何问题,可以与 Microsoft 共享此文件,以便调试脚本。
downloadMacUpdates 布尔值 该脚本会将特定于 Mac 的更新下载到 downloadFolder
downloadPreviewUpdates 布尔值 下载可用于特定 OS 的更新的预览版本。
backupPreviousUpdates 布尔值 允许脚本在 文件夹中复制以前的更新 _back ,并将新更新下载到 downloadFolder

执行脱机安全智能下载器脚本

若要手动执行下载器脚本,请根据上一部分中的说明在 settings.json 文件中配置参数,并根据镜像服务器的 OS 使用以下命令之一:

  • Bash:

    ./xplat_offline_updates_download.sh
    
  • PowerShell:

    ./xplat_offline_updates_download.ps1
    

注意

计划 cron 作业以执行此脚本,以定期在 镜像 服务器中下载最新的安全智能更新。

在 镜像 服务器上托管脱机安全智能更新

执行脚本后,最新的签名将下载到文件 () updates.zipsettings.json配置的文件夹。

下载签名 zip 后,可以使用 镜像 服务器来托管它。 可以使用任何 HTTP/HTTPS/网络共享服务器或本地/远程装载点来托管镜像服务器。

托管后,将托管服务器的绝对路径 (复制,但不包括 arch_* 目录) 。

注意

例如,如果使用 执行 downloadFolder=/tmp/wdav-update下载器脚本,并且 HTTP 服务器 () www.example.server.com:8000 承载 /tmp/wdav-update 路径,则相应的 URI 为: www.example.server.com:8000/linux/production/ (验证目录中是否有 arch_* 目录) 。

还可以使用目录的绝对路径 (本地/远程装载点) 。 例如,如果脚本将文件下载到 目录中 /tmp/wdav-update,则相应的 URI 为:/tmp/wdav-update/linux/production

设置镜像服务器后,需要将此 URI 传播到Linux终结点,如offlineDefinitionUpdateUrl下一部分中所述的托管配置。

配置终结点

使用以下示例 mdatp_managed.json ,根据配置更新参数,并将文件复制到位置 /etc/opt/microsoft/mdatp/managed/mdatp_managed.json

{
  "cloudService": {
    "automaticDefinitionUpdateEnabled": true,
    "definitionUpdatesInterval": 1202
  },
  "antivirusEngine": {
    "offlineDefinitionUpdateUrl": "http://172.22.199.67:8000/linux/production/",
    "offlineDefinitionUpdateFallbackToCloud":false,
    "offlineDefinitionUpdate": "enabled"
  },
  "features": {
    "offlineDefinitionUpdateVerifySig": "enabled"
  }
}
字段名称 评论
automaticDefinitionUpdateEnabled True/False 确定 Defender for Endpoint 尝试自动执行更新的行为,是否分别处于打开或关闭状态。
definitionUpdatesInterval 数值 每次自动更新签名的间隔时间 (秒) 。
offlineDefinitionUpdateUrl String 作为镜像服务器设置的一部分生成的 URL 值。 这可以是远程服务器 URL 或目录 (本地/远程装载点) 。 有关如何指定此路径的信息,请参阅上一部分。
offlineDefinitionUpdate enabled/disabled enabled设置为 时,将启用脱机安全智能更新功能,反之亦然。
offlineDefinitionUpdateFallbackToCloud True/False 在脱机镜像服务器无法为更新请求提供服务时确定 Defender for Endpoint 安全智能更新方法。 如果设置为 true,则脱机安全智能更新失败时,将通过Microsoft云重试更新;否则,反之亦然。
offlineDefinitionUpdateVerifySig enabled/disabled 如果设置为 enabled,则会在终结点上验证下载的定义;否则,反之亦然。

注意

目前,只能通过托管 json 在 Linux 终结点上配置脱机安全智能更新。 与 Microsoft Defender 门户中的 Defender for Endpoint 安全设置管理集成已在路线图中,但尚不可用。

验证配置

若要测试设置是否正确应用于Linux终结点,请运行以下命令:

mdatp health --details definitions

示例输出类似于以下代码片段:

user@vm:~$ mdatp health --details definitions
automatic_definition_update_enabled         : true [managed]
definitions_updated                         : Mar 14, 2024 at 12:13:17 PM
definitions_updated_minutes_ago             : 2
definitions_version                         : "1.407.417.0"
definitions_status                          : "up_to_date"
definitions_update_source_uri               : "https://go.microsoft.com/fwlink/?linkid=2144709"
definitions_update_fail_reason              : ""
offline_definition_url_configured           : "http://172.XX.XXX.XX:8000/linux/production/" [managed]
offline_definition_update                   : "enabled" [managed]
offline_definition_update_verify_sig        : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]

触发脱机安全智能更新

自动更新

  • 如果 防病毒引擎的强制级别 设置为 real_time,并且托管 json 中的字段 automaticDefinitionUpdateEnabledoffline_definition_update 设置为 true,则定期自动触发脱机安全智能更新。
  • 默认情况下,此定期间隔为 8 小时。 但是,可以通过在托管 json 中设置 definitionUpdatesInterval 参数来配置它。

手动更新

  • 若要手动触发脱机安全智能更新以从 Linux 终结点上的 镜像 服务器下载签名,请运行以下命令:

    mdatp definitions update
    

检查更新状态

  • 使用自动或手动方法触发脱机安全智能更新后,请运行 命令验证更新是否成功: mdatp health --details --definitions

  • 验证以下字段:

    user@vm:~$ mdatp health --details definitions
    ...
    definitions_status                          : "up_to_date"
    ...
    definitions_update_fail_reason              : ""
    ...
    

故障排除和诊断

如果更新失败、停滞或无法启动,请执行以下步骤进行故障排除:

  1. 使用以下命令检查脱机安全智能更新的状态:

    mdatp health --details definitions
    

    在 部分中查找信息 definitions_update_fail_reason

  2. 确保 offline_definition_update 已启用 和 offline_definition_update_verify_sig

  3. 请确保 definitions_update_source_uri 等于 offline_definition_url_configured

    • definitions_update_source_uri 是从中下载签名的源。
    • offline_definition_url_configured 是应从中下载签名的源,在托管配置文件中提到签名。
  4. 如果可从主机访问镜像服务器,请尝试执行连接测试以检查:

    mdatp connectivity test
    
  5. 尝试使用以下命令启动手动更新:

    mdatp definitions update
    

另请参阅