Ansible を使用して Linux にMicrosoft Defender for Endpointをデプロイする
適用対象:
- Microsoft Defender for Endpoint Server
- サーバーのMicrosoft Defender
Defender for Endpoint を試す場合は、 無料試用版にサインアップしてください。
この記事では、Ansible を使用して Defender for Endpoint on Linux をデプロイする方法について説明します。 展開を成功させるには、次のすべてのタスクを完了する必要があります。
- 前提条件とシステム要件
- オンボーディング パッケージをダウンロードする
- Ansible でmde_installer.shを使用して Linux に Defender for Endpoint をデプロイする
- リポジトリを手動で構成して Ansible を使用して Linux に Defender for Endpoint をデプロイする
重要
この記事には、サード パーティ製ツールに関する情報が含まれています。 これは統合シナリオの完了に役立ちますが、Microsoft ではサード パーティ製ツールのトラブルシューティング サポートを提供していません。
サポートについては、サード パーティベンダーにお問い合わせください。
概要
Ansible を使用して Linux サーバーにMicrosoft Defender for Endpointをデプロイし、大規模なマシンのデプロイ プロセスを自動化します。 自動化する 2 つの方法を次に示します。
インストーラー スクリプトを使用します (推奨)。 この方法により、自動化プロセスが大幅に簡略化され、Defender for Endpoint エージェントをインストールし、異なるディストリビューションを個別に構成することなく、わずか数ステップでデバイスをMicrosoft Defender ポータルにオンボードできます。
ディストリビューションごとにリポジトリを手動で構成します。 この方法では、リポジトリを手動で構成し、エージェントをインストールし、ディストリビューションごとにデバイスをオンボードすることで、デプロイ プロセスを自動化できます。 この方法では、デプロイ プロセスをより詳細に制御できます。
両方の方法に適用される前提条件とシステム要件
作業を開始する前に、前提条件とシステム要件の説明については、「メイン Defender for Endpoint on Linux」ページを参照してください。
さらに、Ansible デプロイの場合は、Ansible 管理タスクに精通し、Ansible を構成し、プレイブックとタスクをデプロイする方法を理解する必要があります。 Ansible には、同じタスクを完了するための多くの方法があります。 これらの手順では、パッケージのデプロイに役立つ apt や unarchive など、サポートされている Ansible モジュールの可用性を前提としています。 organizationは別のワークフローを使用する場合があります。 詳細については、 Ansible のドキュメントを参照してください。
Ansible は少なくとも 1 台のコンピューターにインストールする必要があります (Ansible はこのコンピューターを制御ノードと呼びます)。
制御ノードとすべての管理対象ノード (Defender for Endpoint がインストールされているデバイス) の間の管理者アカウントに対して SSH を構成する必要があり、公開キー認証を使用して構成することをお勧めします。
すべてのマネージド ノードに次のソフトウェアをインストールする必要があります。
- カール
- 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 インストール パッケージの再パッケージ化は、サポートされているシナリオではありません。 これにより、製品の整合性に悪影響を及ぼし、改ざんアラートや更新プログラムの適用に失敗したトリガーなど、悪影響を及ぼす可能性があります。
Microsoft Defender ポータルで、[設定>Endpoints>Device management>Onboarding] に移動します。
最初のドロップダウン メニューで、オペレーティング システムとして [Linux サーバー] を選択します。 2 番目のドロップダウン メニューで、デプロイ方法として [お好みの Linux 構成管理ツール ] を選択します。
[オンボーディング パッケージをダウンロードする] を選択します。 ファイルを
WindowsDefenderATPOnboardingPackage.zip
として保存します。コマンド プロンプトから、ファイルがあることを確認します。 アーカイブの内容を抽出します。
unzip WindowsDefenderATPOnboardingPackage.zip
Archive: WindowsDefenderATPOnboardingPackage.zip inflating: mdatp_onboard.json
Ansible でmde_installer.shを使用して Defender for Endpoint をデプロイする
開始する前に、オンボード パッケージをダウンロードし、インストーラー bash スクリプトを使用して Defender for Endpoint on Linux をデプロイするための前提条件を満たしていることを確認してください。
インストーラー bash スクリプトをダウンロードする
Microsoft GitHub リポジトリから インストーラー 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 分かかる場合があります。
次のインストール後チェックを実行します。これには、Defender for Endpoint の正常な展開と動作を確認するために、正常性、接続、ウイルス対策、EDR 検出テストなどのチェックが含まれます。
- 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 for Endpointをアンインストールする方法
まず、 mde_installer.sh
を使用するアンインストール YAML ファイル (/etc/ansible/playbooks/uninstall_mdatp.ymlなど) を作成します。
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 for Endpoint をアンインストールします。
ansible-playbook -i /etc/ansible/hosts /etc/ansible/playbooks/uninstall_mdatp.yml --extra-vars "mde_installer_script=<path to mde_installer.sh>"
リポジトリを手動で構成して Ansible を使用して Defender for Endpoint をデプロイする
オンボード パッケージをダウンロードし、各 Linux ディストリビューションのリポジトリを手動で構成して Defender for Endpoint を展開するための前提条件を満たした後、このセクションの手順に従います。
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 for Endpoint リポジトリとキー (
add_apt_repo.yml
) を追加します。 Defender for Endpoint on Linux は、次のいずれかのチャネルからデプロイできます。-
insiders-fast(
[channel]
insiders-slow として示され、[channel]
-
prod、バージョン名を使用して
[channel]
として示されます ( 「Microsoft 製品の Linux ソフトウェア リポジトリ」を参照してください)
各チャネルは、Linux ソフトウェア リポジトリに対応します。
チャネルの選択により、デバイスに提供される更新プログラムの種類と頻度が決まります。 insiders-fast のデバイスは、更新プログラムと新機能を受け取る最初のデバイスであり、その後、インサイダーが遅く、最後に prod が続きます。
新機能をプレビューし、早期フィードバックを提供するには、社内の一部のデバイスを 、Insider-fast または insider-slow を使用するように構成することをお勧めします。
警告
初期インストール後にチャネルを切り替えるには、製品を再インストールする必要があります。 製品チャネルを切り替えるには: 既存のパッケージをアンインストールし、新しいチャネルを使用するようにデバイスを再構成し、このドキュメントの手順に従って新しい場所からパッケージをインストールします。
-
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 for Endpoint エージェントの正常性に関する問題」を参照してください。製品のパフォーマンスの問題については、「 パフォーマンスの問題のトラブルシューティング」を参照してください。
プロキシと接続の問題については、「 クラウド接続の問題のトラブルシューティング」を参照してください。
Microsoft からサポートを受けるために、サポート チケットを開き、 クライアント アナライザーを使用して作成されたログ ファイルを指定します。
Linux 上のMicrosoft Defenderのポリシーを構成する方法
エンドポイントでウイルス対策または EDR 設定を構成するには、次の方法を使用します。
- 「Linux でMicrosoft Defender for Endpointの基本設定を設定する」を参照してください。
- Microsoft Defender ポータルで設定を構成するには、「セキュリティ設定の管理」を参照してください。
オペレーティング システムのアップグレード
オペレーティング システムを新しいメジャー バージョンにアップグレードするときは、最初に Linux 用 Defender for Endpoint をアンインストールし、アップグレードをインストールしてから、最後にデバイスの Linux 用 Defender for Endpoint を再構成する必要があります。
関連項目
- YUM リポジトリを追加または削除する
- dnf パッケージ マネージャーを使用してパッケージを管理する
- APT リポジトリの追加と削除
- apt-packages を管理する
- イベントの問題が見つかりません
ヒント
さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。