共用方式為


使用 Ansible 在 Linux 上部署 適用於端點的 Microsoft Defender

適用於

想要體驗適用於端點的 Microsoft Defender 嗎? 注册免費試用版。

本文說明如何使用 Ansible 在 Linux 上部署適用於端點的 Defender。 成功部署需要完成下列所有工作:

重要事項

本文包含第三方工具的相關信息。 這是為了協助完成整合案例而提供,不過,Microsoft不會提供第三方工具的疑難解答支援。
請連絡第三方廠商以取得支援。

簡介

使用 Ansible 在 Linux 伺服器上部署 適用於端點的 Microsoft Defender,以大規模自動化機器的部署程式。 以下是自動化的兩種方法:

  • 使用建議 () 安裝程式腳本。 此方法可大幅簡化自動化程式,並協助您安裝適用於端點的 Defender 代理程式,並使用幾個步驟將裝置上線至 Microsoft Defender 入口網站,而不需要個別設定不同的散發版本。

  • 手動設定每個散發版本的存放庫。 此方法可讓您手動設定存放庫、安裝代理程式,以及將每個散發版本的裝置上線,以自動化部署程式。 這個方法可讓您更精細地控制部署程式。

適用於這兩種方法的必要條件和系統需求

開始之前,請參閱 Linux 上主要適用於端點的 Defender 頁面 ,以取得必要條件和系統需求的說明。

此外,針對 Ansible 部署,您必須熟悉 Ansible 管理工作、已設定 Ansible,以及知道如何部署劇本和工作。 Ansible 有許多方法可以完成相同的工作。 這些指示假設支援的 Ansible 模組可供使用,例如 aptunarchive ,以協助部署套件。 您的組織可能會使用不同的工作流程。 如需詳細資訊,請 參閱 Ansible 檔

  • Ansible 必須至少安裝在一部計算機上, (Ansible 會將控制節點) 呼叫這部電腦。

  • 您必須針對控制節點與所有受控節點之間的系統管理員帳戶設定SSH, (已安裝適用於端點的Defender的裝置) ,並建議使用公鑰驗證進行設定。

  • 下列軟體必須安裝在所有 Managed 節點上:

    • 捲曲
    • python-apt (如果您要使用apt作為套件管理員部署在散發套件上)
  • 所有 Managed 節點都必須以下欄格式列在 或相關檔案中 /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安裝套件。 這樣做可能會對產品的完整性造成負面影響,並導致不良結果,包括但不限於觸發竄改警示和無法套用更新。

  1. Microsoft Defender 入口網站中,移至 [設定>端點>裝置管理>上線]

  2. 在第一個下拉功能表中,選取 [Linux Server ] 作為操作系統。 在第二個下拉功能表中,選 取 [您慣用的Linux組態管理工具 ] 作為部署方法。

  3. 選取 [下載上線套件]。 將檔案儲存為 WindowsDefenderATPOnboardingPackage.zip

    下載上線套件選項

  4. 從命令提示字元中,確認您有 檔案。 擷取封存的內容:

    unzip WindowsDefenderATPOnboardingPackage.zip
    
    Archive:  WindowsDefenderATPOnboardingPackage.zip
    inflating: mdatp_onboard.json
    

使用 mde_installer.sh 搭配 Ansible 部署適用於端點的 Defender

開始之前,請務必下載上線套件,並符合使用安裝程式bash腳本在Linux上部署適用於端點的Defender的必要條件。

下載安裝程式bash腳本

從 GitHub 存放庫Microsoft 提取安裝程式 bash 腳本 ,或使用下列命令下載它。

  wget https://raw.githubusercontent.com/microsoft/mdatp-xplat/refs/heads/master/linux/installation/mde_installer.sh

建立 Ansible YAML 檔案

建立安裝 YAML 檔案。 您也可以直接從 GitHub 下載檔

- name: Install and Onboard MDE
  hosts: servers
  tasks:
   - name: Create a directory if it does not exist
     ansible.builtin.file:
       path: /tmp/mde_install
       state: directory
       mode: '0755'

   - name: Copy Onboarding script
     ansible.builtin.copy:
       src: "{{ onboarding_json }}"
       dest: /tmp/mde_install/mdatp_onboard.json
   - name: Install MDE on host
     ansible.builtin.script: "{{ mde_installer_script }} --install --channel {{ channel | default('insiders-fast') }} --onboard /tmp/mde_install/mdatp_onboard.json"
     register: script_output
     args:
       executable: sudo

   - name: Display the installation output
     debug:
       msg: "Return code [{{ script_output.rc }}] {{ script_output.stdout }}"

   - name: Display any installation errors
     debug:
       msg: "{{ script_output.stderr }}"

注意事項

安裝程式腳本也支援其他參數,例如通道、即時保護、版本等。若要從可用選項清單中選取,請透過下列命令檢查說明: ./mde_installer.sh --help

套用劇本

使用下列命令套用劇本,並根據您的需求取代對應的路徑和通道:

ansible-playbook -i  /etc/ansible/hosts /etc/ansible/playbooks/install_mdatp.yml --extra-vars "onboarding_json=<path to mdatp_onboard.json > mde_installer_script=<path to mde_installer.sh> channel=<channel to deploy for: insiders-fast / insiders-slow / prod> "

確認部署是否成功

  1. Microsoft Defender 入口網站中,開啟裝置清查。 裝置可能需要 5-20 分鐘才會顯示在入口網站中。

  2. 執行下列安裝后檢查,包括健康情況、連線能力、防病毒軟體和 EDR 偵測測試等檢查,以確保適用於端點的 Defender 成功部署和運作。


- name: Run post-installation basic MDE test
  hosts: myhosts
  tasks:
    - name: Check health
      ansible.builtin.command: mdatp health --field healthy
      register: health_status

    - name: MDE health test failed
      fail: msg="MDE is not healthy. health status => \n{{ health_status.stdout       }}\nMDE deployment not complete"
      when: health_status.stdout != "true"

    - name: Run connectivity test
      ansible.builtin.command: mdatp connectivity test
      register: connectivity_status

    - name: Connectivity failed
      fail: msg="Connectivity failed. Connectivity result => \n{{ connectivity_status.stdout }}\n MDE deployment not complete"
      when: connectivity_status.rc != 0

    - name: Check RTP status
      ansible.builtin.command: mdatp health --field real_time_protection_enabled
      register: rtp_status

    - name: Enable RTP
      ansible.builtin.command: mdatp config real-time-protection --value enabled
      become: yes
      become_user: root
      when: rtp_status.stdout != "true"

    - name: Pause for 5 second to enable RTP
      ansible.builtin.pause:
        seconds: 5

    - name: Download EICAR
      ansible.builtin.get_url:
        url: https://secure.eicar.org/eicar.com.txt
        dest: /tmp/eicar.com.txt

    - name: Pause for 5 second to detect eicar 
      ansible.builtin.pause:
        seconds: 5

    - name: Check for EICAR file
      stat: path=/tmp/eicar.com.txt
      register: eicar_test

    - name: EICAR test failed
      fail: msg="EICAR file not deleted. MDE deployment not complete"
      when: eicar_test.stat.exists

    - name: MDE Deployed
      debug:
      msg: "MDE succesfully deployed"


如何在Linux伺服器上卸載 適用於端點的 Microsoft Defender

首先,建立卸載 YAML 檔案 (例如:使用 的 /etc/ansible/playbooks/uninstall_mdatp.yml) mde_installer.sh。 您也可以直接從 GitHub 下載檔


- name: Uninstall MDE
  hosts: myhosts
  tasks:
   - name: Uninstall MDE
     ansible.builtin.script: "{{ mde_installer_script }} --remove"
     register: script_output
     args:
       executable: sudo


- name: Display the installation output
  debug:
    msg: "Return code [{{ script_output.rc }}] {{ script_output.stdout }}"

- name: Display any installation errors
  debug:
    msg: "{{ script_output.stderr }}"

執行下列命令,使用劇本卸載適用於端點的 Defender:

ansible-playbook -i  /etc/ansible/hosts /etc/ansible/playbooks/uninstall_mdatp.yml --extra-vars "mde_installer_script=<path to mde_installer.sh>"

使用 Ansible 部署適用於端點的 Defender,方法是手動設定存放庫

在下載上線套件並符合部署適用於端點的 Defender 必要條件之後,請遵循本節中的步驟,方法是手動設定每個 Linux 發行版的存放庫。

建立 Ansible YAML 檔案

建立參與劇本或工作的子工作或角色檔案。

  1. 建立上線工作: 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
    
  2. 新增適用於端點的 Defender 存放庫與金鑰 add_apt_repo.yml 您可以從下列其中一個通道部署適用於 Linux 上的適用於端點的 Defender:

    每個通道都會對應至 Linux 軟體存放庫。

    通道的選擇會決定提供給您裝置的更新類型和頻率。 測試人員快速的裝置是第一個接收更新和新功能的裝置,後面接著測試人員速度緩慢,最後是 prod

    為了預覽新功能並提供早期的意見反應,建議您將企業中的某些裝置設定為使用 測試人員快速測試人員速度緩慢

    警告

    在初始安裝之後切換通道需要重新安裝產品。 若要切換產品通道:卸載現有的套件,請將裝置重新設定為使用新通道,並遵循本檔中的步驟,從新位置安裝套件。

  3. 請記下您的散發套件和版本,並識別下最接近的專案 https://packages.microsoft.com/config/[distro]/

  4. 在下列命令中,將 [distro][version] 取代為您已識別的資訊。

    注意事項

    如果是 Oracle Linux 和 Amazon Linux 2,請將 [distro] 取代為 “rhel”。 針對 Amazon Linux 2,將 [version] 取代為 “7”。 若為 Oracle Linux,請將 [version] 取代為 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"
    
  5. 建立 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/ 執行工作檔案。

  1. 安裝:

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

    重要事項

    當產品第一次啟動時,它會下載最新的反惡意代碼定義。 視您的因特網連線而定,這可能需要幾分鐘的時間。

  2. 驗證/組態:

    ansible -m shell -a 'mdatp connectivity test' all
    
    ansible -m shell -a 'mdatp health' all
    
  3. 卸載:

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

安裝問題的疑難排解

如需自我疑難解答,請遵循下列步驟:

  1. 如需如何尋找安裝錯誤發生時自動產生的記錄檔的相關信息,請參閱 記錄安裝問題

  2. 如需常見安裝問題的相關信息,請參閱 安裝問題

  3. 如果裝置的健康情況是 false,請參閱 適用於端點的 Defender 代理程式健康情況問題

  4. 如需產品效能問題,請參閱 針對效能問題進行疑難解答

  5. 如需 Proxy 和連線問題,請參閱 針對雲端連線問題進行疑難解答

  6. 若要從Microsoft取得支援,請開啟支援票證,並提供使用 用戶端分析器建立的記錄檔。

如何在Linux上設定 Microsoft Defender的原則

您可以使用下列方法,在端點上設定防病毒軟體或 EDR 設定:

操作系統升級

將操作系統升級至新的主要版本時,您必須先在 Linux 上卸載適用於端點的 Defender、安裝升級,最後在您的裝置上重新設定適用於端點的 Defender。

另請參閱

提示

想要深入了解? 在我們的技術社群中 Engage Microsoft安全性社群:適用於端點的 Microsoft Defender 技術社群。