다음을 통해 공유


고급 로그 수집기 관리

이 문서에서는 클라우드용 Defender Apps 클라우드 검색 로그 수집기를 위한 고급 옵션을 구성하는 방법을 설명합니다.

클라우드용 Defender 앱 클라우드 검색은 기본 방화벽 형식에 계속 초점을 맞추고 있습니다. 방화벽 수준에서 전달되는 로그의 변경 내용이 계속 작동하지 않거나 구문 분석과 관련된 문제가 발생할 수 있습니다. 이러한 종류의 오류가 발견되면 기본 방화벽 형식을 계속 사용하거나 사용자 지정 로그 수집기에서 옵션을 사용하는 것이 좋습니다. 자세한 내용은 사용자 지정 로그 파서 사용을 참조하세요.

이 문서에서는 클라우드용 Defender Apps 클라우드 검색 Docker에 대한 구성을 수정하는 방법을 설명합니다.

로그 수집기 FTP 구성 수정

다음 섹션의 다음 단계를 사용하여 클라우드용 Defender Apps 클라우드 검색 Docker에 대한 구성을 수정합니다.

로그 수집기 버전 확인

현재 시스템에 설치된 로그 수집기의 버전을 확인하려면 로그 수집기 호스트에 연결하고 다음을 실행합니다.

cat /var/adallom/versions | grep columbus-

FTP 암호 변경

이 절차에서는 로그 수집기 파일에 액세스하는 데 사용되는 암호를 변경하는 방법을 설명합니다.

  1. 로그 수집기 호스트에 연결하고 다음을 실행합니다.

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. 새 암호를 입력한 다음 다시 입력하여 확인합니다.

  3. 다음 명령을 실행하여 변경 사항을 적용합니다.

    docker exec -it <collector name> pure-pw mkdb
    

다음 내용을 볼 수 있어야 합니다.

  • run_logs
  • ssl_update
  • config.json

인증서 파일 사용자 지정

이 절차에서는 클라우드 검색 Docker 인스턴스에 대한 보안 연결에 사용되는 인증서 파일을 사용자 지정하는 방법을 설명합니다.

  1. FTP 클라이언트를 열고 로그 수집기 호스트에 연결합니다.

  2. 디렉터리로 ssl_update 이동하여 다음 파일을 포함하여 새 인증서 파일을 업로드합니다.

    받는 사람 유형 필수 파일
    FTP - pure-ftpd.pem: 키 및 인증서 데이터 포함
    Syslog - ca.pem: 클라이언트의 인증서에 서명하는 데 사용된 인증 기관의 인증서입니다.
    - server-key.pemserver-cert.pem: 로그 수집기의 인증서 및 키

    Syslog 메시지는 TLS를 통해 로그 수집기로 전송되며, 클라이언트 및 서버 인증서 인증을 포함하여 상호 TLS 인증이 필요합니다.

    파일 이름은 필수입니다. 파일이 누락된 경우 업데이트가 실패합니다.

  3. 터미널 창에서 다음을 실행합니다.

    docker exec -t <collector name> update_certs
    

    출력은 다음 코드와 유사하게 표시됩니다.

    root@DockerPlayground:~# docker exec -t columbus update_certs
    rsyslog: stopped
    rsyslog: started
    ftpd: stopped
    ftpd: started
    root@DockerPlayground:~#
    
  4. 터미널 창에서 다음을 실행합니다.

    docker exec <collector name> chmod -R 700 /etc/ssl/private/
    

프록시 뒤에서 로그 수집기 사용

프록시 뒤에서 실행하는 경우 로그 수집기에서 클라우드용 Defender 앱으로 데이터를 보내는 데 문제가 있을 수 있습니다. 예를 들어 로그 수집기는 프록시의 루트 인증 기관을 신뢰하지 않고 클라우드용 Microsoft Defender 앱에 연결하여 구성을 검색하거나 수신된 로그를 업로드할 수 없기 때문에 발생할 수 있습니다.

다음 절차에서는 프록시 뒤에서 로그 수집기를 사용하도록 설정하는 방법을 설명합니다.

Syslog 또는 FTP용 로그 수집기에서 사용하는 인증서를 변경하거나 방화벽 및 프록시에서 로그 수집기로의 연결 문제를 해결할 수도 있습니다. 자세한 내용은 로그 수집기 FTP 구성 수정을 참조하세요.

프록시 뒤에 로그 수집기 설정

Windows 또는 Linux 컴퓨터에서 Docker를 실행하는 데 필요한 단계를 수행하고 호스트 컴퓨터에 클라우드용 Defender Apps Docker 이미지를 성공적으로 다운로드했는지 확인합니다.

자세한 내용은 연속 보고서에 대한 자동 로그 업로드 구성을 참조하세요.

Docker 로그 수집기 컨테이너 생성 확인

컨테이너가 만들어지고 실행 중인지 확인합니다. 셸에서 다음을 실행합니다.

docker ps

다음과 비슷하게 표시됩니다.

실행 중인 Docker 컨테이너의 스크린샷.

프록시 루트 CA 인증서를 컨테이너에 복사

가상 머신에서 CA 인증서를 클라우드용 Defender Apps 컨테이너에 복사합니다. 다음 예에서 컨테이너는 Ubuntu LogCollector로 명명되고 CA 인증서는 Proxy-CA.crt로 명명됩니다.

다음 명령은 실행 중인 컨테이너의 폴더에 인증서를 복사합니다. Ubuntu 호스트에서 명령을 실행합니다.

docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery

CA 인증서를 사용하도록 구성 설정

  1. 컨테이너로 이동합니다. 다음 명령을 실행하여 로그 수집기 컨테이너에서 bash를 엽니다.

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. 컨테이너 내의 bash 창에서 Java jre 폴더로 이동합니다. 버전 관련 경로 오류를 방지하려면 다음 명령을 사용합니다.

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. 이전에 복사한 루트 인증서를 검색 폴더에서 Java KeyStore로 가져오고 암호를 정의합니다.

    기본 암호는 changeit입니다. 자세한 내용은 Java KeyStore 암호 변경을 참조 하세요.

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. 인증서를 CA 키 저장소로 올바르게 가져왔음을 확인합니다. 다음 명령을 실행하여 가져오기 중에 제공한 별칭을 검색합니다(SelfSignedCert).

    ./keytool --list --keystore ../lib/security/cacerts | grep self
    

가져온 프록시 CA 인증서가 표시됩니다.

Linux에서 로그 수집기로 syslog 메시지를 보내는 IP 주소 제한

Docker 이미지를 보호하고 하나의 IP 주소만 로그 수집기에 syslog 메시지를 보낼 수 있도록 하려면 배포에 따라 입력 트래픽을 허용하고 TCP/601 또는 UDP/514와 같은 특정 포트를 통해 들어오는 트래픽을 삭제하도록 호스트 컴퓨터에 IP 테이블 규칙을 만듭니다.

다음 명령은 호스트 컴퓨터에 추가할 수 있는 IP 테이블 규칙을 만드는 방법의 예를 보여 줍니다. 이 테이블 규칙을 사용하면 IP 주소 '1.2.3.4''가 TCP 포트 601을 통해 로그 수집기 컨테이너에 연결하고 동일한 포트를 통해 다른 IP 주소에서 오는 다른 모든 연결을 삭제할 수 있습니다.

iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP

로그 수집기를 새 구성으로 실행되도록 설정

이제 컨테이너는 준비되었습니다.

로그 수집기를 만드는 동안 사용한 API 토큰을 사용하여 collector_config 명령을 실행합니다. 예시:

로그 수집기 만들기 대화 상자의 스크린샷.

명령을 실행할 때 다음과 같이 고유한 API 토큰을 지정합니다. collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

예시:

구성 업데이트 예제의 스크린샷.

이제 로그 수집기가 클라우드용 Defender 앱과 통신할 수 있습니다. 클라우드용 Defender 앱에 데이터를 보낸 후 로그 수집기의 상태가 정상에서 연결됨으로 변경됩니다. 예시:

업로드 상태의 스크린샷.

참고 항목

예를 들어 로그 수집기의 구성을 업데이트하거나 데이터 원본을 추가하거나 제거해야 하는 경우 일반적으로 컨테이너를 삭제하고 이전 단계를 다시 수행해야 합니다.

이를 방지하기 위해 클라우드용 Defender Apps 포털에서 생성된 새 API 토큰을 사용하여 collector_config 도구를 다시 실행할 수 있습니다.

Java KeyStore 암호 변경

  1. Java KeyStore 서버를 중지합니다.

  2. 컨테이너 내에서 bash 셸을 열고 appdata/conf 폴더로 이동합니다.

  3. 서버 KeyStore 암호를 변경하려면 다음을 실행합니다.

    keytool -storepasswd -new newStorePassword -keystore server.keystore
    -storepass changeit
    

    기본 서버 암호는 .입니다 changeit.

  4. 인증서 암호를 변경하려면 다음을 실행합니다.

    keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
    

    기본 서버 별칭은 서버입니다.

  5. 텍스트 편집기에서 server-install\conf\server\secured-installed.properties 파일을 엽니다. 다음 코드 줄을 추가한 다음 변경 내용을 저장합니다.

    1. 서버에 대한 새 Java KeyStore 암호를 지정합니다. server.keystore.password=newStorePassword
    2. 서버에 대한 새 인증서 암호를 지정합니다. server.key.password=newKeyPassword
  6. 서버를 시작합니다.

Linux에서 로그 수집기를 다른 데이터 파티션으로 이동

많은 회사에서 데이터를 별도의 파티션으로 이동해야 합니다. 이 절차에서는 클라우드용 Defender Apps Docker 로그 수집기 이미지를 Linux 호스트의 데이터 파티션으로 이동하는 방법을 설명합니다.

이 절차에서는 데이터 저장소라는 파티션으로 데이터를 이동하는 방법을 설명하고 파티션을 이미 탑재했다고 가정합니다. 예시:

Linux 파티션 목록입니다.

Linux 호스트에서 새 파티션 추가 및 구성은 이 가이드의 범위에 있지 않습니다.

로그 수집기를 다른 파티션으로 이동하려면 다음을 수행합니다.

  1. Docker 서비스를 중지합니다. 다음을 실행합니다.

    service docker stop
    
  2. 로그 수집기 데이터를 새 파티션으로 이동합니다. 다음을 실행합니다.

    mv /var/lib/docker /datastore/docker
    
  3. 이전 Docker 스토리지 디렉터리(/var/lib/docker)를 제거하고 새 디렉터리(/datastore/docker)에 대한 기호 링크를 만듭니다. 다음을 실행합니다.

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. Docker 서비스를 시작합니다. 다음을 실행합니다.

    service docker start
    
  5. 필요에 따라 로그 수집기의 상태를 확인합니다. 다음을 실행합니다.

    docker ps
    

Linux에서 로그 수집기 디스크 사용량 검사

이 절차에서는 로그 수집기 디스크 사용량 및 위치를 검토하는 방법을 설명합니다.

  1. 로그 수집기 데이터가 저장되는 디렉터리의 경로를 식별합니다. 다음을 실행합니다.

    docker inspect <collector_name> | grep WorkDir
    

    예시:

    로그 수집기 디렉터리를 식별하는 방법의 스크린샷

  2. "/work" 접미사 없이 식별된 경로를 사용하여 로그 수집기의 디스크 크기를 가져옵니다. 다음을 실행합니다.

    du -sh /var/lib/docker/overlay2/<log_collector_id>/
    

    디스크에서 로그 수집기 크기를 식별하는 방법의 스크린샷

    참고 항목

    디스크의 크기만 알아야 하는 경우 다음 명령을 대신 사용할 수 있습니다. docker ps -s

로그 수집기를 액세스 가능한 호스트로 이동

규제 환경에서는 로그 수집기 이미지가 호스트되는 Docker Hubs에 대한 액세스가 차단될 수 있습니다. 이렇게 하면 클라우드용 Defender 앱이 로그 수집기에서 데이터를 가져오지 못하게 하고 로그 수집기 이미지를 액세스 가능한 호스트로 이동하는 문제를 해결할 수 있습니다.

이 절차에서는 Docker 허브에 대한 액세스 권한이 있는 컴퓨터를 사용하여 로그 수집기 이미지를 다운로드하고 대상 호스트로 가져오는 방법을 설명합니다.

다운로드한 이미지는 프라이빗 리포지토리 또는 호스트에서 직접 가져올 수 있습니다. 이 절차에서는 Windows 컴퓨터에 로그 수집기 이미지를 다운로드한 다음 WinSCP를 사용하여 로그 수집기를 대상 호스트로 이동하는 방법을 설명합니다.

필수 조건

  1. 호스트에 Docker가 설치되어 있는지 확인합니다. 예를 들어 다음 다운로드 중 하나를 사용합니다.

  2. 다운로드 후 Docker의 오프라인 설치 가이드 를 사용하여 운영 체제를 설치합니다.

    로그 수집기 이미지를 내보내 프로세스를 시작한 다음 대상 호스트로 이미지를 가져옵니다.

Docker 허브에서 로그 수집기 이미지 내보내기

다음 절차에서는 Linux 또는 Windows를 사용하여 로그 수집기 이미지를 내보내는 방법을 설명합니다.

Linux에서 이미지 내보내기

  1. Docker 허브에 액세스할 수 있는 Linux 컴퓨터에서 다음 명령을 실행하여 Docker를 설치하고 로그 수집기 이미지를 다운로드합니다.

    curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
    
  2. 로그 수집기 이미지를 내보냅니다. 다음을 실행합니다.

    docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector
    chmod +r /tmp/mcasLC.tar
    

    Important

    출력 매개 변수를 사용하여 STDOUT 대신 파일에 씁니다.

  3. WinSCP를 사용하여 Windows 컴퓨터에 C:\mcasLogCollector\ 로그 수집기 이미지를 다운로드합니다. 예시:

    Windows 컴퓨터에 로그 수집기를 다운로드하는 스크린샷

Windows에서 이미지 내보내기

  1. Docker Hub에 대한 액세스 권한이 있는 Windows 10 컴퓨터에서 Docker Desktop을 설치 합니다.

  2. 로그 수집기 이미지를 다운로드합니다. 다음을 실행합니다.

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. 로그 수집기 이미지를 내보냅니다. 다음을 실행합니다.

    docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
    

    Important

    출력 매개 변수를 사용하여 STDOUT 대신 파일에 씁니다.

로그 수집기 이미지 가져오기 및 대상 호스트로 로드

이 절차에서는 내보낸 이미지를 대상 호스트로 전송하는 방법을 설명합니다.

  1. 아래 /tmp/의 대상 호스트에 로그 수집기 이미지를 업로드합니다. 예시:

    로그 수집기를 대상 호스트에 업로드하는 스크린샷

  2. 대상 호스트에서 로그 수집기 이미지를 Docker 이미지 리포지토리로 가져옵니다. 다음을 실행합니다.

    docker load --input /tmp/mcasLC.tar
    

    예시:

    로그 수집기 이미지를 Docker 리포지토리로 가져오는 스크린샷

  3. 필요에 따라 가져오기가 성공적으로 완료되었는지 확인합니다. 다음을 실행합니다.

    docker image ls
    

    예시:

    로그 수집기 가져오기가 성공했는지 확인하는 스크린샷

    이제 대상 호스트의 이미지를 사용하여 로그 수집 기를 만들 수 있습니다.

Linux에서 로그 수집기의 Syslog 및 FTP 수신기에 대한 사용자 지정 포트 정의

일부 조직에서는 Syslog 및 FTP 서비스에 대한 사용자 지정 포트를 정의해야 합니다.

데이터 원본을 추가할 때 클라우드용 Defender 앱 로그 수집기는 특정 포트 번호를 사용하여 하나 이상의 데이터 원본에서 트래픽 로그를 수신 대기합니다.

다음 표에서는 수신기에 대한 기본 수신 대기 포트를 나열합니다.

받는 사람 유형 포트
Syslog * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP * TCP/21

다음 단계를 사용하여 사용자 지정 포트를 정의합니다.

  1. Microsoft Defender 포털에서 설정을 선택합니다. 그런 다음, Cloud Apps를 선택합니다.

  2. Cloud Discovery에서 자동 로그 업로드를 선택합니다. 그런 다음 로그 수집기 탭을 선택합니다.

  3. 로그 수집기 탭에서 로그 수집기를 추가하거나 편집하고 데이터 원본을 업데이트한 후 대화 상자에서 실행 명령을 복사합니다. 예시:

    로그 수집기 마법사에서 실행 명령을 복사합니다.

    제공된 대로 사용되는 경우 마법사 제공 명령은 포트 514/udp 및 515/udp를 사용하도록 로그 수집기를 구성합니다. 예시:

    (echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    예시:

    로그 수집기 마법사에서 실행되는 명령의 스크린샷.

  4. 호스트 컴퓨터에서 명령을 사용하기 전에 사용자 지정 포트를 사용하도록 명령을 수정합니다. 예를 들어 UDP 포트 414 및 415를 사용하도록 로그 수집기를 구성하려면 다음과 같이 명령을 변경합니다.

    (echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    예시:

    사용자 지정된 실행 명령의 스크린샷.

    참고 항목

    Docker 매핑만 수정됩니다. 내부적으로 할당된 포트는 변경되지 않으므로 호스트에서 수신 대기 포트를 선택할 수 있습니다.

Linux의 로그 수집기에서 받은 트래픽 및 로그 형식의 유효성을 검사합니다.

경우에 따라 다음과 같은 문제를 조사해야 할 수 있습니다.

  • 로그 수집기는 데이터를 수신합니다. 로그 수집기가 어플라이언스에서 Syslog 메시지를 수신하고 방화벽에 의해 차단되지 않는지 확인합니다.
  • 수신된 데이터는 올바른 로그 형식입니다. 클라우드용 Defender 앱에서 예상하는 로그 형식과 어플라이언스가 보낸 로그 형식을 비교하여 구문 분석 오류를 해결하는 데 도움이 되는 로그 형식의 유효성을 검사합니다.

다음 단계를 사용하여 로그 수집기에서 트래픽을 수신했는지 확인합니다.

  1. Docker 컨테이너를 호스팅하는 서버에 로그인합니다.

  2. 로그 수집기가 다음 방법 중 어느 것을 사용하여 Syslog 메시지를 수신하고 있는지 확인합니다.

    • tcpdump 또는 유사한 명령을 사용하여 포트 514에서 네트워크 트래픽을 분석합니다.

      tcpdump -Als0 port 514
      

      모든 항목이 올바르게 구성된 경우 어플라이언스의 네트워크 트래픽이 표시됩니다. 예시:

      tcpdump를 통해 네트워크 트래픽을 분석하는 스크린샷

    • netcat 또는 유사한 명령을 사용하여 호스트 컴퓨터에서 네트워크 트래픽을 분석합니다.

      1. netcatwget을 설치합니다.

      2. Microsoft Defender XDR에서 샘플 로그 파일을 다운로드합니다. 필요한 경우 로그 파일의 압축을 풉

        1. Microsoft Defender XDR의 Cloud Apps 아래에서 Cloud Discovery>Actions>Create Cloud Discovery 스냅샷 보고서를 선택합니다.

        2. 로그 파일을 업로드할 데이터 원본을 선택합니다.

        3. 보기를 선택하고 확인한 다음 샘플 로그 다운로드를 마우스 오른쪽 단추로 클릭하고 URL 주소 링크를 복사합니다.

        4. 취소 닫기를>선택합니다.

      3. 다음을 실행합니다.

        wget <URL_address_to_sample_log>
        
      4. 로그 수집기로 데이터를 스트리밍하려면 실행 netcat 합니다.

        cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
        

      수집기가 올바르게 구성된 경우 로그 데이터는 메시지 파일에 있고 그 직후 클라우드용 Defender 앱 포털에 업로드됩니다.

    • 클라우드용 Defender Apps Docker 컨테이너 내에서 관련 파일을 검사합니다.

      1. 컨테이너에 로그인합니다. 다음을 실행합니다.

        docker exec -it <Container Name> bash
        
      2. Syslog 메시지가 메시지 파일에 기록되고 있는지 확인합니다. 다음을 실행합니다.

        cat /var/adallom/syslog/<your_log_collector_port>/messages
        

      모든 항목이 올바르게 구성된 경우 어플라이언스의 네트워크 트래픽이 표시됩니다. 예시:

      cat 명령을 사용하여 트래픽을 분석하는 스크린샷

      참고 항목

      이 파일은 크기가 40KB에 도달할 때까지 계속 기록됩니다. 예시:

  3. 디렉터리의 클라우드용 Defender 앱에 업로드된 로그를 /var/adallom/discoverylogsbackup 검토합니다. 예시:

    업로드된 로그 파일을 검토합니다.

  4. 저장된 메시지를 클라우드용 Defender 앱 로그 수집기 만들기 마법사에 /var/adallom/discoverylogsbackup 제공된 샘플 로그 형식과 비교하여 로그 수집기에서 받은 로그 형식의 유효성을 검사합니다.

메시지 파일의 출력을 로컬 파일에 씁니다.

사용자 고유의 샘플 로그를 사용하지만 어플라이언스에 액세스할 수 없는 경우 다음 명령을 사용하여 로그 수집기의 syslog 디렉터리에 있는 메시지 파일의 출력을 호스트의 로컬 파일에 씁니다.

docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log

출력 파일(/tmp/log.log)을 디렉터리에 저장된 메시지와 /var/adallom/discoverylogsbackup 비교합니다.

로그 수집기 버전 업데이트

로그 수집기를 업데이트하는 경우:

  • 새 버전을 설치하기 전에 로그 수집기를 중지하고 현재 이미지를 제거해야 합니다.
  • 새 버전을 설치한 후 인증서 파일을 업데이트합니다.

다음 단계

문제가 발생하면 도움을 받으세요. 제품 문제에 대한 지원 또는 지원을 받으려면 지원 티켓을 여세요.