脱机安全智能更新的工作原理
本文介绍如何在 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:镜像服务器上用于下载安全智能更新的进程流程图
图 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.githttps://go.microsoft.com/fwlink/?linkid=2144709
镜像服务器应支持 bash 或 PowerShell。
镜像服务器需要以下最低系统规范:
CPU 核心 RAM 可用磁盘 交换 2 核 (首选 4 核) 最小 1 GB (首选 4 GB) 2 GB 系统依赖 注意
此配置可能因所处理的请求数和每个服务器必须处理的负载而异。
配置镜像服务器
注意
- 镜像服务器的管理和所有权完全由客户拥有,因为它驻留在客户的专用环境中。
- 镜像服务器不需要安装 Defender for Endpoint。
获取脱机安全智能下载器脚本
Microsoft 在此 GitHub 存储库上托管脱机安全智能下载器脚本。
执行以下步骤获取下载器脚本:
选项 1:克隆存储库 (首选)
在 镜像 服务器上安装 git。
导航到要克隆存储库的目录。
运行以下命令:
git clone https://github.com/microsoft/mdatp-xplat.git
选项 2:下载压缩的文件
克隆存储库或下载压缩文件后的本地目录结构
克隆存储库或下载压缩文件后,本地目录结构应如下所示:
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.shPowerShell:
./xplat_offline_updates_download.ps1
注意
计划 cron 作业以执行此脚本,以定期在 镜像 服务器中下载最新的安全智能更新。
在 镜像 服务器上托管脱机安全智能更新
执行脚本后,最新的签名将下载到文件 () updates.zip 中settings.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下一部分中所述的托管配置。
配置终结点
可以通过两种方式配置脱机安全智能更新功能:
- 通过 Defender/Intune 门户中的安全设置管理:允许集中管理和配置一组设备的设置。
- 通过 托管 JSON 文件:允许手动或通过 Chef、Ansible 等第三方管理工具配置设置。
- 在 Defender 门户中,导航到 “终结点>配置管理>终结点安全策略”,然后选择“ 创建新策略”。
- 在策略创建向导中,选择“Linux”作为平台,Microsoft Defender“防病毒”作为模板。 然后选择“ 创建策略”。
- 提供策略的名称和说明,然后选择“ 下一步”。
在 “配置设置” 步骤中,可以在 “防病毒引擎 ”和“ 云提供的保护首选项 ”部分下找到脱机安全智能更新功能的配置设置。
| Setting | 说明 |
|---|---|
| 启用脱机安全智能更新 | 此设置在Linux终结点上启用脱机安全智能更新功能。 启用此设置后,以下两个设置将变为可用。 确保还启用了 自动安全智能更新 。 |
| 脱机安全智能更新回退到云 | 如果设置为 True,则终结点将尝试从Microsoft云获取签名更新,如果无法从镜像服务器获取签名更新。 |
| 脱机安全智能更新 URL 或目录 | 此设置指定托管安全智能更新的 镜像 服务器的 URL 或目录路径。 如果使用 HTTP/HTTPS 服务器) ,则 URL 的格式 http://<mirror_server_address>/linux/production/ 应为 (,或者使用网络共享或本地/远程装载点) (目录路径。 有关详细信息,请参阅在 镜像 服务器上托管脱机安全智能更新。 |
| 安全智能更新时间间隔 | 默认情况下,Linux终结点每 8 小时 (28800 秒) 从 镜像 服务器拉取签名更新。 如果要指定其他间隔,请使用此设置。 指定间隔(以秒为单位)。 |
验证配置
若要测试设置是否正确应用于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 中的字段automaticDefinitionUpdateEnabled和offline_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 : "" ...
故障排除和诊断
如果更新失败、停滞或无法启动,请执行以下步骤进行故障排除:
使用以下命令检查脱机安全智能更新的状态:
mdatp health --details definitions在 部分中查找信息
definitions_update_fail_reason。确保
offline_definition_update已启用 和offline_definition_update_verify_sig。请确保
definitions_update_source_uri等于offline_definition_url_configured。-
definitions_update_source_uri是从中下载签名的源。 -
offline_definition_url_configured是应从中下载签名的源,在托管配置文件中提到签名。
-
如果可从主机访问镜像服务器,请尝试执行连接测试以检查:
mdatp connectivity test尝试使用以下命令启动手动更新:
mdatp definitions update