Condividi tramite


Distribuire Microsoft Defender per endpoint in Linux con Ansible

Si applica a:

Si desidera provare Microsoft Defender per endpoint? iscriversi a una versione di valutazione gratuita.

Questo articolo descrive come distribuire Defender per endpoint in Linux usando Ansible. Una distribuzione riuscita richiede il completamento di tutte le attività seguenti:

Importante

Questo articolo contiene informazioni sugli strumenti di terze parti. Questo viene fornito per semplificare il completamento degli scenari di integrazione, tuttavia, Microsoft non fornisce supporto per la risoluzione dei problemi per gli strumenti di terze parti.
Per assistenza, contattare il fornitore di terze parti.

Introduzione

Distribuire Microsoft Defender per endpoint nei server Linux usando Ansible per automatizzare il processo di distribuzione per i computer su larga scala. Di seguito sono riportati i due metodi per automatizzare:

  • Usare lo script del programma di installazione (consigliato). Questo metodo semplifica notevolmente il processo di automazione e consente di installare l'agente defender per endpoint e di eseguire l'onboarding del dispositivo nel portale di Microsoft Defender usando solo alcuni passaggi senza dover configurare separatamente per distribuzioni diverse.

  • Configurare manualmente i repository per ogni distribuzione. Questo metodo consente di automatizzare il processo di distribuzione configurando manualmente i repository, installando l'agente e caricando il dispositivo per ogni distribuzione. Questo metodo offre un controllo più granulare sul processo di distribuzione.

Prerequisiti e requisiti di sistema applicabili a entrambi i metodi

Prima di iniziare, vedere la pagina principale di Defender per endpoint in Linux per una descrizione dei prerequisiti e dei requisiti di sistema.

Inoltre, per la distribuzione di Ansible, è necessario avere familiarità con le attività di amministrazione di Ansible, avere Ansible configurato e sapere come distribuire playbook e attività. Ansible ha molti modi per completare la stessa attività. Queste istruzioni presuppongono la disponibilità di moduli Ansible supportati, ad esempio apt e unarchive per semplificare la distribuzione del pacchetto. L'organizzazione potrebbe usare un flusso di lavoro diverso. Per altre informazioni, vedere la documentazione di Ansible.

  • Ansible deve essere installato in almeno un computer (Ansible chiama questo computer il nodo di controllo).

  • SSH deve essere configurato per un account amministratore tra il nodo di controllo e tutti i nodi gestiti (dispositivi in cui è installato Defender per endpoint) ed è consigliabile configurarlo con l'autenticazione a chiave pubblica.

  • Il software seguente deve essere installato in tutti i nodi gestiti:

    • ricciolo
    • python-apt (se si esegue la distribuzione nelle distribuzioni usando apt come gestione pacchetti)
  • Tutti i nodi gestiti devono essere elencati nel formato seguente nel /etc/ansible/hosts file o pertinente:

    [servers]
    host1 ansible_ssh_host=10.171.134.39
    host2 ansible_ssh_host=51.143.50.51
    
  • Test ping:

    ansible -m ping all
    

Scaricare il pacchetto di onboarding applicabile a entrambi i metodi

Scaricare il pacchetto di onboarding dal portale di Microsoft Defender.

Avviso

Il riconfezionamento del pacchetto di installazione di Defender per endpoint non è uno scenario supportato. Ciò può influire negativamente sull'integrità del prodotto e portare a risultati negativi, tra cui, a titolo esemplificabile, l'attivazione di avvisi di manomissione e l'impossibilità di applicare gli aggiornamenti.

  1. Nel portale di Microsoft Defender passare a Impostazioni> EndpointGestione>dispositivi>Onboarding.

  2. Nel primo menu a discesa selezionare Server Linux come sistema operativo. Nel secondo menu a discesa selezionare Lo strumento di gestione della configurazione Linux preferito come metodo di distribuzione.

  3. Selezionare Scarica pacchetto di onboarding. Salvare il file come WindowsDefenderATPOnboardingPackage.zip.

    Opzione Scarica pacchetto di onboarding

  4. Da un prompt dei comandi verificare di avere il file. Estrarre il contenuto dell'archivio:

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

Distribuire Defender per endpoint usando mde_installer.sh con Ansible

Prima di iniziare, assicurarsi di scaricare il pacchetto di onboarding e soddisfare i prerequisiti per distribuire Defender per endpoint in Linux usando lo script bash del programma di installazione.

Scaricare lo script bash del programma di installazione

Eseguire il pull dello script bash del programma di installazione dal repository Microsoft GitHub o usare il comando seguente per scaricarlo.

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

Creare file YAML ansible

Creare il file YAML di installazione. È anche possibile scaricare il file direttamente da 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 }}"

Nota

Lo script del programma di installazione supporta anche altri parametri, ad esempio canale, protezione in tempo reale, versione e così via. Per selezionare dall'elenco delle opzioni disponibili, consultare la Guida tramite il comando seguente: ./mde_installer.sh --help

Applicare il playbook

Applicare il playbook usando il comando seguente, sostituendo i percorsi e il canale corrispondenti in base alle esigenze:

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

Verificare se la distribuzione ha esito positivo

  1. Nel portale di Microsoft Defender aprire l'inventario dei dispositivi. La visualizzazione del dispositivo nel portale potrebbe richiedere 5-20 minuti.

  2. Eseguire i controlli successivi all'installazione seguenti, che includono controlli come l'integrità, la connettività, l'antivirus e i test di rilevamento EDR per garantire la corretta distribuzione e il funzionamento di Defender per endpoint.


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


Come disinstallare Microsoft Defender per endpoint nei server Linux

Creare prima di tutto un file YAML di disinstallazione (ad esempio: /etc/ansible/playbooks/uninstall_mdatp.yml) che usa mde_installer.sh. È anche possibile scaricare il file direttamente da 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 }}"

Eseguire il comando seguente per disinstallare Defender per endpoint usando il playbook:

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

Distribuire Defender per endpoint usando Ansible configurando manualmente i repository

Seguire la procedura descritta in questa sezione dopo aver scaricato il pacchetto di onboarding e aver soddisfatti i prerequisiti per la distribuzione di Defender per endpoint configurando manualmente i repository per ogni distribuzione Linux.

Creare file YAML ansible

Creare una sottoattività o file di ruolo che contribuiscono a un playbook o a un'attività.

  1. Creare l'attività di onboarding: 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. Aggiungere il repository Defender per endpoint e la chiave , add_apt_repo.yml. Defender per endpoint in Linux può essere distribuito da uno dei canali seguenti:

    Ogni canale corrisponde a un repository software Linux.

    La scelta del canale determina il tipo e la frequenza degli aggiornamenti offerti al dispositivo. I dispositivi in insider-fast sono i primi a ricevere aggiornamenti e nuove funzionalità, seguiti in seguito da insider-slow e infine da prod.

    Per visualizzare in anteprima le nuove funzionalità e fornire feedback anticipato, è consigliabile configurare alcuni dispositivi nell'organizzazione per usare i partecipanti ai lavori in modo rapido o lento.

    Avviso

    Il cambio di canale dopo l'installazione iniziale richiede la reinstallazione del prodotto. Per cambiare il canale del prodotto: disinstallare il pacchetto esistente, riconfigurare il dispositivo per usare il nuovo canale e seguire la procedura descritta in questo documento per installare il pacchetto dal nuovo percorso.

  3. Prendere nota della distribuzione e della versione e identificare la voce più vicina in https://packages.microsoft.com/config/[distro]/.

  4. Nei comandi seguenti sostituire [distro] e [version] con le informazioni identificate.

    Nota

    Nel caso di Oracle Linux e Amazon Linux 2, sostituire [distro] con "rhel". Per Amazon Linux 2, sostituire [versione] con "7". Per Oracle Linux sostituire [versione] con la versione di 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. Creare i file YAML di installazione e disinstallazione di Ansible.

    • Per le distribuzioni basate su apt, usare il file YAML seguente:

      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
      
    • Per le distribuzioni basate su dnf, usare il file YAML seguente:

      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
      

Applicare il playbook

In questo passaggio si applica il playbook. Eseguire i file delle attività in /etc/ansible/playbooks/ o nella directory pertinente.

  1. Installazione:

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

    Importante

    Quando il prodotto viene avviato per la prima volta, scarica le definizioni antimalware più recenti. A seconda della connessione Internet, possono essere necessari alcuni minuti.

  2. Convalida/configurazione:

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

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

Risolvere i problemi di installazione

Per la risoluzione automatica dei problemi, seguire questa procedura:

  1. Per informazioni su come trovare il log generato automaticamente quando si verifica un errore di installazione, vedere Problemi di installazione del log.

  2. Per informazioni sui problemi di installazione comuni, vedere Problemi di installazione.

  3. Se l'integrità del dispositivo è false, vedere Problemi di integrità dell'agente di Defender per endpoint.

  4. Per i problemi di prestazioni del prodotto, vedere Risolvere i problemi di prestazioni.

  5. Per i problemi di proxy e connettività, vedere Risolvere i problemi di connettività cloud.

  6. Per ottenere supporto da Microsoft, aprire un ticket di supporto e fornire i file di log creati usando l'analizzatore client.

Come configurare i criteri per Microsoft Defender in Linux

È possibile configurare impostazioni antivirus o EDR negli endpoint usando i metodi seguenti:

Aggiornamenti del sistema operativo

Quando si aggiorna il sistema operativo a una nuova versione principale, è innanzitutto necessario disinstallare Defender per endpoint in Linux, installare l'aggiornamento e infine riconfigurare Defender per endpoint in Linux nel dispositivo.

Vedere anche

Consiglio

Per saperne di più, Engage con la community Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.