次の方法で共有


Ansible を使用して Linux にMicrosoft Defender for Endpointをデプロイする

適用対象:

Defender for Endpoint を試す場合は、 無料試用版にサインアップしてください。

この記事では、Ansible を使用して Defender for Endpoint on Linux をデプロイする方法について説明します。 展開を成功させるには、次のすべてのタスクを完了する必要があります。

重要

この記事には、サード パーティ製ツールに関する情報が含まれています。 これは統合シナリオの完了に役立ちますが、Microsoft ではサード パーティ製ツールのトラブルシューティング サポートを提供していません。
サポートについては、サード パーティベンダーにお問い合わせください。

概要

Ansible を使用して Linux サーバーにMicrosoft Defender for Endpointをデプロイし、大規模なマシンのデプロイ プロセスを自動化します。 自動化する 2 つの方法を次に示します。

  • インストーラー スクリプトを使用します (推奨)。 この方法により、自動化プロセスが大幅に簡略化され、Defender for Endpoint エージェントをインストールし、異なるディストリビューションを個別に構成することなく、わずか数ステップでデバイスをMicrosoft Defender ポータルにオンボードできます。

  • ディストリビューションごとにリポジトリを手動で構成します。 この方法では、リポジトリを手動で構成し、エージェントをインストールし、ディストリビューションごとにデバイスをオンボードすることで、デプロイ プロセスを自動化できます。 この方法では、デプロイ プロセスをより詳細に制御できます。

両方の方法に適用される前提条件とシステム要件

作業を開始する前に、前提条件とシステム要件の説明については、「メイン Defender for Endpoint on Linux」ページを参照してください。

さらに、Ansible デプロイの場合は、Ansible 管理タスクに精通し、Ansible を構成し、プレイブックとタスクをデプロイする方法を理解する必要があります。 Ansible には、同じタスクを完了するための多くの方法があります。 これらの手順では、パッケージのデプロイに役立つ aptunarchive など、サポートされている 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 インストール パッケージの再パッケージ化は、サポートされているシナリオではありません。 これにより、製品の整合性に悪影響を及ぼし、改ざんアラートや更新プログラムの適用に失敗したトリガーなど、悪影響を及ぼす可能性があります。

  1. Microsoft Defender ポータルで、[設定>Endpoints>Device management>Onboarding] に移動します

  2. 最初のドロップダウン メニューで、オペレーティング システムとして [Linux サーバー] を選択します。 2 番目のドロップダウン メニューで、デプロイ方法として [お好みの Linux 構成管理ツール ] を選択します。

  3. [オンボーディング パッケージをダウンロードする] を選択します。 ファイルを WindowsDefenderATPOnboardingPackage.zipとして保存します。

    [オンボード パッケージのダウンロード] オプション

  4. コマンド プロンプトから、ファイルがあることを確認します。 アーカイブの内容を抽出します。

    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> "

デプロイが成功したかどうかを確認する

  1. Microsoft Defender ポータルで、デバイス インベントリを開きます。 デバイスがポータルに表示されるまでに 5 ~ 20 分かかる場合があります。

  2. 次のインストール後チェックを実行します。これには、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 ファイルを作成する

プレイブックまたはタスクに貢献するサブタスクまたはロール ファイルを作成します。

  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 for Endpoint リポジトリとキー ( add_apt_repo.yml) を追加します。 Defender for Endpoint on Linux は、次のいずれかのチャネルからデプロイできます。

    各チャネルは、Linux ソフトウェア リポジトリに対応します。

    チャネルの選択により、デバイスに提供される更新プログラムの種類と頻度が決まります。 insiders-fast のデバイスは、更新プログラムと新機能を受け取る最初のデバイスであり、その後、インサイダーが遅く、最後に prod が続きます。

    新機能をプレビューし、早期フィードバックを提供するには、社内の一部のデバイスを 、Insider-fast または insider-slow を使用するように構成することをお勧めします。

    警告

    初期インストール後にチャネルを切り替えるには、製品を再インストールする必要があります。 製品チャネルを切り替えるには: 既存のパッケージをアンインストールし、新しいチャネルを使用するようにデバイスを再構成し、このドキュメントの手順に従って新しい場所からパッケージをインストールします。

  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 for Endpoint エージェントの正常性に関する問題」を参照してください。

  4. 製品のパフォーマンスの問題については、「 パフォーマンスの問題のトラブルシューティング」を参照してください。

  5. プロキシと接続の問題については、「 クラウド接続の問題のトラブルシューティング」を参照してください。

  6. Microsoft からサポートを受けるために、サポート チケットを開き、 クライアント アナライザーを使用して作成されたログ ファイルを指定します。

Linux 上のMicrosoft Defenderのポリシーを構成する方法

エンドポイントでウイルス対策または EDR 設定を構成するには、次の方法を使用します。

オペレーティング システムのアップグレード

オペレーティング システムを新しいメジャー バージョンにアップグレードするときは、最初に Linux 用 Defender for Endpoint をアンインストールし、アップグレードをインストールしてから、最後にデバイスの Linux 用 Defender for Endpoint を再構成する必要があります。

関連項目

ヒント

さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。