다음을 통해 공유


고급 로그 수집기 관리

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

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

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

로그 수집기 FTP 구성 수정

다음 섹션의 다음 단계를 사용하여 Defender for Cloud 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 instance 대한 보안 연결에 사용되는 인증서 파일을 사용자 지정하는 방법을 설명합니다.

  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 for Cloud Apps 보내는 데 문제가 있을 수 있습니다. 예를 들어 로그 수집기가 프록시의 루트 인증 기관을 신뢰하지 않고 Microsoft Defender for Cloud Apps 연결하여 구성을 검색하거나 받은 로그를 업로드할 수 없기 때문에 이 문제가 발생할 수 있습니다.

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

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

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

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

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

Docker 로그 수집기 컨테이너 만들기 유효성 검사

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

docker ps

다음 출력과 비슷한 내용이 표시됩니다.

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

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

가상 머신에서 CA 인증서를 Defender for Cloud 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 메시지를 보낼 수 있도록 하려면 호스트 머신에 IP 테이블 규칙을 만들어 입력 트래픽을 허용하고 배포에 따라 TCP/601 또는 UDP/514와 같은 특정 포트를 통해 들어오는 트래픽을 삭제합니다.

다음 명령은 호스트 컴퓨터에 추가할 수 있는 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 for Cloud Apps 통신할 수 있습니다. Defender for Cloud Apps 데이터를 보낸 후 로그 수집기 상태 정상에서 연결됨으로 변경됩니다. 예시:

업로드 상태 스크린샷

참고

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

이를 방지하기 위해 Defender for Cloud 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 for Cloud Apps Docker 로그 수집기 이미지를 Linux 호스트의 데이터 파티션으로 이동하는 방법을 설명합니다.

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

Linux 파티션 목록입니다.

Linux 호스트에서 새 파티션 추가 및 구성은 이 가이드의 scope 없습니다.

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

  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 for Cloud Apps 로그 수집기에서 데이터를 가져올 수 없으며 로그 수집기 이미지를 액세스 가능한 호스트로 이동하는 문제를 해결할 수 있습니다.

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

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

필수 구성 요소

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

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

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

Docker Hub 로그 수집기 이미지 내보내기

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

Linux에서 이미지 내보내기

  1. Docker Hub 대한 액세스 권한이 있는 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
    

    중요

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

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

    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
    

    중요

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

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

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

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

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

  2. 대상 호스트에서 로그 수집기 이미지를 Docker 이미지 리포지토리로 가져옵니다. 달리다:

    docker load --input /tmp/mcasLC.tar
    

    예시:

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

  3. 필요에 따라 가져오기가 성공적으로 완료되었는지 확인합니다. 달리다:

    docker image ls
    

    예시:

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

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

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

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

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

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

받는 사람 유형 포트
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 for Cloud Apps 예상한 로그 형식과 어플라이언스 보낸 로그 형식을 비교하여 구문 분석 오류를 해결하는 데 도움이 되는 로그 형식의 유효성을 검사합니다.

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

  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작업> 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 for Cloud Apps 포털에 업로드됩니다.

    • Defender for Cloud Apps Docker 컨테이너 내에서 관련 파일을 검사합니다.

      1. 컨테이너에 로그인합니다. 달리다:

        docker exec -it <Container Name> bash
        
      2. Syslog 메시지가 메시지 파일에 쓰여지고 있는지 확인합니다. 달리다:

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

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

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

      참고

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

  3. 디렉터리의 Defender for Cloud Apps 업로드된 로그를 /var/adallom/discoverylogsbackup 검토합니다. 예시:

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

  4. 에 저장된 메시지를 Defender for Cloud Apps 로그 수집기 만들기 마법사에 /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 비교합니다.

로그 수집기 버전 업데이트

로그 수집기를 업데이트할 때:

다음 단계

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