Puppet을 사용하여 Linux에 엔드포인트용 Microsoft Defender 배포

적용 대상:

엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.

이 문서에서는 Puppet을 사용하여 Linux에서 엔드포인트용 Defender를 배포하는 방법을 설명합니다. 성공적으로 배포하려면 다음 작업을 모두 완료해야 합니다.

중요

이 문서에는 타사 도구에 대한 정보가 포함되어 있습니다. 통합 시나리오를 완료하는 데 도움이 되도록 제공되지만 Microsoft는 타사 도구에 대한 문제 해결 지원을 제공하지 않습니다.
지원을 받으려면 타사 공급업체에 문의하세요.

필수 구성 요소 및 시스템 요구 사항

현재 소프트웨어 버전의 필수 구성 요소 및 시스템 요구 사항에 대한 설명은 Linux의 엔드포인트용 defender 기본 페이지를 참조하세요.

또한 Puppet 배포의 경우 Puppet 관리 작업을 잘 알고, Puppet을 구성하고, 패키지를 배포하는 방법을 알고 있어야 합니다. Puppet에는 동일한 작업을 완료하는 여러 가지 방법이 있습니다. 이러한 지침에서는 패키지를 배포하는 데 도움이 되는 apt 와 같이 지원되는 Puppet 모듈의 가용성을 가정합니다. organization 다른 워크플로를 사용할 수 있습니다. 자세한 내용은 Puppet 설명서를 참조하세요 .

온보딩 패키지 다운로드

Microsoft Defender 포털에서 온보딩 패키지를 다운로드합니다.

경고

엔드포인트용 Defender 설치 패키지를 다시 패키징하는 것은 지원되는 시나리오가 아닙니다. 이렇게 하면 제품의 무결성에 부정적인 영향을 미칠 수 있으며 변조 경고 및 업데이트가 적용되지 않는 것을 포함하지만 이에 국한되지 않는 부정적인 결과를 초래할 수 있습니다.

  1. Microsoft Defender 포털에서 설정 > 엔드포인트 > 디바이스 관리 > 온보딩으로 이동합니다.

  2. 첫 번째 드롭다운 메뉴에서 Linux Server 를 운영 체제로 선택합니다. 두 번째 드롭다운 메뉴에서 기본 Linux 구성 관리 도구를 배포 방법으로 선택합니다.

  3. 온보딩 패키지 다운로드를 선택합니다. 파일을 WindowsDefenderATPOnboardingPackage.zip 저장합니다.

    온보딩된 패키지를 다운로드하는 옵션

  4. 명령 프롬프트에서 파일이 있는지 확인합니다.

    ls -l
    
    total 8
    -rw-r--r-- 1 test  staff  4984 Feb 18 11:22 WindowsDefenderATPOnboardingPackage.zip
    
  5. 보관 파일의 내용을 추출합니다.

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

Puppet 매니페스트 만들기

Puppet 서버에서 관리하는 디바이스에 Linux의 엔드포인트용 Defender를 배포하기 위한 Puppet 매니페스트를 만들어야 합니다. 이 예제에서는 puppetlabs에서 사용할 수 있는 aptyumrepo 모듈을 사용하고, 모듈이 Puppet 서버에 설치되었다고 가정합니다.

Puppet 설치의 모듈 폴더 아래에 install_mdatp/파일install_mdatp/매니페스트 폴더를 만듭니다. 이 폴더는 일반적으로 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

의 내용 install_mdatp/manifests/init.pp

Linux의 엔드포인트용 Defender는 다음 채널(아래 는 [채널]로 표시됨) 중 하나에서 배포할 수 있습니다. 참가자는 빠르게, 참가자는 느리거나, prod입니다. 이러한 각 채널은 Linux 소프트웨어 리포지토리에 해당합니다.

채널의 선택은 디바이스에 제공되는 업데이트의 유형과 빈도를 결정합니다. 참가자 속도가 빠른 디바이스는 업데이트 및 새로운 기능을 받은 첫 번째 장치이며, 나중에 는 내부자가 느리 고 마지막으로 prod에 의해 뒤따릅니다.

새 기능을 미리 보고 초기 피드백을 제공하려면 참가자를 빠르게 사용하거나 참가자 속도가 느리도록 엔터프라이즈의 일부 디바이스를 구성하는 것이 좋습니다.

경고

초기 설치 후 채널을 전환하려면 제품을 다시 설치해야 합니다. 제품 채널을 전환하려면 기존 패키지를 제거하고 새 채널을 사용하도록 디바이스를 다시 구성하고 이 문서의 단계에 따라 새 위치에서 패키지를 설치합니다.

배포 및 버전을 확인하고 에서 https://packages.microsoft.com/config/[distro]/가장 가까운 항목을 식별합니다.

아래 명령에서 [배포판][버전] 을 식별한 정보로 바꿉니다.

참고

RedHat, Oracle Linux, Amazon Linux 2 및 CentOS 8의 경우 [배포판] 을 'rhel'로 대체합니다.

# Puppet manifest to install Microsoft Defender for Endpoint on Linux.
# @param channel The release channel based on your environment, insider-fast or prod.
# @param distro The Linux distribution in lowercase. In case of RedHat, Oracle Linux, Amazon Linux 2, and CentOS 8, the distro variable should be 'rhel'.
# @param version The Linux distribution release number, e.g. 7.4.

class install_mdatp (
  $channel = 'insiders-fast',
  $distro = undef,
  $version = undef
) {
  case $facts['os']['family'] {
    'Debian' : {
      $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',
        },
      }
    }
    'RedHat' : {
      yumrepo { 'microsoftpackages' :
        baseurl  => "https://packages.microsoft.com/${distro}/${version}/${channel}",
        descr    => "packages-microsoft-com-prod-${channel}",
        enabled  => 1,
        gpgcheck => 1,
        gpgkey   => 'https://packages.microsoft.com/keys/microsoft.asc',
      }
    }
    default : { fail("${facts['os']['family']} is currently not supported.") }
  }

  case $facts['os']['family'] {
    /(Debian|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'],
      }

      package { 'mdatp':
        ensure  => 'installed',
        require => File['/etc/opt/microsoft/mdatp/mdatp_onboard.json'],
      }
    }
    default : { fail("${facts['os']['family']} is currently not supported.") }
  }
}

배포

site.pp 파일에 위의 매니페스트를 포함합니다.

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

등록된 에이전트 디바이스는 Puppet Server를 주기적으로 폴링하고 검색되는 즉시 새 구성 프로필 및 정책을 설치합니다.

Puppet 배포 모니터링

에이전트 디바이스에서 다음을 실행하여 온보딩 상태 검사 수 있습니다.

mdatp health
...
licensed                                : true
org_id                                  : "[your organization identifier]"
...
  • licensed: 디바이스가 organization 연결되어 있는지 확인합니다.

  • orgId: 엔드포인트용 Defender organization 식별자입니다.

온보딩 상태 확인

스크립트를 만들어 디바이스가 올바르게 온보딩되었는지 검사 수 있습니다. 예를 들어 다음 스크립트는 등록된 디바이스에서 온보딩 상태 확인합니다.

mdatp health --field healthy

제품이 온보딩되어 예상대로 작동하는 경우 위의 명령이 인쇄 1 됩니다.

중요

제품이 처음으로 시작되면 최신 맬웨어 방지 정의를 다운로드합니다. 인터넷 연결에 따라 최대 몇 분 정도 걸릴 수 있습니다. 이 시간 동안 위의 명령은 의 값을 반환합니다 0.

제품이 정상 상태가 아닌 경우 종료 코드(를 통해 echo $?확인할 수 있습니다)는 문제를 나타냅니다.

  • 디바이스가 아직 온보딩되지 않은 경우 1.
  • 디먼에 대한 연결을 설정할 수 없는 경우 3입니다.

로그 설치 문제

오류가 발생할 때 설치 관리자가 자동으로 생성된 로그를 찾는 방법에 대한 자세한 내용은 로그 설치 문제를 참조하세요.

운영 체제 업그레이드

운영 체제를 새 주 버전으로 업그레이드할 때 먼저 Linux에서 엔드포인트용 Defender를 제거하고, 업그레이드를 설치하고, 마지막으로 디바이스의 Linux에서 엔드포인트용 Defender를 다시 구성해야 합니다.

제거

init.pp 파일에 다음 내용이 있는 install_mdatp 유사한 모듈 remove_mdatp 만듭니다.

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

더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.