Puppet を使用して Linux にMicrosoft Defender for Endpointをデプロイする
適用対象:
- Microsoft Defender for Endpoint Server
- サーバーのMicrosoft Defender
Defender for Endpoint を試す場合は、 無料試用版にサインアップしてください。
この記事では、Puppet を使用して Defender for Endpoint on Linux をデプロイする方法について説明します。 展開を成功させるには、次のすべてのタスクを完了する必要があります。
重要
この記事には、サード パーティ製ツールに関する情報が含まれています。 これは統合シナリオの完了に役立ちますが、Microsoft ではサード パーティ製ツールのトラブルシューティング サポートを提供していません。
サポートについては、サード パーティベンダーにお問い合わせください。
前提条件とシステム要件
前提条件とシステム要件の詳細については、「Linux でのMicrosoft Defender for Endpoint」を参照してください。
さらに、Puppet のデプロイでは、Puppet 管理タスクについて理解し、Puppet を構成し、パッケージをデプロイする方法を理解する必要があります。 Puppet には、同じタスクを完了するための多くの方法があります。 これらの手順では、パッケージのデプロイに役立つ apt など、サポートされている Puppet モジュールの可用性を前提としています。 organizationは別のワークフローを使用する場合があります。 詳細については、 Puppet のドキュメントを参照してください。
オンボーディング パッケージをダウンロードする
Microsoft Defender ポータルからオンボード パッケージをダウンロードします。
警告
Defender for Endpoint インストール パッケージの再パッケージ化は、サポートされているシナリオではありません。 これにより、製品の整合性に悪影響を及ぼし、改ざんアラートや更新プログラムの適用に失敗したトリガーなど、悪影響を及ぼす可能性があります。
Microsoft Defender ポータルで、[設定>Endpoints>Device management>Onboarding] に移動します。
最初のドロップダウン メニューで、オペレーティング システムとして [Linux サーバー] を選択します。 2 番目のドロップダウン メニューで、デプロイ方法として [お好みの Linux 構成管理ツール ] を選択します。
[オンボーディング パッケージをダウンロードする] を選択します。 ファイルを
WindowsDefenderATPOnboardingPackage.zip
として保存します。アーカイブの内容を抽出します。
unzip WindowsDefenderATPOnboardingPackage.zip
Archive: WindowsDefenderATPOnboardingPackage.zip inflating: mdatp_onboard.json
Puppet マニフェストを作成する
Puppet サーバーによって管理されているデバイスに Defender for Endpoint on Linux をデプロイするための Puppet マニフェストを作成する必要があります。 この例では、puppetlabs
から使用できるapt
モジュールとyumrepo
モジュールを使用し、モジュールが Puppet サーバーにインストールされていることを前提としています。
Puppet インストールの場合 は、modules フォルダーの下に
install_mdatp/files
フォルダーを作成し、install_mdatp/manifests
します。 modules フォルダーは通常、Puppet サーバーの/etc/puppetlabs/code/environments/production/modules
にあります。先ほど作成した
mdatp_onboard.json
ファイルをinstall_mdatp/files
フォルダーにコピーします。デプロイ手順を含む
init.pp
ファイルを作成します。pwd
/etc/puppetlabs/code/environments/production/modules
tree install_mdatp
install_mdatp ├── files │ └── mdatp_onboard.json └── manifests └── init.pp
マニフェスト ファイルを作成する
マニフェスト ファイルを作成するには、次の 2 つの方法があります。
- インストーラー スクリプトを使用します。又は
- リポジトリを手動で構成します。
インストーラー スクリプトを使用して Defender for Endpoint を展開するマニフェストを作成する
- インストーラー bash スクリプトをダウンロードします。 Microsoft GitHub リポジトリから インストーラー 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/
-
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 for Endpoint をデプロイするマニフェストを作成する
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.")}
}
}
注:
Defender for Endpoint on Linux は、 insiders-fast、insiders-slow、prod のいずれかのチャネルからデプロイできます。各チャネルは、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 for Endpoint が正常にデプロイされ、動作していることを確認します。 -
health_issues
: 正常な状態が false になる原因となった問題を示します。 -
licensed
: デバイスがorganizationに関連付けられていることを確認します。 -
orgId
: Defender for Endpoint organization識別子。
インストールに関する問題のトラブルシューティング
インストール中に問題が発生した場合は、次の自己トラブルシューティング手順を試してください。
エラーが発生したときにインストーラーによって作成される自動的に生成されたログを検索する方法の詳細については、「 ログのインストールの問題 」を参照してください。
一般的に発生する インストールの問題 の詳細については、「インストールの問題」を参照してください。
デバイスの正常性が false の場合は、エージェントの正常性に関する問題MDE参照してください
製品のパフォーマンスの問題については、「パフォーマンスの問題のトラブルシューティング、パフォーマンスチューニング」を参照してください。
プロキシと接続の問題については、「クラウド接続の問題のトラブルシューティング」を参照してください。
Microsoft からサポートを受けるためには、サポート チケットを発行し、クライアント アナライザーを使用してログ ファイルを提供します
Linux 上のMicrosoft Defenderのポリシーを構成する方法
エンドポイントでウイルス対策と EDR の設定を構成するには、次の方法を使用します。
- 使用可能な設定の詳細については、「Linux でMicrosoft Defender for Endpointの基本設定を設定する」を参照してください。
- Microsoft Defender ポータルで設定を構成するには、「セキュリティ設定の管理」を参照してください。
オペレーティング システムのアップグレード
オペレーティング システムを新しいメジャー バージョンにアップグレードするときは、まず Defender for Endpoint on Linux をアンインストールし、アップグレードをインストールしてから、デバイスで Defender for Endpoint on Linux を再構成する必要があります。
アンインストール
init.pp
ファイルに次の内容を含む、install_mdatp
に似たremove_mdatp
モジュールを作成します。
class remove_mdatp {
package { 'mdatp':
ensure => 'purged',
}
}
ヒント
さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。