共用方式為


使用 Puppet 在 Linux 上部署 適用於端點的 Microsoft Defender

適用於

想要體驗適用於端點的 Microsoft Defender 嗎? 注册免費試用版。

本文說明如何使用 Puppet 在 Linux 上部署適用於端點的 Defender。 成功部署需要完成下列所有工作:

重要事項

本文包含第三方工具的相關信息。 這是為了協助完成整合案例而提供,不過,Microsoft不會提供第三方工具的疑難解答支援。
請連絡第三方廠商以取得支援。

必要條件和系統需求

如需必要條件和系統需求的說明,請參閱 Linux 上的 適用於端點的 Microsoft Defender

此外,針對 Puppet 部署,您必須熟悉 Puppet 系統管理工作、已設定 Puppet,以及知道如何部署套件。 Puppet 有許多方法可以完成相同的工作。 這些指示假設支援的 Puppet 模組可供使用,例如協助部署套件的 apt 。 您的組織可能會使用不同的工作流程。 如需詳細資訊,請參閱 Puppet 檔

下載上線套件

從入口網站下載上線套件 Microsoft Defender。

警告

不支援重新封裝適用於端點的Defender安裝套件。 這樣做可能會對產品的完整性造成負面影響,並導致不良結果,包括但不限於觸發竄改警示和無法套用更新。

  1. Microsoft Defender 入口網站中,移至 [設定>端點>裝置管理>上線]

  2. 在第一個下拉功能表中,選取 [Linux Server ] 作為操作系統。 在第二個下拉功能表中,選 取 [您慣用的Linux組態管理工具 ] 作為部署方法。

  3. 選取 [下載上線套件]。 將檔案儲存為 WindowsDefenderATPOnboardingPackage.zip

    下載已上線套件的選項。

  4. 擷取封存的內容。

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

建立 Puppet 指令清單

您必須建立 Puppet 指令清單,以將適用於 Linux 端點的 Defender 部署到 Puppet 伺服器所管理的裝置。 此範例會使用 可從 puppetlabs取得的 aptyumrepo 模組,並假設模組已安裝在您的 Puppet 伺服器上。

  1. 如果您的 Puppet 安裝,請在 modules 資料夾底下建立 資料夾 install_mdatp/filesinstall_mdatp/manifestsmodules 資料夾通常位於 /etc/puppetlabs/code/environments/production/modules Puppet 伺服器上。

  2. 將稍早建立的mdatp_onboard.jsoninstall_mdatp/files檔案複製到資料夾。

  3. 建立 init.pp 包含部署指示的檔案:

    pwd
    
    /etc/puppetlabs/code/environments/production/modules
    
    tree install_mdatp
    
    install_mdatp
    ├── files
    │   └── mdatp_onboard.json
    └── manifests
        └── init.pp
    

建立指令清單檔案

有兩種方式可以建立指令清單檔:

  • 使用安裝程式文稿;或
  • 手動設定您的存放庫。

建立指令清單,以使用安裝程式腳本部署適用於端點的 Defender

  1. 下載安裝程式bash腳本。 從 GitHub 存放庫Microsoft 提取安裝程式 bash 腳本 ,或使用下列命令下載它。
wget https://raw.githubusercontent.com/microsoft/mdatp-xplat/refs/heads/master/linux/installation/mde_installer.sh /etc/puppetlabs/code/environments/production/modules/install_mdatp/files/
  1. 將下列內容新增至 install_mdatp/manifests/init.pp 檔案。 您也可以直接從 GitHub 下載檔

# Puppet manifest to install Microsoft Defender for Endpoint on Linux.
# @param channel The release channel based on your environment, insider-fast or prod.

class install_mdatp (
  $channel = 'prod',
) {
  # Ensure that the directory /tmp/mde_install exists
  file { '/tmp/mde_install':
    ensure => directory,
    mode   => '0755',
  }

  # Copy the installation script to the destination
  file { '/tmp/mde_install/mde_installer.sh':
    ensure => file,
    source => 'puppet:///modules/install_mdatp/mde_installer.sh',
    mode   => '0777',
  }

  # Copy the onboarding script to the destination
  file { '/tmp/mde_install/mdatp_onboard.json':
    ensure => file,
    source => 'puppet:///modules/install_mdatp/mdatp_onboard.json',
    mode   => '0777',
  }

  # Install MDE on the host using an external script
  exec { 'install_mde':
    command     => "/tmp/mde_install/mde_installer.sh --install --channel ${channel} --onboard /tmp/mde_install/mdatp_onboard.json",
    path        => '/bin:/usr/bin',
    user        => 'root',
    logoutput   => true,
    require     => File['/tmp/mde_install/mde_installer.sh', '/tmp/mde_install/mdatp_onboard.json'], # Ensure the script is copied before running the installer
  }

}

注意事項

安裝程式腳本也支援其他參數,例如通道、即時保護、版本等。若要從可用選項清單中選取,請檢查說明。 ./mde_installer.sh --help

建立指令清單,以手動設定存放庫來部署適用於端點的Defender

將下列內容新增至 install_mdatp/manifests/init.pp 檔案。 您也可以從 GitHub 下載。

# Puppet manifest to install Microsoft Defender for Endpoint on Linux.
# @param channel The release channel based on your environment, insider-fast or prod.

class install_mdatp::configure_debian_repo (
  String $channel,
  String $distro,
  String $version ) {
  # Configure the APT repository for Debian-based systems

  $release = $channel ? {
    'prod'  => $facts['os']['distro']['codename'],
    default => $channel
    }
  
  apt::source { 'microsoftpackages':
    location => "https://packages.microsoft.com/${distro}/${version}/prod",
    release  => $release,
    repos    => 'main',
    key      => {
      'id'     => 'BC528686B50D79E339D3721CEB3E94ADBE1229CF',
      'server' => 'keyserver.ubuntu.com',
    },
  }
}

class install_mdatp::configure_redhat_repo (
  String $channel,
  String $distro,
  String $version) {
  # Configure the Yum repository for RedHat-based systems
  
  yumrepo { 'microsoftpackages':
    baseurl  => "https://packages.microsoft.com/rhel/${version}/prod",
    descr    => 'packages-microsoft-com-prod',
    enabled  => 1,
    gpgcheck => 1,
    gpgkey   => 'https://packages.microsoft.com/keys/microsoft.asc',
  }
}

class install_mdatp::install {
  # Common configurations for both Debian and RedHat
  
  file { ['/etc/opt', '/etc/opt/microsoft', '/etc/opt/microsoft/mdatp']:
    ensure  => directory,
    owner   => 'root',
    group   => 'root',
    mode    => '0755',
  }

  file { '/etc/opt/microsoft/mdatp/mdatp_onboard.json':
    source  => 'puppet:///modules/install_mdatp/mdatp_onboard.json',
    owner   => 'root',
    group   => 'root',
    mode    => '0600',
    require => File['/etc/opt/microsoft/mdatp'],
  }

  # Install mdatp package
  package { 'mdatp':
    ensure  => installed,
    require => [
      File['/etc/opt/microsoft/mdatp/mdatp_onboard.json'],
    ],
  }
}


class install_mdatp (
  $channel = 'prod'
) {
  # Include the appropriate class based on the OS family
  
  $distro = downcase($facts['os']['name'])
  $version = $facts['os']['release']['major']
  
  case $facts['os']['family'] {
    'Debian': {
      class { 'install_mdatp::configure_debian_repo':
        channel => 'prod',
        distro => $distro,
        version => $version
        } -> class { 'install_mdatp::install': }
    }
    'RedHat': {
      class { 'install_mdatp::configure_redhat_repo':
        channel => 'prod',
        distro => $distro,
        version => $version,
        } -> class { 'install_mdatp::install': }
    }
    default: { fail("${facts['os']['family']} is currently not supported.")}
  }
}

注意事項

Linux 上適用於端點的 Defender 可以從下列其中一個通道部署: 測試人員快速、測試人員速度緩慢、專業。每個通道都會對應至 Linux 軟體存放庫。 通道的選擇會決定提供給您裝置的更新類型和頻率。 中的insiders-fast裝置是第一個在預覽中接收更新和新功能的裝置,後面接著 insiders-slow,最後是 。prod

請記下您的散發套件和版本,並識別下最接近的專案 https://packages.microsoft.com/config/[distro]/[version]

警告

在初始安裝之後切換通道需要重新安裝產品。 若要切換產品通道:卸載現有的套件,請將裝置重新設定為使用新通道,並遵循本檔中的步驟,從新位置安裝套件。

在site.pp檔案內包含指令清單

在檔案 site.pp 中包含本文稍早所述的指令清單:

cat /etc/puppetlabs/code/environments/production/manifests/site.pp
node "default" {
    include install_mdatp
}

註冊的代理程式裝置會定期輪詢 Puppet Server,並在偵測到新的組態配置檔和原則時立即安裝它們。

監視 Puppet 部署

在代理程式裝置上,您也可以執行下列命令來檢查部署狀態:

mdatp health
...
healthy                                 : true
health_issues                           : []
licensed                                : true
org_id                                  : "[your organization identifier]"
...
  • healthy:確認適用於端點的Defender已成功部署並運作。
  • health_issues:說明導致狀況良好狀態變成 false 的問題。
  • licensed:確認裝置已系結至您的組織。
  • orgId:適用於端點的Defender組織標識碼。

安裝問題的疑難排解

如果您在安裝期間遇到問題,請嘗試下列自我疑難解答步驟:

  1. 如需有關如何尋找安裝程式在錯誤發生時所建立之自動產生的記錄檔的詳細資訊,請參閱記錄 安裝問題

  2. 如需常見安裝問題的詳細資訊,請參閱安裝問題

  3. 如果裝置的健康情況為 false,請參閱 MDE 代理程式健康情況問題

  4. 如需產品效能問題,請參閱 針對效能問題進行疑難解答效能微調

  5. 如需 Proxy 和連線問題,請參閱 針對雲端連線問題進行疑難解答

若要從Microsoft取得支援,請提出支援票證,並使用用戶端分析器提供記錄檔

如何在Linux上設定 Microsoft Defender的原則

您可以使用下列方法,在端點上設定防病毒軟體和 EDR 設定:

操作系統升級

將操作系統升級至新的主要版本時,您必須先卸載 Linux 上的適用於端點的 Defender、安裝升級,然後在您的裝置上重新設定適用於端點的 Defender。

卸載

在 檔案中init.pp建立類似install_mdatp下列內容的模組remove_mdatp

class remove_mdatp {
    package { 'mdatp':
        ensure => 'purged',
    }
}

提示

想要深入了解? Engage 技術社群中的Microsoft安全性社群:適用於端點的 Microsoft Defender 技術社群。