在 Linux 上手动部署Microsoft Defender for Endpoint

希望体验 Defender for Endpoint? 注册免费试用版

提示

正在查找有关在 Linux 上部署Microsoft Defender for Endpoint的高级指南? 请参阅 Linux 上的 Defender for Endpoint 上的高级部署指南

本文介绍如何在 Linux 上手动部署Microsoft Defender for Endpoint。 成功的部署需要完成以下所有任务:

先决条件和系统要求

在开始之前,请参阅 Linux 上的Microsoft Defender for Endpoint,了解当前软件版本的先决条件和系统要求。

警告

在产品安装后,将操作系统升级到新的主版本需要重新安装产品。 需要 卸载 Linux 上的现有 Defender for Endpoint,升级操作系统,然后按照以下步骤在 Linux 上重新配置 Defender for Endpoint。

配置 Linux 软件存储库

Linux 上的 Defender for Endpoint 可以从以下通道之一进行部署, (表示为 [通道]) : insiders-fastinsiders-slowprod。 其中每个通道都对应于 Linux 软件存储库。 本文中的说明介绍如何将设备配置为使用这些存储库之一。

通道的选择决定了提供给设备的更新的类型和频率。 预览体验成员中的设备是第一个接收更新和新功能的设备,然后是预览体验成员慢,最后是 prod

为了预览新功能并提供早期反馈,建议在企业中配置一些设备,以使用 预览体验成员快速预览体验成员慢速

警告

在初始安装后切换通道需要重新安装产品。 若要切换产品通道:卸载现有包,重新配置设备以使用新通道,然后按照本文档中的步骤从新位置安装包。

安装程序脚本

当我们讨论手动安装时,也可以使用公共 GitHub 存储库中提供的自动安装程序 bash 脚本。 该脚本标识分发和版本,简化正确存储库的选择,设置设备以拉取最新包,并合并产品安装和载入步骤。

> ./mde_installer.sh --help
usage: basename ./mde_installer.sh [OPTIONS]
Options:
-c|--channel      specify the channel from which you want to install. Default: insiders-fast
-i|--install      install the product
-r|--remove       remove the product
-u|--upgrade      upgrade the existing product
-o|--onboard      onboard/offboard the product with <onboarding_script>
-p|--passive-mode set EPP to passive mode
-t|--tag          set a tag by declaring <name> and <value>. ex: -t GROUP Coders
-m|--min_req      enforce minimum requirements
-w|--clean        remove repo from package manager for a specific channel
-v|--version      print out script version
-h|--help         display help

在此处阅读详细信息。

RHEL 和变体 (CentOS、Fedora、Oracle Linux、Amazon Linux 2、Rocky 和 Alma)

SLES 和变体

注意

分发版和版本,并在 下 https://packages.microsoft.com/config/sles/标识最接近的条目 (主条目,然后按次要) 。

在以下命令中,将 [发行版][版本] 替换为已识别的信息:

sudo zypper addrepo -c -f -n microsoft-[channel] https://packages.microsoft.com/config/[distro]/[version]/[channel].repo

提示

使用 SPident 命令标识系统相关信息,包括版本 [版本]

例如,如果运行 SLES 12 并希望从prod通道在 Linux 上部署Microsoft Defender for Endpoint:

sudo zypper addrepo -c -f -n microsoft-prod https://packages.microsoft.com/config/sles/12/prod.repo
  • 安装 Microsoft GPG 公钥:

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    

Ubuntu 和 Debian 系统

  • 如果尚未安装 curl ,请安装:

    sudo apt-get install curl
    
  • 如果尚未安装 libplist-utils ,请安装:

    sudo apt-get install libplist-utils
    

    注意

    分发版和版本,并在 下 https://packages.microsoft.com/config/[distro]/标识最接近的条目 (主条目,然后按次要) 。

    在以下命令中,将 [发行版][版本] 替换为已识别的信息:

    curl -o microsoft.list https://packages.microsoft.com/config/[distro]/[version]/[channel].list
    

    提示

    使用 hostnamectl 命令标识系统相关信息,包括版本 [版本]

    例如,如果运行的是 Ubuntu 18.04,并希望从prod通道在 Linux 上部署Microsoft Defender for Endpoint:

    curl -o microsoft.list https://packages.microsoft.com/config/ubuntu/18.04/prod.list
    
  • 安装存储库配置:

    sudo mv ./microsoft.list /etc/apt/sources.list.d/microsoft-[channel].list
    

    例如,如果选择频道 prod

    sudo mv ./microsoft.list /etc/apt/sources.list.d/microsoft-prod.list
    
  • 安装包( gpg 如果尚未安装):

    sudo apt-get install gpg
    

    如果 gpg 不可用,请安装 gnupg

    sudo apt-get install gnupg
    
  • 安装 Microsoft GPG 公钥:

    • 对于 Debian 11 及更早版本,请运行以下命令。
    curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
    

对于 Debian 12 及更高版本,请运行以下命令。

curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/microsoft-prod.gpg > /dev/null
  • 安装 HTTPS 驱动程序(如果尚未安装):

    sudo apt-get install apt-transport-https
    
  • 更新存储库元数据:

    sudo apt-get update
    

水手

  • 如果尚未安装 dnf-plugins-core ,请安装:

    sudo dnf install dnf-plugins-core
    
  • 配置和启用所需的存储库

    注意

    在 Mariner 上,预览体验成员快速频道不可用。

    如果要从 prod 通道在 Linux 上部署 Defender for Endpoint。 使用以下命令

    sudo dnf install mariner-repos-extras
    sudo dnf config-manager --enable mariner-official-extras
    

    或者,如果要在所选设备上探索新功能,可能需要将 Linux 上的Microsoft Defender for Endpoint部署到预览体验成员慢速频道。 使用以下命令:

    sudo dnf install mariner-repos-extras-preview
    sudo dnf config-manager --enable mariner-official-extras-preview
    

应用程序安装

RHEL 和变体 (CentOS、Fedora、Oracle Linux、Amazon Linux 2、Rocky 和 Alma)

sudo yum install mdatp

注意

如果在设备上配置了多个Microsoft存储库,则可以具体说明要从哪个存储库安装包。 以下示例演示如何在此设备上配置存储库通道时 production 从通道 insiders-fast 安装包。 如果在设备上使用多个Microsoft产品,则可能会出现这种情况。 根据服务器的分发和版本,存储库别名可能与以下示例中的别名不同。

# list all repositories
yum repolist
...
packages-microsoft-com-prod               packages-microsoft-com-prod        316
packages-microsoft-com-prod-insiders-fast packages-microsoft-com-prod-ins      2
...
# install the package from the production repository
sudo yum --enablerepo=packages-microsoft-com-prod install mdatp

SLES 和变体

sudo zypper install mdatp

注意

如果在设备上配置了多个Microsoft存储库,则可以具体说明要从哪个存储库安装包。 以下示例演示如何在此设备上配置存储库通道时 production 从通道 insiders-fast 安装包。 如果在设备上使用多个Microsoft产品,则可能会出现这种情况。

zypper repos
...
#  | Alias | Name | ...
XX | packages-microsoft-com-insiders-fast | microsoft-insiders-fast | ...
XX | packages-microsoft-com-prod | microsoft-prod | ...
...
sudo zypper install packages-microsoft-com-prod:mdatp

Ubuntu 和 Debian 系统

sudo apt-get install mdatp

注意

如果在设备上配置了多个Microsoft存储库,则可以具体说明要从哪个存储库安装包。 以下示例演示如何在此设备上配置存储库通道时 production 从通道 insiders-fast 安装包。 如果在设备上使用多个Microsoft产品,则可能会出现这种情况。

cat /etc/apt/sources.list.d/*
deb [arch=arm64,armhf,amd64] https://packages.microsoft.com/config/ubuntu/18.04/prod insiders-fast main
deb [arch=amd64] https://packages.microsoft.com/config/ubuntu/18.04/prod bionic main
sudo apt -t bionic install mdatp

注意

在 Linux 上安装或更新Microsoft Defender for Endpoint后不需要重新启动,除非在不可变模式下运行 auditD。

水手

sudo dnf install mdatp

注意

如果在设备上配置了多个Microsoft存储库,则可以具体说明要从哪个存储库安装包。 以下示例演示如何在此设备上配置存储库通道时 production 从通道 insiders-slow 安装包。 如果在设备上使用多个Microsoft产品,则可能会出现这种情况。

sudo dnf config-manager --disable mariner-official-extras-preview
sudo dnf config-manager --enable mariner-official-extras

下载载入包

从 Microsoft Defender 门户下载载入包。

警告

不支持重新打包 Defender for Endpoint 安装包。 这样做可能会对产品的完整性产生负面影响,并导致不良结果,包括但不限于触发篡改警报和无法应用的更新。

重要

如果错过此步骤,执行的任何命令都将显示一条警告消息,指示产品未授权。 此外, mdatp health 命令返回值 false

  1. 在Microsoft Defender门户中,转到“设置>终结点”“>设备管理>”“载入”。

  2. 在第一个下拉菜单中,选择“ Linux 服务器 ”作为操作系统。 在第二个下拉菜单中,选择“ 本地脚本 ”作为部署方法。

  3. 选择“下载载入包”。 将文件另存为 WindowsDefenderATPOnboardingPackage.zip。

    在 Microsoft Defender 门户中下载载入包

  4. 在命令提示符下,验证是否具有 文件,并提取存档的内容:

    ls -l
    
    total 8
    -rw-r--r-- 1 test  staff  5752 Feb 18 11:22 WindowsDefenderATPOnboardingPackage.zip
    
    unzip WindowsDefenderATPOnboardingPackage.zip
    
    Archive:  WindowsDefenderATPOnboardingPackage.zip
    inflating: MicrosoftDefenderATPOnboardingLinuxServer.py
    

客户端配置

  1. 将 MicrosoftDefenderATPOnboardingLinuxServer.py 复制到目标设备。

    注意

    最初,客户端设备不与组织关联, 且 orgId 属性为空。

    mdatp health --field org_id
    
  2. 运行 MicrosoftDefenderATPOnboardingLinuxServer.py。

    注意

    若要运行此命令,必须在 python 设备上安装或 python3 安装,具体取决于发行版和版本。 如果需要,请参阅 在 Linux 上安装 Python 的分步说明

    注意

    若要载入以前已卸载的设备,必须删除位于 /etc/opt/microsoft/mdatp 的 mdatp_offboard.json 文件。

    如果运行的是 RHEL 8.x 或 Ubuntu 20.04 或更高版本,则需要使用 python3

    sudo python3 MicrosoftDefenderATPOnboardingLinuxServer.py
    

    对于其余发行版和版本,需要使用 python

    sudo python MicrosoftDefenderATPOnboardingLinuxServer.py
    
  3. 验证设备现在是否与你的组织关联,并报告有效的组织标识符:

    mdatp health --field org_id
    
  4. 运行以下命令,检查产品的运行状况。 返回值 表示 true 产品按预期运行:

    mdatp health --field healthy
    

    重要

    产品首次启动时,会下载最新的反恶意软件定义。 这可能需要长达几分钟的时间,具体取决于网络连接。 在此期间,上述命令返回值 false。 可以使用以下命令检查定义更新的状态:

    mdatp health --field definitions_status
    

    请注意,完成初始安装后,可能还需要配置代理。 请参阅 在 Linux 上配置 Defender for Endpoint 以获取静态代理发现:安装后配置

  5. 运行 AV 检测测试,验证设备是否已正确载入并向服务报告。 在新加入的设备上执行以下步骤:

    • 确保启用实时保护, (运行以下命令) 的结果 true 表示:

      mdatp health --field real_time_protection_enabled
      

      如果未启用,请执行以下命令:

      mdatp config real-time-protection --value enabled
      
    • 打开终端窗口并执行以下命令来运行检测测试:

      curl -o /tmp/eicar.com.txt https://secure.eicar.org/eicar.com.txt
      
    • 可以使用以下命令之一对 zip 文件运行更多检测测试:

      curl -o /tmp/eicar_com.zip https://secure.eicar.org/eicar_com.zip
      curl -o /tmp/eicarcom2.zip https://secure.eicar.org/eicarcom2.zip
      
    • 这些文件应由 Linux 上的 Defender for Endpoint 隔离。 使用以下命令列出所有检测到的威胁:

      mdatp threat list
      
  6. 运行 EDR 检测测试并模拟检测,验证设备是否已正确载入并向服务报告。 在新加入的设备上执行以下步骤:

  • 验证载入的 Linux 服务器是否显示在Microsoft Defender XDR中。 如果这是计算机的首次载入,则最长可能需要 20 分钟才能出现。

    • 脚本文件 下载并解压缩到载入的 Linux 服务器,并运行以下命令: ./mde_linux_edr_diy.sh

    • 几分钟后,应在Microsoft Defender XDR中引发检测。

    • 查看警报详细信息、计算机时间线,并执行典型的调查步骤。

Microsoft Defender for Endpoint包外部包依赖项

mdatp 包存在以下外部包依赖项:

  • mdatp RPM 包需要 glibc >= 2.17、、auditsemanagepolicycoreutilsselinux-policy-targetedmde-netfilter
  • 对于 DEBIAN,mdatp 包需要 libc6 >= 2.23uuid-runtimeauditdmde-netfilter
  • 对于 Mariner,mdatp 包需要 attr、、auditdiffutilslibacllibattrlibselinux-utilsselinux-policy、、 policycoreutilsmde-netfilter

mde-netfilter 包还具有以下包依赖项:

  • 对于 DEBIAN,mde-netfilter 包需要 libnetfilter-queue1libglib2.0-0
  • 对于 RPM,mde-netfilter 包需要 libmnllibnfnetlinklibnetfilter_queueglib2
  • 对于 Mariner,mde-netfilter 包需要 libnfnetlinklibnetfilter_queue

如果Microsoft Defender for Endpoint安装由于缺少依赖项错误而失败,可以手动下载先决条件依赖项。

日志安装问题

有关如何在发生错误时查找安装程序创建的自动生成的日志的详细信息,请参阅 日志安装问题

如何从 Insiders-Fast 迁移到生产渠道

  1. Insiders-Fast channel卸载 Linux 上的 Defender for Endpoint 版本。

    sudo yum remove mdatp
    
  2. 禁用 Linux Insiders-Fast 存储库上的 Defender for Endpoint

    sudo yum repolist
    

    注意

    输出应显示 packages-microsoft-com-fast-prod

    sudo yum-config-manager --disable packages-microsoft-com-fast-prod
    
  3. 使用生产通道在 Linux 上重新部署Microsoft Defender for Endpoint。

卸载

有关如何从客户端设备中删除 Linux 上的 Defender for Endpoint 的详细信息,请参阅 卸载

另请参阅

提示

想要了解更多信息? Engage技术社区中的Microsoft安全社区:Microsoft Defender for Endpoint技术社区