Wdrażanie Ochrona punktu końcowego w usłudze Microsoft Defender na Linux za pomocą platformy Puppet

Usługę Defender for Endpoint można wdrożyć na Linux przy użyciu różnych narzędzi i metod. W tym artykule opisano sposób wdrażania usługi Defender for Endpoint na Linux przy użyciu platformy Puppet. Aby użyć innej metody, zapoznaj się z sekcją Powiązana zawartość.

Ważna

Jeśli chcesz uruchomić wiele rozwiązań zabezpieczeń obok siebie, zobacz Zagadnienia dotyczące wydajności, konfiguracji i obsługi.

Być może skonfigurowano już wzajemne wykluczenia zabezpieczeń dla urządzeń dołączonych do Ochrona punktu końcowego w usłudze Microsoft Defender. Jeśli nadal musisz ustawić wzajemne wykluczenia, aby uniknąć konfliktów, zobacz Dodawanie Ochrona punktu końcowego w usłudze Microsoft Defender do listy wykluczeń dla istniejącego rozwiązania.

Ważna

Ten artykuł zawiera informacje o narzędziach innych firm. Zapewnia to pomoc w ukończeniu scenariuszy integracji, jednak firma Microsoft nie zapewnia obsługi rozwiązywania problemów z narzędziami innych firm.
Skontaktuj się z dostawcą innej firmy w celu uzyskania pomocy technicznej.

Wymagania wstępne i wymagania systemowe

Przed rozpoczęciem zobacz Wymagania wstępne dotyczące usługi Defender for Endpoint w Linux, aby zapoznać się z opisem wymagań wstępnych i wymagań systemowych.

Ponadto w przypadku wdrażania platformy Puppet musisz znać zadania administracyjne platformy Puppet, skonfigurować platformę Puppet i wiedzieć, jak wdrażać pakiety. Platforma Puppet ma wiele sposobów wykonania tego samego zadania. W tych instrukcjach założono dostępność obsługiwanych modułów Puppet, takich jak apt , aby ułatwić wdrożenie pakietu. Twoja organizacja może używać innego przepływu pracy. Aby uzyskać więcej informacji, zobacz dokumentację platformy Puppet.

Pobieranie pakietu dołączania

Pobierz pakiet dołączania z portalu Microsoft Defender.

Ostrzeżenie

Ponowne pakowanie pakietu instalacyjnego usługi Defender for Endpoint nie jest obsługiwanym scenariuszem. Może to negatywnie wpłynąć na integralność produktu i prowadzić do niekorzystnych wyników, w tym między innymi do wyzwalania niestosowania alertów i aktualizacji powodujących naruszenie.

  1. Zaloguj się do portalu Microsoft Defender, a następnie przejdź do pozycjiUstawienia>systemu>Punkty końcowe>Dołączanie urządzeń dozarządzania urządzeniami>.

  2. W pierwszym menu rozwijanym wybierz pozycję Linux Server jako system operacyjny. W drugim menu rozwijanym wybierz preferowane narzędzie do zarządzania konfiguracją Linux jako metodę wdrażania.

  3. Wybierz pozycję Pobierz pakiet dołączania i zapisz plik jako WindowsDefenderATPOnboardingPackage.zip.

  4. Wyodrębnij zawartość archiwum za pomocą następującego polecenia:

    unzip WindowsDefenderATPOnboardingPackage.zip
    

    Oczekiwane dane wyjściowe to:

    Archive:  WindowsDefenderATPOnboardingPackage.zip
    inflating: mdatp_onboard.json
    

Tworzenie struktury katalogów

Musisz utworzyć strukturę katalogów do wdrażania usługi Defender for Endpoint na Linux na urządzeniach zarządzanych przez serwer Puppet. W tym przykładzie użyto modułów apt i yumrepo dostępnych w puppetlabsprogramie i przyjęto założenie, że moduły są zainstalowane na serwerze Puppet.

  1. W folderze modules w przypadku instalacji platformy Puppet utwórz foldery install_mdatp/files i install_mdatp/manifests. Folder modules zazwyczaj znajduje się na /etc/puppetlabs/code/environments/production/modules serwerze Puppet.

  2. Skopiuj mdatp_onboard.json utworzony wcześniej plik do folderu install_mdatp/files .

  3. init.pp Utwórz plik zawierający instrukcje wdrażania:

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

Tworzenie manifestu platformy Puppet

Istnieją dwa sposoby tworzenia pliku manifestu:

  • Użyj skryptu instalatora; Lub
  • Skonfiguruj repozytoria ręcznie.

Tworzenie manifestu w celu wdrożenia usługi Defender for Endpoint przy użyciu skryptu instalatora

  1. Pobierz skrypt powłoki bash instalatora. Pobierz skrypt powłoki bash instalatora z repozytorium Microsoft GitHub lub użyj następującego polecenia, aby go pobrać.
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. Dodaj następującą zawartość do install_mdatp/manifests/init.pp pliku. Możesz również pobrać plik bezpośrednio z usługi 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
  }

}

Uwaga

Skrypt instalatora obsługuje również inne parametry, takie jak kanał, ochrona w czasie rzeczywistym, wersja, instalacja lokalizacji niestandardowej itp. Aby wybrać opcję z listy dostępnych opcji, sprawdź pomoc: ./mde_installer.sh --help

Tworzenie manifestu w celu wdrożenia usługi Defender for Endpoint przez ręczne skonfigurowanie repozytoriów

Dodaj następującą zawartość do install_mdatp/manifests/init.pp pliku. Możesz również pobrać go z usługi 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.")}
  }
}

Uwaga

Usługę Defender for Endpoint na Linux można wdrożyć z jednego z następujących kanałów: insiders-fast, insiders-slow, prod. Każdy kanał odpowiada Linux repozytorium oprogramowania. Wybór kanału określa typ i częstotliwość aktualizacji oferowanych urządzeniu. Urządzenia w insiders-fast systemie to pierwsze urządzenia, które otrzymują aktualizacje i nowe funkcje w wersji zapoznawczej, a następnie insiders-slow, i wreszcie .prod Zanotuj dystrybucję i wersję oraz zidentyfikuj najbliższy wpis w obszarze https://packages.microsoft.com/config/[distro]/[version].

Ostrzeżenie

Przełączenie kanału po początkowej instalacji wymaga ponownej instalacji produktu. Aby przełączyć kanał produktu: odinstaluj istniejący pakiet, skonfiguruj ponownie urządzenie do korzystania z nowego kanału i wykonaj kroki opisane w tym dokumencie, aby zainstalować pakiet z nowej lokalizacji.

Dołącz manifest do pliku site.pp

Uwzględnij site.pp manifest opisany wcześniej w tym artykule w pliku:

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

Zarejestrowane urządzenia agenta okresowo sondują serwer Puppet Server i instalują nowe profile konfiguracji i zasady natychmiast po ich wykryciu.

Monitorowanie wdrożenia platformy Puppet

Na urządzeniu agenta możesz również sprawdzić stan wdrożenia, uruchamiając następujące polecenie:

mdatp health
...
healthy                                 : true
health_issues                           : []
licensed                                : true
org_id                                  : "[your organization identifier]"
...
  • healthy: Upewnij się, że usługa Defender dla punktu końcowego została pomyślnie wdrożona i działa.
  • health_issues: określa problemy, które spowodowały, że stan dobrej kondycji stał się fałszywy.
  • licensed: potwierdza, że urządzenie jest powiązane z twoją organizacją.
  • orgId: identyfikator organizacji usługi Defender for Endpoint.

Rozwiąż problemy z instalacją

Jeśli wystąpią problemy z instalacją, w celu samodzielnego rozwiązywania problemów wykonaj następujące kroki:

  1. Aby uzyskać informacje na temat znajdowania dziennika wygenerowanego automatycznie po wystąpieniu błędu instalacji, zobacz Problemy z instalacją dziennika.

  2. Aby uzyskać informacje o typowych problemach z instalacją, zobacz Problemy z instalacją.

  3. Jeśli kondycja urządzenia to false, zobacz Problemy z kondycją agenta punktu końcowego w usłudze Defender for Endpoint.

  4. W przypadku problemów z wydajnością produktu zobacz Rozwiązywanie problemów z wydajnością.

  5. Aby uzyskać informacje o problemach z serwerem proxy i łącznością, zobacz Rozwiązywanie problemów z łącznością w chmurze.

Aby uzyskać pomoc techniczną od firmy Microsoft, otwórz bilet pomocy technicznej i podaj pliki dziennika utworzone przy użyciu analizatora klienta.

Jak skonfigurować zasady dla Microsoft Defender na Linux

Aby skonfigurować ustawienia oprogramowania antywirusowego i EDR, zobacz następujące artykuły:

Uaktualnienia systemu operacyjnego

Podczas uaktualniania systemu operacyjnego do nowej wersji głównej należy najpierw odinstalować usługę Defender for Endpoint na Linux, zainstalować uaktualnienie, a następnie ponownie skonfigurować usługę Defender dla punktu końcowego na Linux na urządzeniu.

Dezinstalacji

Utwórz moduł remove_mdatp podobny do install_mdatp następującego w init.pp pliku:

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