使用 Ansible 在 Linux 上部署Microsoft Defender for Endpoint

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

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

重要

本文包含有关第三方工具的信息。 这样做是为了帮助完成集成方案,但是,Microsoft不提供对第三方工具的故障排除支持。
请联系第三方供应商获取支持。

先决条件和系统要求

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

此外,对于 Ansible 部署,需要熟悉 Ansible 管理任务,配置 Ansible,并知道如何部署 playbook 和任务。 Ansible 有许多方法可以完成相同的任务。 这些说明假定支持 Ansible 模块(例如 aptunarchive )的可用性,以帮助部署包。 你的组织可能使用不同的工作流。 有关详细信息,请参阅 Ansible 文档

  • Ansible 需要安装在至少一台计算机上, (Ansible 将此称为控制节点) 。

  • 必须为控制节点与所有托管节点之间的管理员帐户配置 SSH, (设备上安装了 Defender for Endpoint) ,建议使用公钥身份验证进行配置。

  • 必须在所有托管节点上安装以下软件:

    • 卷曲
    • python-apt (如果使用 apt 作为包管理器)
  • 必须在 或相关文件中以以下格式 /etc/ansible/hosts 列出所有托管节点:

    [servers]
    host1 ansible_ssh_host=10.171.134.39
    host2 ansible_ssh_host=51.143.50.51
    
  • Ping 测试:

    ansible -m ping all
    

下载载入包

从 Microsoft Defender 门户下载载入包。

警告

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

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

  2. 在第一个下拉菜单中,选择“ Linux 服务器 ”作为操作系统。 在第二个下拉菜单中,选择“ 首选 Linux 配置管理工具 ”作为部署方法。

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

    “下载载入包”选项

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

    ls -l
    
    total 8
    -rw-r--r-- 1 test  staff  4984 Feb 18 11:22 WindowsDefenderATPOnboardingPackage.zip
    
    unzip WindowsDefenderATPOnboardingPackage.zip
    
    Archive:  WindowsDefenderATPOnboardingPackage.zip
    inflating: mdatp_onboard.json
    

创建 Ansible YAML 文件

创建为 playbook 或任务做出贡献的子任务或角色文件。

  • 创建载入任务 onboarding_setup.yml

    - name: Create MDATP directories
      file:
        path: /etc/opt/microsoft/mdatp/
        recurse: true
        state: directory
        mode: 0755
        owner: root
        group: root
    
    - name: Register mdatp_onboard.json
      stat:
        path: /etc/opt/microsoft/mdatp/mdatp_onboard.json
      register: mdatp_onboard
    
    - name: Extract WindowsDefenderATPOnboardingPackage.zip into /etc/opt/microsoft/mdatp
      unarchive:
        src: WindowsDefenderATPOnboardingPackage.zip
        dest: /etc/opt/microsoft/mdatp
        mode: 0600
        owner: root
        group: root
      when: not mdatp_onboard.stat.exists
    
  • 添加 Defender for Endpoint 存储库和密钥 add_apt_repo.yml

    可以从以下通道之一部署 Linux 上的 Defender for Endpoint:

    每个通道对应于一个 Linux 软件存储库。

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

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

    警告

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

    记下分发版和版本,并在 下 https://packages.microsoft.com/config/[distro]/标识其最接近的条目。

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

    注意

    对于 Oracle Linux 和 Amazon Linux 2,请将 [发行版] 替换为“rhel”。 对于 Amazon Linux 2,请将 [版本] 替换为“7”。 对于 Oracle Linux,请将 [版本] 替换为 Oracle Linux 的版本。

    - name: Add Microsoft APT key
      apt_key:
        url: https://packages.microsoft.com/keys/microsoft.asc
        state: present
      when: ansible_os_family == "Debian"
    
    - name: Add Microsoft apt repository for MDATP
      apt_repository:
        repo: deb [arch=arm64,armhf,amd64] https://packages.microsoft.com/[distro]/[version]/prod [codename] main
        update_cache: yes
        state: present
        filename: microsoft-[channel]
      when: ansible_os_family == "Debian"
    
    - name: Add Microsoft DNF/YUM key
      rpm_key:
        state: present
        key: https://packages.microsoft.com/keys/microsoft.asc
      when: ansible_os_family == "RedHat"
    
    - name: Add  Microsoft yum repository for MDATP
      yum_repository:
        name: packages-microsoft-[channel]
        description: Microsoft Defender for Endpoint
        file: microsoft-[channel]
        baseurl: https://packages.microsoft.com/[distro]/[version]/[channel]/ 
        gpgcheck: yes
        enabled: Yes
      when: ansible_os_family == "RedHat"
    
  • 创建 Ansible 安装和卸载 YAML 文件。

    • 对于基于 apt 的分发,请使用以下 YAML 文件:

      cat install_mdatp.yml
      
      - hosts: servers
        tasks:
          - name: include onboarding tasks
            import_tasks:
              file: ../roles/onboarding_setup.yml
          - name: add apt repository
            import_tasks:
              file: ../roles/add_apt_repo.yml
          - name: Install MDATP
            apt:
              name: mdatp
              state: latest
              update_cache: yes
      
      cat uninstall_mdatp.yml
      
      - hosts: servers
        tasks:
          - name: Uninstall MDATP
            apt:
              name: mdatp
              state: absent
      
    • 对于基于 dnf 的分发,请使用以下 YAML 文件:

      cat install_mdatp_dnf.yml
      
      - hosts: servers
        tasks:
          - name: include onboarding tasks
            import_tasks:
              file: ../roles/onboarding_setup.yml
          - name: add apt repository
            import_tasks:
              file: ../roles/add_yum_repo.yml
          - name: Install MDATP
            dnf:
              name: mdatp
              state: latest
              enablerepo: packages-microsoft-[channel]
      
      cat uninstall_mdatp_dnf.yml
      
      - hosts: servers
        tasks:
          - name: Uninstall MDATP
            dnf:
              name: mdatp
              state: absent
      

部署

现在,在 或相关目录下 /etc/ansible/playbooks/ 运行任务文件。

  • 安装:

    ansible-playbook /etc/ansible/playbooks/install_mdatp.yml -i /etc/ansible/hosts
    

重要

产品首次启动时,会下载最新的反恶意软件定义。 这可能需要几分钟时间,具体取决于 Internet 连接。

  • 验证/配置:

    ansible -m shell -a 'mdatp connectivity test' all
    
    ansible -m shell -a 'mdatp health' all
    
  • 卸载:

    ansible-playbook /etc/ansible/playbooks/uninstall_mdatp.yml -i /etc/ansible/hosts
    

日志安装问题

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

操作系统升级

将操作系统升级到新的主版本时,必须先卸载 Linux 上的 Defender for Endpoint,安装升级,最后在设备上重新配置 Linux 上的 Defender for Endpoint。

References

另请参阅

提示

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