mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-16 07:17:24 +00:00
New_4490409
Created new topic "Schedule scans with Microsoft Defender ATP for Linux"
This commit is contained in:
parent
a3a3f9050f
commit
cb04295981
BIN
images/linux-mdatp.png
Normal file
BIN
images/linux-mdatp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
@ -0,0 +1,247 @@
|
|||||||
|
---
|
||||||
|
title: How to schedule scans with MDATP for Linux
|
||||||
|
description: Learn how to schedule an automatic scanning time for Microsoft Defender ATP in Linux to better protect your organization's assets.
|
||||||
|
keywords: microsoft, defender, atp, linux, scans, antivirus
|
||||||
|
search.product: eADQiWindows 10XVcnh
|
||||||
|
search.appverid: met150
|
||||||
|
ms.prod: w10
|
||||||
|
ms.mktglfcycl: deploy
|
||||||
|
ms.sitesec: library
|
||||||
|
ms.pagetype: security
|
||||||
|
ms.author: dansimp
|
||||||
|
author: dansimp
|
||||||
|
ms.localizationpriority: medium
|
||||||
|
manager: dansimp
|
||||||
|
audience: ITPro
|
||||||
|
ms.collection: M365-security-compliance
|
||||||
|
ms.topic: conceptual
|
||||||
|
---
|
||||||
|
|
||||||
|
# Schedule scans with Microsoft Defender ATP for Linux
|
||||||
|
|
||||||
|
For the command line to be able to run a scan on MDATP for Linux, see [Supported Commands](https://docs.microsoft.com/windows/security/threat-protection/microsoft-defender-atp/linux-resources#supported-commands).
|
||||||
|
|
||||||
|
Linux (and Unix) have the tool called **crontab** (similar to Task Scheduler) to be able to run scheduled tasks.
|
||||||
|
|
||||||
|
## Pre-requisite
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> To get a list of all the time zones, run the following command:
|
||||||
|
> timedatectl list-timezones
|
||||||
|
|
||||||
|
> Examples for timezones:
|
||||||
|
> America/Los_Angeles
|
||||||
|
> America/New_York
|
||||||
|
> America/Chicago
|
||||||
|
> America/Denver
|
||||||
|
|
||||||
|
## To set the Cron job
|
||||||
|
|
||||||
|
**To backup crontab entries:**
|
||||||
|
|
||||||
|
sudo crontab -l > /var/tmp/cron_backup_200919.dat
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Where 200919 == YRMMDD
|
||||||
|
|
||||||
|
> TIP:
|
||||||
|
> Do this before you edit or remove.
|
||||||
|
> To edit the crontab and add a new job as a root user:
|
||||||
|
> sudo crontab -e
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The default editor is VIM
|
||||||
|
|
||||||
|
You might see:
|
||||||
|
|
||||||
|
0 * * * * /etc/opt/microsoft/mdatp/logrorate.sh
|
||||||
|
|
||||||
|
Press “Insert”
|
||||||
|
|
||||||
|
Add the following entries:
|
||||||
|
|
||||||
|
CRON_TZ=America/Los_Angeles
|
||||||
|
|
||||||
|
0 2 * * sat /bin/mdatp scan quick > ~/mdatp_cron_job.log
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> In this example, we are setting it to 00 minutes, 2 a.m. (hour in 24 hour format), any day of the month, any month, on Saturdays. Meaning it will run Saturdays at 2:00 a.m. Pacific (UTC –8)
|
||||||
|
|
||||||
|
Press “Esc”
|
||||||
|
|
||||||
|
Type “:wq” w/o the double quotes.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> w == write, q == quit
|
||||||
|
|
||||||
|
To view your cron jobs, type sudo crontab -l
|
||||||
|
|
||||||
|
:::image type="content" source="../../../../images/linux-mdatp.png" alt-text="linux mdatp":::
|
||||||
|
|
||||||
|
**How to inspect cron job runs:**
|
||||||
|
|
||||||
|
sudo grep mdatp /var/log/cron
|
||||||
|
|
||||||
|
**How to inspect the mdatp_cron_job.log**
|
||||||
|
sudo nano mdatp_cron_job.log
|
||||||
|
|
||||||
|
## For those of you that are using Ansible, Chef, or Puppet]
|
||||||
|
### How to set cron jobs in Ansible:
|
||||||
|
|
||||||
|
cron – Manage cron.d and crontab entries
|
||||||
|
|
||||||
|
See [https://docs.ansible.com/ansible/latest/modules/cron_module.html](https://docs.ansible.com/ansible/latest/modules/cron_module.html)
|
||||||
|
|
||||||
|
### How to set crontabs in Chef:
|
||||||
|
cron resource
|
||||||
|
|
||||||
|
See [https://docs.chef.io/resources/cron/](https://docs.chef.io/resources/cron/)
|
||||||
|
|
||||||
|
### How to set cron jobs in Puppet:
|
||||||
|
Resource Type: cron
|
||||||
|
|
||||||
|
See [https://puppet.com/docs/puppet/5.5/types/cron.html](https://puppet.com/docs/puppet/5.5/types/cron.html)
|
||||||
|
|
||||||
|
Automating with Puppet: Cron jobs and scheduled tasks
|
||||||
|
|
||||||
|
See [https://puppet.com/blog/automating-puppet-cron-jobs-and-scheduled-tasks/](https://puppet.com/blog/automating-puppet-cron-jobs-and-scheduled-tasks/)
|
||||||
|
|
||||||
|
## Additional information:
|
||||||
|
|
||||||
|
**To get help with crontab**
|
||||||
|
man crontab
|
||||||
|
|
||||||
|
**To get a list of crontab file of the current user:**
|
||||||
|
|
||||||
|
crontab -l
|
||||||
|
|
||||||
|
**To get a list of crontab file of another user:**
|
||||||
|
|
||||||
|
crontab -u username -l
|
||||||
|
|
||||||
|
**To backup crontab entries:**
|
||||||
|
|
||||||
|
crontab -l > /var/tmp/cron_backup.dat
|
||||||
|
> [!TIP]
|
||||||
|
> Do this before you edit or remove.
|
||||||
|
|
||||||
|
**To restore crontab entries:**
|
||||||
|
|
||||||
|
crontab /var/tmp/cron_backup.dat
|
||||||
|
|
||||||
|
**To edit the crontab and add a new job as a root user:**
|
||||||
|
|
||||||
|
Sudo crontab -e
|
||||||
|
|
||||||
|
**To edit the crontab and add a new job:**
|
||||||
|
|
||||||
|
crontab -e
|
||||||
|
|
||||||
|
**To edit other user’s crontab entries:**
|
||||||
|
|
||||||
|
crontab -u username -e
|
||||||
|
|
||||||
|
**To remove all crontab entries:**
|
||||||
|
|
||||||
|
crontab -r
|
||||||
|
|
||||||
|
**To remove other user’s crontab entries:**
|
||||||
|
|
||||||
|
crontab -u username -r
|
||||||
|
|
||||||
|
**Explanation**:
|
||||||
|
|
||||||
|
+—————- minute (values: 0 – 59) (special characters: , – * /)
|
||||||
|
|
||||||
|
| +————- hour (values: 0 – 23) (special characters: , – * /)
|
||||||
|
|
||||||
|
| | +———- day of month (values: 1 – 31) (special characters: , – * / L W C)
|
||||||
|
|
||||||
|
| | | +——- month (values: 1 – 12) (special characters: ,- * / )
|
||||||
|
| | | | +—- day of week (values: 0 – 6) (Sunday=0 or 7) (special characters: , – * / L W C)
|
||||||
|
| | | | |
|
||||||
|
* * * * * command to be executed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[!INCLUDE [Microsoft 365 Defender rebranding](../../includes/microsoft-defender.md)]
|
||||||
|
|
||||||
|
|
||||||
|
While you can start a threat scan at any time with Microsoft Defender ATP, your enterprise might benefit from scheduled or timed scans. For example, you can schedule a scan to run at the beginning of every workday or week.
|
||||||
|
|
||||||
|
## Schedule a scan with *launchd*
|
||||||
|
|
||||||
|
You can create a scanning schedule using the *launchd* daemon on a macOS device.
|
||||||
|
|
||||||
|
1. The following code shows the schema you need to use to schedule a scan. Open a text editor and use this example as a guide for your own scheduled scan file.
|
||||||
|
|
||||||
|
For more information on the *.plist* file format used here, see [About Information Property List Files](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html) at the official Apple developer website.
|
||||||
|
|
||||||
|
```XML
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||||
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>com.microsoft.wdav.schedquickscan</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>sh</string>
|
||||||
|
<string>-c</string>
|
||||||
|
<string>/usr/local/bin/mdatp --scan --quick</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>StartCalendarInterval</key>
|
||||||
|
<dict>
|
||||||
|
<key>Day</key>
|
||||||
|
<integer>3</integer>
|
||||||
|
<key>Hour</key>
|
||||||
|
<integer>2</integer>
|
||||||
|
<key>Minute</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>Weekday</key>
|
||||||
|
<integer>5</integer>
|
||||||
|
</dict>
|
||||||
|
<key>StartInterval</key>
|
||||||
|
<integer>604800</integer>
|
||||||
|
<key>WorkingDirectory</key>
|
||||||
|
<string>/usr/local/bin/</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Save the file as *com.microsoft.wdav.schedquickscan.plist*.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> To run a full scan instead of a quick scan, change line 12, `<string>/usr/local/bin/mdatp --scan --quick</string>`, to use the `--full` option instead of `--quick` (i.e. `<string>/usr/local/bin/mdatp --scan --full</string>`) and save the file as *com.microsoft.wdav.sched**full**scan.plist* instead of *com.microsoft.wdav.sched**quick**scan.plist*.
|
||||||
|
|
||||||
|
3. Open **Terminal**.
|
||||||
|
4. Enter the following commands to load your file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
launchctl load /Library/LaunchDaemons/<your file name.plist>
|
||||||
|
launchctl start <your file name>
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Your scheduled scan will run at the date, time, and frequency you defined in your p-list. In the example, the scan runs at 2:00 AM every Friday.
|
||||||
|
|
||||||
|
Note that the `StartInterval` value is in seconds, indicating that scans should run every 604,800 seconds (one week), while the `Weekday` value of `StartCalendarInterval` uses an integer to indicate the fifth day of the week, or Friday.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> Agents executed with *launchd* will not run at the scheduled time while the device is asleep. They will instead run once the device resumes from sleep mode.
|
||||||
|
>
|
||||||
|
> If the device is turned off, the scan will run at the next scheduled scan time.
|
||||||
|
|
||||||
|
## Schedule a scan with Intune
|
||||||
|
|
||||||
|
You can also schedule scans with Microsoft Intune. The [runMDATPQuickScan.sh](https://github.com/microsoft/shell-intune-samples/tree/master/Misc/MDATP#runmdatpquickscansh) shell script available at [Scripts for Microsoft Defender Advanced Threat Protection](https://github.com/microsoft/shell-intune-samples/tree/master/Misc/MDATP) will persist when the device resumes from sleep mode.
|
||||||
|
|
||||||
|
See [Use shell scripts on macOS devices in Intune](https://docs.microsoft.com/mem/intune/apps/macos-shell-scripts) for more detailed instructions on how to use this script in your enterprise.
|
Loading…
x
Reference in New Issue
Block a user