Microsoft Defender Deployment Tool Linux (Preview)
All’interno della community ho già parlato del Microsoft Defender Deployment Tool per sistemi operativi Windows (per comodità vi riporto l’articolo Microsoft Defender Deployment Tool (Preview) – ICT Power) che permette di fatto anche di estendere le massime funzionalità di sicurezza disponibili sul mercato anche a sistemi operativi Legacy come Windows 7 SP1 e Windows Server 2008 R2.
Quest’oggi vorrei parlarvi dello stesso tool, ma per sistemi operativi Linux, che all’interno delle organizzazioni sono comunque diffusi e molto utilizzati.
Microsoft Defender Deployment Tool offre un processo di onboarding efficiente e intuitivo per Microsoft Defender for Endpoint in sistemi operativi Linux.
Consente agli IT Admin di installare ed eseguire l’onboarding usando un singolo “pacchetto” che può essere scaricato direttamente dal portale di Microsoft Defender. In questo modo si elimina di fatto la necessità di installare e di eseguire l’onboarding utilizzando due file differenti.
Questo strumento supporta, sia l’attività manuale, sia strumenti di terze parti come, ad esempio:
- Chef
- Ansible
- Puppet
- SaltStack
Deployment Tool supporta diversi parametri che è possibile usare per personalizzare distribuzioni su larga scala, consentendo di avere installazioni personalizzate in ambienti diversi.
Quali sono i prerequisiti?
Cominciando dalle licenze bisogna essere in possesso di una delle seguenti per poter eseguire Microsoft Defender for Endpoint:
- Microsoft Defender for Endpoint P1
- Microsoft Defender for Endpoint P2
- Microsoft Defender for Business
- Suite Microsoft che contenga questa funzionalità
Nel mio caso utilizzerò una Microsoft 365 E5, per le licenze vi rimando sempre all’enorme lavoro che Aaron Dinnage ha svolto per la community Home | M365 Maps
Per quanto riguarda i prerequisiti a livello Hardware per supportare Microsoft Defender for Endpoint sono necessari:
- CPU: minimo un core, per prestazioni e carichi di lavoro più ampi aumentare il numero di core
- Spazio Disco: minimo 2GB
- Memoria Ram: almeno 1GB di Ram
Per quanto riguarda i requisiti Software:
- Raggiungibilità degli Endpoint verso *.endpoint.security.microsoft.com
- Raggiungibilità degli Endpoint verso msdefender.download.prss.microsoft.com
- Gli Endpoint devono aver installato wget o curl
- Gli Endpoint devono avere installato systmd
- Privilegi amministrativi sull’Endpoint
Vi riporto inoltre tutte le distribuzioni di Linux supportate:
- Red Hat Enterprise Linux 7.2 e versioni successive
- Red Hat Enterprise Linux 8.x
- Red Hat Enterprise Linux 9.x
- Red Hat Enterprise Linux 10.x
- CentOS 7.2 e versioni successive, escluso CentOS Stream
- CentOS 8.x
- CentOS Stream 8.x
- CentOS Stream 9.x
- CentOS Stream 10.x
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
- Ubuntu Pro 22.04
- Ubuntu Pro 24.04
- Debian 9 – 12
- SUSE Linux Enterprise Server 12.x
- SUSE Linux Enterprise Server 15.x
- Oracle Linux 7.2 e versioni successive
- Oracle Linux 8.x
- Oracle Linux 9.x
- Amazon Linux 2
- Amazon Linux 2023
- Fedora 33-42
- Rocky 8.7 e versioni successive
- Rocky 9.2 e versioni successive
- Alma 8.4 e versioni successive
- Alma 9.2 e versioni successive
- Mariner 2
Sono supportati anche i seguenti sistemi basati su ARM64:
- Ubuntu 20.04 LTS ARM64
- Ubuntu 22.04 LTS ARM64
- Ubuntu 24.04 LTS ARM64
- Ubuntu Pro 22.04 ARM64
- Ubuntu Pro 24.04 ARM64
- CentOS Stream 8.x ARM64
- CentOS Stream 9.x ARM64
- CentOS Stream 10.x ARM64
- Debian 11, 12 ARM64
- Amazon Linux 2 ARM64
- Amazon Linux 2023 ARM64
- RHEL 8.x ARM64
- RHEL 9.x ARM64
- RHEL 10.x ARM64
- Oracle Linux 8.x ARM64
- Oracle Linux 9.x ARM64
- SUSE Linux Enterprise Server 15 (SP5, SP6) ARM64
Come ultima informazione per I prerequisiti vi riporto i File System supportati:
| rotezione in tempo reale e analisi rapide/complete | Analisi personalizzate |
| btrfs | Tutti i file system sono supportati per la protezione in tempo reale e analisi rapide/complete |
| ecryptfs | Efs |
| ext2 | S3fs |
| ext3 | Blobfuse |
| ext4 | Lustr |
| fuse | glustrefs |
| fuseblk | Afs |
| jfs | sshfs |
| nfs (solo v3) | cifs |
| overlay | smb |
| ramfs | gcsfuse |
| reiserfs | sysfs |
| tmpfs | |
| udf | |
| vfat | |
| xfs |
Come attivo la funzionalità?
Per darvi evidenza di questa funzionalità, io avrò una Virtual Machine con Ubuntu 24.04 chiamata ITBGLNX01

Figura 1: Macchina Ubuntu utilizzata per Demo

Figura 2: Licenza Microsoft 365 E5 utilizzata che comprende Microsoft Defender for Endpoint
Essendo una funzionalità in Preview il primo passaggio è quello di abilitare questa funzionalità recandosi all’interno del portale Microsoft Defender

Figura 3: Sezione portale relativa agli Endpoint dove abilitiamo la funzionalità in Preview

Figura 4: Abilitazione delle Preview Features e salvataggio delle preferenze

Figura 5: Possibilità di utilizzare la funzionalità dopo avere abilitato le Preview Features
Ora procediamo a scaricare il tool dal portale di Microsoft Defender

Figura 6: Download Deployment Tool per Linux

Figura 7: Download eseguito
Ora “scompattiamo” il file zip

Figura 8: Estrazione file zip

Figura 9: Scegliamo di estrarre il file

Figura 10: Contenuto del file estratto
Ora copierà il file all’interno di una cartella temporanea del mio dispositivo linux tramite WINSCP

Figura 11: Collegamento alla macchina Linux con WinScp

Figura 12: Copio lo script in /tmp nel mio caso, voi potete scegliere una cartella a vostro piacimento

Figura 13: File presente sulla macchina Linux
Ora tramite il comando chmod potete rendere lo script eseguibile chmod +x defender_deployment_tool.sh

Figura 14: Script reso eseguibile

Figura 15: Procediamo ad eseguire lo script

Figura 16: Verifica di tutti i prerequisiti e installazione con relativo onboarding di Microsoft Defender

Figura 17: Onboarding Completato correttamente

Figura 18: Dispositivo correttamente presente all’interno del portale di Microsoft Defender for Endpoint
Per comodità vi riporto anche i parametri che possono essere impostati con questo comando:
| Scenario | Comando |
| Verificare la presenza di prerequisiti non bloccati non soddisfatti | sudo ./defender_deployment_tool.sh –pre-req-non-blocking |
| Eseguire il test di connettività | sudo ./defender_deployment_tool.sh –connectivity-test |
| Eseguire la distribuzione in un percorso personalizzato | sudo ./defender_deployment_tool.sh –install-path /usr/microsoft/ |
| Eseguire la distribuzione dal canale insider-slow | sudo ./defender_deployment_tool.sh –channel insiders-slow |
| Eseguire la distribuzione usando un proxy | sudo ./defender_deployment_tool.sh –http-proxy <http://username:password@proxy_host:proxy_port> |
| Distribuire una versione specifica dell’agente | sudo ./defender_deployment_tool.sh –mdatp 101.25042.0003 –channel prod |
| Eseguire l’aggiornamento a una versione specifica dell’agente | sudo ./defender_deployment_tool.sh –upgrade –mdatp 101.24082.0004 |
| Eseguire il downgrade a una versione specifica dell’agente | sudo ./defender_deployment_tool.sh –downgrade –mdatp 101.24082.0004 |
| Disinstallare Defender | sudo ./defender_deployment_tool.sh –remove |
| Eseguire l’onboarding solo se Defender è già installato | sudo ./defender_deployment_tool.sh –only-onboard |
| Offboard Defender | sudo ./defender_deployment_tool.sh –offboard MicrosoftDefenderATPOffboardingLinuxServer.py (Nota: il file di offboarding più recente può essere scaricato dal portale di Microsoft Defender) |
Per esempio, se volessimo solo eseguire una verifica dei requisiti network basterebbe eseguire questo comando “sudo ./defender_deployment_tool.sh –connectivity-test”

Figura 19: Evidenza degli FQDN che possono essere raggiunti dal dispositivo evidenziando anche quelli in errore
Come verificare lo stato di distribuzione?
Vi sono numerosi comandi che è possibile eseguire per la verifica dello stato di distribuzione che vi riporto all’interno di questo paragrafo:
Assicurarsi che la protezione in tempo reale sia correttamente attiva “mdatp health –field real_time_protection_enabled”

Figura 20: Comando restituisce false quindi è disabilitata
Comando per abilitarla “mdatp config real-time-protection –value enabled”

Figura 21: Parametro a True dopo il comando eseguito correttamente
Eseguire un test per la generazione di un alert con un file eicar “curl -o /tmp/eicar_com.zip https://secure.eicar.org/eicar_com.zip
curl -o /tmp/eicarcom2.zip https://secure.eicar.org/eicarcom2.zip”

Figura 22: Comando per simulare un file eicar eseguito correttamente
Comando per verificare i Threat attivi “mdatp threat list”

Figura 23: Threat attivi sull’Endpoint

Figura 24: Alert correttamente presenti al portale Microsoft Defender
Come posso eseguire l’offboarding del dispositivo?
Per procedere all’offboarding è necessario eseguire il Download del file di offboarding dal portale di Microsoft Defender

Figura 25: Download file di Offboarding, che sarà valido per 7 giorni

Figura 26: Download file

Figura 27: Estrazione del file zip che contiene lo script di offboarding

Figura 28: Contenuto del file zip estratto
Ora tramite WinScp procederò a copiarlo all’interno del dispositivo Linux nella cartella /tmp insieme al file per l’installazione del Deployment Tool NB: devono essere nella stessa cartella per procedere all’offboarding o dovrete passare il percorso completo

Figura 29: File copiati all’interno della macchina Linux in /tmp

Figura 30: File presenti nella cartella indicata
Ora siete pronti per eseguire il comando di Offboarding del dispositivo “sudo ./defender_deployment_tool.sh –offboard MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2026-01-23.py” la parte in grassetto cambierà in base alla data di scadenza del vostro script python

Figura 31: Offboarding eseguito in modo corretto
Ora potete rimuovere Defender for Endpoint da questo dispositivo “sudo ./defender_deployment_tool.sh –remove”

Figura 32: Defender for Endpoint rimosso correttamente dalla macchina Linux
Conclusioni
L’utilizzo di Microsoft Defender Deployment Tool in ambiente Linux rappresenta una soluzione efficace per automatizzare e standardizzare l’installazione e la configurazione di Microsoft Defender, garantendo coerenza, sicurezza e riduzione degli errori operativi. Attraverso l’impiego di strumenti da riga di comando e procedure ripetibili, è possibile integrare Defender all’interno di infrastrutture eterogenee, migliorando il livello di protezione senza impattare negativamente sulle prestazioni del sistema. Avere la possibilità di installare ed eseguire onboarding con solo un download e non più due a mio avviso rappresenta un passo importante in ottica di risparmio tempo da parte degli IT Operations, tempo che le risorse possono utilizzare per migliorare la sicurezza delle infrastrutture delle organizzazioni.