排查 Linux 上Microsoft Defender for Endpoint的安装问题

适用于:

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

验证安装是否成功

安装中的错误可能会导致或可能不会由包管理器生成有意义的错误消息。 若要验证安装是否成功,请使用以下方法获取并检查安装日志:

 sudo journalctl --no-pager|grep 'microsoft-mdatp' > installation.log
 grep 'postinstall end' installation.log
 microsoft-mdatp-installer[102243]: postinstall end [2020-03-26 07:04:43OURCE +0000] 102216

具有正确安装日期和时间的上一个命令的输出指示成功。

此外,检查客户端配置,以验证产品的运行状况并检测 EICAR 文本文件。

确保具有正确的包

验证要安装的包是否与主机分发版和版本匹配。



package 分布
mdatp-rhel8。Linux.x86_64.rpm Oracle、RHEL 和 CentOS 8.x
mdatp-sles12。Linux.x86_64.rpm SUSE Linux Enterprise Server 12.x
mdatp-sles15。Linux.x86_64.rpm SUSE Linux Enterprise Server 15.x
mdatp。Linux.x86_64.rpm Oracle、RHEL 和 CentOS 7.x
mdatp。Linux.x86_64.deb Debian 和 Ubuntu 16.04、18.04 和 20.04

对于 手动部署,请确保选择了正确的发行版和版本。

由于依赖项错误,安装失败

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

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

  • mdatp RPM 包需要 glibc >= 2.17、、auditpolicycoreutilssemanageselinux-policy-targetedmde-netfilter
  • 对于 RHEL6,mdatp RPM 包需要 audit、、policycoreutilslibselinuxmde-netfilter
  • 对于 DEBIAN,mdatp 包需要 libc6 >= 2.23uuid-runtimeauditdmde-netfilter

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

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

安装失败

检查 Defender for Endpoint 服务是否正在运行:

service mdatp status
 ● mdatp.service - Microsoft Defender for Endpoint
   Loaded: loaded (/lib/systemd/system/mdatp.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-03-26 10:37:30 IST; 23h ago
 Main PID: 1966 (wdavdaemon)
    Tasks: 105 (limit: 4915)
   CGroup: /system.slice/mdatp.service
           ├─1966 /opt/microsoft/mdatp/sbin/wdavdaemon
           ├─1967 /opt/microsoft/mdatp/sbin/wdavdaemon
           └─1968 /opt/microsoft/mdatp/sbin/wdavdaemon

mdatp 服务未运行时进行故障排除的步骤

  1. 检查用户是否存在 mdatp

    id "mdatp"
    

    如果没有输出,请运行

    sudo useradd --system --no-create-home --user-group --shell /usr/sbin/nologin mdatp
    
  2. 尝试使用以下方法启用和重启服务:

    sudo service mdatp start
    
    sudo service mdatp restart
    
  3. 如果在运行上一个命令时找不到 mdatp.service,请运行:

    sudo cp /opt/microsoft/mdatp/conf/mdatp.service <systemd_path> 
    

    其中 <systemd_path> 用于 /lib/systemd/system Ubuntu 和 Debian 发行版,对于 Rhel、CentOS、Oracle 和 SLES,则为 /usr/lib/systemd/system' 。 然后重新运行步骤 2。

  4. 如果上述步骤不起作用,检查是否安装了 SELinux 并处于强制模式。 如果是这样,请尝试将其设置为宽松 (最好是) 或禁用模式。 可以通过将 参数 SELINUX 设置为 permissivedisabled 文件, /etc/selinux/config 然后重新启动来执行此操作。 有关更多详细信息,请查看 selinux 的手册页。 现在,请尝试使用步骤 2 重启 mdatp 服务。 不过,出于安全原因,尝试并重新启动后立即还原配置更改。

  5. 如果 /opt 目录是符号链接,请为 /opt/microsoft创建绑定装载。

  6. 确保守护程序具有可执行权限。

    ls -l /opt/microsoft/mdatp/sbin/wdavdaemon
    
    -rwxr-xr-x 2 root root 15502160 Mar  3 04:47 /opt/microsoft/mdatp/sbin/wdavdaemon
    

    如果守护程序没有可执行权限,请使用:

    sudo chmod 0755 /opt/microsoft/mdatp/sbin/wdavdaemon
    

    并重试运行步骤 2。

  7. 确保未使用 noexec装载包含 wdavdaemon 的文件系统。

如果 Defender for Endpoint 服务正在运行,但 EICAR 文本文件检测不起作用

  1. 使用 以下命令检查文件系统类型:

    findmnt -T <path_of_EICAR_file>
    

    此处列出了当前支持的访问活动文件系统。 不会扫描这些文件系统之外的任何文件。

命令行工具 mdatp 不起作用

  1. 如果运行命令行工具 mdatp 时出现错误 command not found,请运行以下命令:

    sudo ln -sf /opt/microsoft/mdatp/sbin/wdavdaemonclient /usr/bin/mdatp
    

    然后重试。

    如果上述步骤都没有帮助,请收集诊断日志:

    sudo mdatp diagnostic create
    
    Diagnostic file created: <path to file>
    

    包含日志的 zip 文件的路径显示为输出。 使用这些日志联系我们的客户支持。

提示

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