Ansible을 사용하여 Linux에 엔드포인트용 Microsoft Defender 배포
적용 대상:
- 엔드포인트 서버용 Microsoft Defender
- 서버용 Microsoft Defender
엔드포인트용 Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.
이 문서에서는 Ansible을 사용하여 Linux에서 엔드포인트용 Defender를 배포하는 방법을 설명합니다. 성공적으로 배포하려면 다음 작업을 모두 완료해야 합니다.
- 필수 구성 요소 및 시스템 요구 사항
- 온보딩 패키지 다운로드
- Ansible에서 mde_installer.sh 사용하여 Linux에서 엔드포인트용 Defender 배포
- 리포지토리를 수동으로 구성하여 Ansible을 사용하여 Linux에서 엔드포인트용 Defender 배포
중요
이 문서에는 타사 도구에 대한 정보가 포함되어 있습니다. 통합 시나리오를 완료하는 데 도움이 되도록 제공되지만 Microsoft는 타사 도구에 대한 문제 해결 지원을 제공하지 않습니다.
지원을 받으려면 타사 공급업체에 문의하세요.
소개
Ansible을 사용하여 Linux 서버에 엔드포인트용 Microsoft Defender 배포하여 대규모 머신에 대한 배포 프로세스를 자동화합니다. 자동화하는 두 가지 방법은 다음과 같습니다.
설치 관리자 스크립트를 사용합니다(권장). 이 메서드는 자동화 프로세스를 크게 간소화하고 엔드포인트용 Defender 에이전트를 설치하고 다른 배포판에 대해 별도로 구성할 필요 없이 몇 단계만 사용하여 디바이스를 Microsoft Defender 포털에 온보딩하는 데 도움이 됩니다.
각 배포판에 대해 리포지토리를 수동으로 구성합니다. 이 방법을 사용하면 리포지토리를 수동으로 구성하고, 에이전트를 설치하고, 각 배포판에 대해 디바이스를 온보딩하여 배포 프로세스를 자동화할 수 있습니다. 이 메서드는 배포 프로세스에 대한 보다 세부적인 제어를 제공합니다.
두 메서드 모두에 적용할 수 있는 필수 구성 요소 및 시스템 요구 사항
시작하기 전에 필수 구성 요소 및 시스템 요구 사항에 대한 설명은 Linux의 엔드포인트용 defender 기본 페이지를 참조하세요.
또한 Ansible 배포의 경우 Ansible 관리 작업에 익숙하고, Ansible을 구성하고, 플레이북 및 작업을 배포하는 방법을 알고 있어야 합니다. Ansible에는 동일한 작업을 완료하는 여러 가지 방법이 있습니다. 이러한 지침에서는 패키지를 배포하는 데 도움이 되는 apt 및 unarchive 와 같이 지원되는 Ansible 모듈의 가용성을 가정합니다. organization 다른 워크플로를 사용할 수 있습니다. 자세한 내용은 Ansible 설명서를 참조하세요.
Ansible은 하나 이상의 컴퓨터에 설치해야 합니다(Ansible은 이 컴퓨터를 제어 노드라고 함).
SSH는 제어 노드와 모든 관리 노드(엔드포인트용 Defender가 설치된 디바이스) 간에 관리자 계정에 대해 구성해야 하며 공개 키 인증으로 구성하는 것이 좋습니다.
다음 소프트웨어는 모든 관리 노드에 설치해야 합니다.
- 컬
- python-apt(apt를 패키지 관리자로 사용하여 배포에 배포하는 경우)
모든 관리 노드는 또는 관련 파일에서 다음 형식으로
/etc/ansible/hosts
나열되어야 합니다.[servers] host1 ansible_ssh_host=10.171.134.39 host2 ansible_ssh_host=51.143.50.51
Ping 테스트:
ansible -m ping all
두 방법 모두에 적용할 수 있는 온보딩 패키지 다운로드
Microsoft Defender 포털에서 온보딩 패키지를 다운로드합니다.
경고
엔드포인트용 Defender 설치 패키지를 다시 패키징하는 것은 지원되는 시나리오가 아닙니다. 이렇게 하면 제품의 무결성에 부정적인 영향을 미칠 수 있으며 변조 경고 및 업데이트가 적용되지 않는 것을 포함하지만 이에 국한되지 않는 부정적인 결과를 초래할 수 있습니다.
Microsoft Defender 포털에서 설정>엔드포인트>디바이스 관리>온보딩으로 이동합니다.
첫 번째 드롭다운 메뉴에서 Linux Server 를 운영 체제로 선택합니다. 두 번째 드롭다운 메뉴에서 기본 Linux 구성 관리 도구를 배포 방법으로 선택합니다.
온보딩 패키지 다운로드를 선택합니다. 파일을 로
WindowsDefenderATPOnboardingPackage.zip
저장합니다.명령 프롬프트에서 파일이 있는지 확인합니다. 보관 파일의 내용을 추출합니다.
unzip WindowsDefenderATPOnboardingPackage.zip
Archive: WindowsDefenderATPOnboardingPackage.zip inflating: mdatp_onboard.json
Ansible에서 mde_installer.sh 사용하여 엔드포인트용 Defender 배포
시작하기 전에 온보딩 패키지를 다운로드하고 설치 관리자 bash 스크립트를 사용하여 Linux에서 엔드포인트용 Defender를 배포하기 위한 필수 조건을 충족해야 합니다.
설치 관리자 bash 스크립트 다운로드
Microsoft GitHub 리포지토리에서 설치 관리자 bash 스크립트 를 가져오거나 다음 명령을 사용하여 다운로드합니다.
wget https://raw.githubusercontent.com/microsoft/mdatp-xplat/refs/heads/master/linux/installation/mde_installer.sh
Ansible YAML 파일 만들기
설치 YAML 파일을 만듭니다. GitHub에서 직접 파일을 다운로드할 수도 있습니다.
- name: Install and Onboard MDE
hosts: servers
tasks:
- name: Create a directory if it does not exist
ansible.builtin.file:
path: /tmp/mde_install
state: directory
mode: '0755'
- name: Copy Onboarding script
ansible.builtin.copy:
src: "{{ onboarding_json }}"
dest: /tmp/mde_install/mdatp_onboard.json
- name: Install MDE on host
ansible.builtin.script: "{{ mde_installer_script }} --install --channel {{ channel | default('insiders-fast') }} --onboard /tmp/mde_install/mdatp_onboard.json"
register: script_output
args:
executable: sudo
- name: Display the installation output
debug:
msg: "Return code [{{ script_output.rc }}] {{ script_output.stdout }}"
- name: Display any installation errors
debug:
msg: "{{ script_output.stderr }}"
참고
설치 관리자 스크립트는 채널, 실시간 보호, 버전 등과 같은 다른 매개 변수도 지원합니다. 사용 가능한 옵션 목록에서 선택하려면 다음 명령을 통해 도움말을 검사../mde_installer.sh --help
플레이북 적용
다음 명령을 사용하여 플레이북을 적용하고 요구 사항에 따라 해당 경로와 채널을 바꿉니다.
ansible-playbook -i /etc/ansible/hosts /etc/ansible/playbooks/install_mdatp.yml --extra-vars "onboarding_json=<path to mdatp_onboard.json > mde_installer_script=<path to mde_installer.sh> channel=<channel to deploy for: insiders-fast / insiders-slow / prod> "
배포에 성공했는지 확인
Microsoft Defender 포털에서 디바이스 인벤토리를 엽니다. 디바이스가 포털에 표시되는 데 5~20분이 걸릴 수 있습니다.
엔드포인트용 Defender의 성공적인 배포 및 작동을 보장하기 위해 상태, 연결, 바이러스 백신 및 EDR 검색 테스트와 같은 검사를 포함하는 다음 설치 후 검사를 수행합니다.
- name: Run post-installation basic MDE test
hosts: myhosts
tasks:
- name: Check health
ansible.builtin.command: mdatp health --field healthy
register: health_status
- name: MDE health test failed
fail: msg="MDE is not healthy. health status => \n{{ health_status.stdout }}\nMDE deployment not complete"
when: health_status.stdout != "true"
- name: Run connectivity test
ansible.builtin.command: mdatp connectivity test
register: connectivity_status
- name: Connectivity failed
fail: msg="Connectivity failed. Connectivity result => \n{{ connectivity_status.stdout }}\n MDE deployment not complete"
when: connectivity_status.rc != 0
- name: Check RTP status
ansible.builtin.command: mdatp health --field real_time_protection_enabled
register: rtp_status
- name: Enable RTP
ansible.builtin.command: mdatp config real-time-protection --value enabled
become: yes
become_user: root
when: rtp_status.stdout != "true"
- name: Pause for 5 second to enable RTP
ansible.builtin.pause:
seconds: 5
- name: Download EICAR
ansible.builtin.get_url:
url: https://secure.eicar.org/eicar.com.txt
dest: /tmp/eicar.com.txt
- name: Pause for 5 second to detect eicar
ansible.builtin.pause:
seconds: 5
- name: Check for EICAR file
stat: path=/tmp/eicar.com.txt
register: eicar_test
- name: EICAR test failed
fail: msg="EICAR file not deleted. MDE deployment not complete"
when: eicar_test.stat.exists
- name: MDE Deployed
debug:
msg: "MDE succesfully deployed"
Linux 서버에서 엔드포인트용 Microsoft Defender 제거하는 방법
먼저 를 사용하는 제거 YAML 파일(예: /etc/ansible/playbooks/uninstall_mdatp.yml)을 만듭니다 mde_installer.sh
.
GitHub에서 직접 파일을 다운로드할 수도 있습니다.
- name: Uninstall MDE
hosts: myhosts
tasks:
- name: Uninstall MDE
ansible.builtin.script: "{{ mde_installer_script }} --remove"
register: script_output
args:
executable: sudo
- name: Display the installation output
debug:
msg: "Return code [{{ script_output.rc }}] {{ script_output.stdout }}"
- name: Display any installation errors
debug:
msg: "{{ script_output.stderr }}"
다음 명령을 실행하여 플레이북을 사용하여 엔드포인트용 Defender를 제거합니다.
ansible-playbook -i /etc/ansible/hosts /etc/ansible/playbooks/uninstall_mdatp.yml --extra-vars "mde_installer_script=<path to mde_installer.sh>"
리포지토리를 수동으로 구성하여 Ansible을 사용하여 엔드포인트용 Defender 배포
온보딩 패키지를 다운로드하고 필수 구성 요소를 충족한 후 각 Linux 배포에 대한 리포지토리를 수동으로 구성하여 엔드포인트용 Defender를 배포한 후 이 섹션의 단계를 수행합니다.
Ansible YAML 파일 만들기
플레이북 또는 작업에 기여하는 하위 작업 또는 역할 파일을 만듭니다.
온보딩 작업(
onboarding_setup.yml
)을 만듭니다.- name: Create MDATP directories file: path: /etc/opt/microsoft/mdatp/ recurse: true state: directory mode: 0755 owner: root group: root - name: Register mdatp_onboard.json stat: path: /etc/opt/microsoft/mdatp/mdatp_onboard.json register: mdatp_onboard - name: Extract WindowsDefenderATPOnboardingPackage.zip into /etc/opt/microsoft/mdatp unarchive: src: WindowsDefenderATPOnboardingPackage.zip dest: /etc/opt/microsoft/mdatp mode: 0600 owner: root group: root when: not mdatp_onboard.stat.exists
엔드포인트용 Defender 리포지토리 및 키 를
add_apt_repo.yml
추가합니다. Linux의 엔드포인트용 Defender는 다음 채널 중 하나에서 배포할 수 있습니다.-
참가자 -빠른, 내부자 느린로
[channel]
표시된, 로 표시됩니다[channel]
-
버전 이름을 사용하는 것으로
[channel]
표시된 prod( Microsoft 제품의 Linux 소프트웨어 리포지토리 참조)
각 채널은 Linux 소프트웨어 리포지토리에 해당합니다.
채널의 선택은 디바이스에 제공되는 업데이트의 유형과 빈도를 결정합니다. 참가자 속도가 빠른 디바이스는 업데이트 및 새로운 기능을 수신하는 첫 번째 장치이며, 나중에 는 내부자가 느리고 마지막으로 prod가 그 뒤를 따릅니다.
새 기능을 미리 보고 초기 피드백을 제공하려면 참가자를 빠르게 사용하거나 참가자 속도가 느리도록 엔터프라이즈의 일부 디바이스를 구성하는 것이 좋습니다.
경고
초기 설치 후 채널을 전환하려면 제품을 다시 설치해야 합니다. 제품 채널을 전환하려면 기존 패키지를 제거하고 새 채널을 사용하도록 디바이스를 다시 구성하고 이 문서의 단계에 따라 새 위치에서 패키지를 설치합니다.
-
참가자 -빠른, 내부자 느린로
배포 및 버전을 확인하고 에서
https://packages.microsoft.com/config/[distro]/
가장 가까운 항목을 식별합니다.다음 명령에서 [배포판] 및 [버전] 을 식별한 정보로 바꿉니다.
참고
Oracle Linux 및 Amazon Linux 2의 경우 [배포판] 을 "rhel"로 대체합니다. Amazon Linux 2의 경우 [버전] 을 "7"으로 대체합니다. Oracle Linux의 경우 [version] 을 Oracle Linux 버전으로 바꿉다.
- name: Add Microsoft APT key apt_key: url: https://packages.microsoft.com/keys/microsoft.asc state: present when: ansible_os_family == "Debian" - name: Add Microsoft apt repository for MDATP apt_repository: repo: deb [arch=arm64,armhf,amd64] https://packages.microsoft.com/[distro]/[version]/prod [codename] main update_cache: yes state: present filename: microsoft-[channel] when: ansible_os_family == "Debian" - name: Add Microsoft DNF/YUM key rpm_key: state: present key: https://packages.microsoft.com/keys/microsoft.asc when: ansible_os_family == "RedHat" - name: Add Microsoft yum repository for MDATP yum_repository: name: packages-microsoft-[channel] description: Microsoft Defender for Endpoint file: microsoft-[channel] baseurl: https://packages.microsoft.com/[distro]/[version]/[channel]/ gpgcheck: yes enabled: Yes when: ansible_os_family == "RedHat"
Ansible 설치 및 YAML 파일을 제거합니다.
apt 기반 배포의 경우 다음 YAML 파일을 사용합니다.
cat install_mdatp.yml
- hosts: servers tasks: - name: include onboarding tasks import_tasks: file: ../roles/onboarding_setup.yml - name: add apt repository import_tasks: file: ../roles/add_apt_repo.yml - name: Install MDATP apt: name: mdatp state: latest update_cache: yes
cat uninstall_mdatp.yml
- hosts: servers tasks: - name: Uninstall MDATP apt: name: mdatp state: absent
dnf 기반 배포의 경우 다음 YAML 파일을 사용합니다.
cat install_mdatp_dnf.yml
- hosts: servers tasks: - name: include onboarding tasks import_tasks: file: ../roles/onboarding_setup.yml - name: add apt repository import_tasks: file: ../roles/add_yum_repo.yml - name: Install MDATP dnf: name: mdatp state: latest enablerepo: packages-microsoft-[channel]
cat uninstall_mdatp_dnf.yml
- hosts: servers tasks: - name: Uninstall MDATP dnf: name: mdatp state: absent
플레이북 적용
이 단계에서는 플레이북을 적용합니다. 또는 관련 디렉터리에서 /etc/ansible/playbooks/
작업 파일을 실행합니다.
설치:
ansible-playbook /etc/ansible/playbooks/install_mdatp.yml -i /etc/ansible/hosts
중요
제품이 처음으로 시작되면 최신 맬웨어 방지 정의를 다운로드합니다. 인터넷 연결에 따라 최대 몇 분 정도 걸릴 수 있습니다.
유효성 검사/구성:
ansible -m shell -a 'mdatp connectivity test' all
ansible -m shell -a 'mdatp health' all
제거:
ansible-playbook /etc/ansible/playbooks/uninstall_mdatp.yml -i /etc/ansible/hosts
설치 문제 해결
자체 문제 해결을 위해 다음 단계를 수행합니다.
설치 오류가 발생할 때 자동으로 생성되는 로그를 찾는 방법에 대한 자세한 내용은 로그 설치 문제를 참조하세요.
일반적인 설치 문제에 대한 자세한 내용은 설치 문제를 참조하세요.
디바이스의 상태가 인
false
경우 엔드포인트용 Defender 에이전트 상태 문제를 참조하세요.제품 성능 문제는 성능 문제 해결을 참조하세요.
프록시 및 연결 문제는 클라우드 연결 문제 해결을 참조하세요.
Microsoft에서 지원을 받으려면 지원 티켓을 열고 클라이언트 분석기를 사용하여 만든 로그 파일을 제공합니다.
Linux에서 Microsoft Defender 대한 정책을 구성하는 방법
다음 방법을 사용하여 엔드포인트에서 바이러스 백신 또는 EDR 설정을 구성할 수 있습니다.
- Linux에서 엔드포인트용 Microsoft Defender 대한 기본 설정 설정을 참조하세요.
- Microsoft Defender 포털에서 설정을 구성하려면 보안 설정 관리를 참조하세요.
운영 체제 업그레이드
운영 체제를 새 주 버전으로 업그레이드할 때 먼저 Linux에서 엔드포인트용 Defender를 제거하고, 업그레이드를 설치하고, 마지막으로 디바이스의 Linux에서 엔드포인트용 Defender를 다시 구성해야 합니다.
참고 항목
팁
더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.