使用 Ansible 在 Linux 上部署 適用於端點的 Microsoft Defender
適用於:
- 適用於端點的 Microsoft Defender 伺服器
- 伺服器的 Microsoft Defender
想要體驗適用於端點的 Microsoft Defender 嗎? 注册免費試用版。
本文說明如何使用 Ansible 在 Linux 上部署適用於端點的 Defender。 成功部署需要完成下列所有工作:
- 必要條件和系統需求
- 下載上線套件
- 使用適用於 Ansible 的 mde_installer.sh,在 Linux 上部署適用於端點的 Defender
- 使用 Ansible 在 Linux 上部署適用於端點的 Defender,方法是手動設定存放庫
重要事項
本文包含第三方工具的相關信息。 這是為了協助完成整合案例而提供,不過,Microsoft不會提供第三方工具的疑難解答支援。
請連絡第三方廠商以取得支援。
簡介
使用 Ansible 在 Linux 伺服器上部署 適用於端點的 Microsoft Defender,以大規模自動化機器的部署程式。 以下是自動化的兩種方法:
使用建議 () 安裝程式腳本。 此方法可大幅簡化自動化程式,並協助您安裝適用於端點的 Defender 代理程式,並使用幾個步驟將裝置上線至 Microsoft Defender 入口網站,而不需要個別設定不同的散發版本。
手動設定每個散發版本的存放庫。 此方法可讓您手動設定存放庫、安裝代理程式,以及將每個散發版本的裝置上線,以自動化部署程式。 這個方法可讓您更精細地控制部署程式。
適用於這兩種方法的必要條件和系統需求
開始之前,請參閱 Linux 上主要適用於端點的 Defender 頁面 ,以取得必要條件和系統需求的說明。
此外,針對 Ansible 部署,您必須熟悉 Ansible 管理工作、已設定 Ansible,以及知道如何部署劇本和工作。 Ansible 有許多方法可以完成相同的工作。 這些指示假設支援的 Ansible 模組可供使用,例如 apt 和 unarchive ,以協助部署套件。 您的組織可能會使用不同的工作流程。 如需詳細資訊,請 參閱 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安裝套件。 這樣做可能會對產品的完整性造成負面影響,並導致不良結果,包括但不限於觸發竄改警示和無法套用更新。
在 Microsoft Defender 入口網站中,移至 [設定>端點>裝置管理>上線]。
在第一個下拉功能表中,選取 [Linux Server ] 作為操作系統。 在第二個下拉功能表中,選 取 [您慣用的Linux組態管理工具 ] 作為部署方法。
選取 [下載上線套件]。 將檔案儲存為
WindowsDefenderATPOnboardingPackage.zip
。從命令提示字元中,確認您有 檔案。 擷取封存的內容:
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> "
確認部署是否成功
在 Microsoft Defender 入口網站中,開啟裝置清查。 裝置可能需要 5-20 分鐘才會顯示在入口網站中。
執行下列安裝后檢查,包括健康情況、連線能力、防病毒軟體和 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 檔案
建立參與劇本或工作的子工作或角色檔案。
建立上線工作:
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 存放庫與金鑰
add_apt_repo.yml
您可以從下列其中一個通道部署適用於 Linux 上的適用於端點的 Defender:-
insiders-fast,表示為
[channel]
測試人員-慢,表示為[channel]
-
prod,表示為
[channel]
使用版本名稱 (請參閱 適用於Microsoft產品的Linux軟體存放庫)
每個通道都會對應至 Linux 軟體存放庫。
通道的選擇會決定提供給您裝置的更新類型和頻率。 測試人員快速的裝置是第一個接收更新和新功能的裝置,後面接著測試人員速度緩慢,最後是 prod。
為了預覽新功能並提供早期的意見反應,建議您將企業中的某些裝置設定為使用 測試人員快速 或 測試人員速度緩慢。
警告
在初始安裝之後切換通道需要重新安裝產品。 若要切換產品通道:卸載現有的套件,請將裝置重新設定為使用新通道,並遵循本檔中的步驟,從新位置安裝套件。
-
insiders-fast,表示為
請記下您的散發套件和版本,並識別下最接近的專案
https://packages.microsoft.com/config/[distro]/
。在下列命令中,將 [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"
建立 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
重要事項
當產品第一次啟動時,它會下載最新的反惡意代碼定義。 視您的因特網連線而定,這可能需要幾分鐘的時間。
驗證/組態:
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
安裝問題的疑難排解
如需自我疑難解答,請遵循下列步驟:
如需如何尋找安裝錯誤發生時自動產生的記錄檔的相關信息,請參閱 記錄安裝問題。
如需常見安裝問題的相關信息,請參閱 安裝問題。
如果裝置的健康情況是
false
,請參閱 適用於端點的 Defender 代理程式健康情況問題。如需產品效能問題,請參閱 針對效能問題進行疑難解答。
如需 Proxy 和連線問題,請參閱 針對雲端連線問題進行疑難解答。
若要從Microsoft取得支援,請開啟支援票證,並提供使用 用戶端分析器建立的記錄檔。
如何在Linux上設定 Microsoft Defender的原則
您可以使用下列方法,在端點上設定防病毒軟體或 EDR 設定:
- 請參閱設定 Linux 上 適用於端點的 Microsoft Defender 的喜好設定。
- 請參閱安全性設定管理,以在 Microsoft Defender 入口網站中設定設定。
操作系統升級
將操作系統升級至新的主要版本時,您必須先在 Linux 上卸載適用於端點的 Defender、安裝升級,最後在您的裝置上重新設定適用於端點的 Defender。
另請參閱
提示
想要深入了解? 在我們的技術社群中 Engage Microsoft安全性社群:適用於端點的 Microsoft Defender 技術社群。