고급 로그 수집기 관리

참고

  • Microsoft Cloud App Security 이름이 바뀌었습니다. 이제 Microsoft Defender for Cloud Apps 호출되었습니다. 앞으로 몇 주 안에 여기와 관련 페이지에서 스크린샷과 지침을 업데이트할 예정입니다. 변경에 대한 자세한 내용은 이 공지 사항을 참조하세요. Microsoft 보안 서비스의 최근 이름 바꾸기에 대한 자세한 내용은 Microsoft Ignite 보안 블로그를 참조하세요.

  • Microsoft Defender for Cloud Apps 이제 Microsoft 365 Defender 일부입니다. Microsoft 365 Defender 포털을 사용하면 보안 관리자가 한 위치에서 보안 작업을 수행할 수 있습니다. 이렇게 하면 워크플로가 간소화되고 다른 Microsoft 365 Defender 서비스의 기능이 추가됩니다. Microsoft 365 Defender Microsoft ID, 데이터, 디바이스, 앱 및 인프라 전반에서 보안을 모니터링하고 관리하는 가정이 될 것입니다. 이러한 변경에 대한 자세한 내용은 Microsoft 365 Defender Microsoft Defender for Cloud Apps 참조하세요.

이 문서에서는 클라우드용 Defender Apps Cloud Discovery 로그 수집기를 위한 다음과 같은 고급 구성 옵션에 대한 정보를 제공합니다.

로그 수집기 FTP 구성 수정

다음 단계를 사용하여 클라우드용 Defender Apps Cloud Discovery Docker에 대한 구성을 수정합니다.

Docker 배포

클라우드용 Defender Apps Cloud Discovery Docker에 대한 구성을 수정해야 할 수도 있습니다.

FTP 암호 변경

  1. 로그 수집기 호스트에 연결합니다.

  2. docker exec -it <collector name> pure-pw passwd <ftp user>을 실행합니다.

    1. 새 암호를 입력합니다.
    2. 확인을 위해 새 암호를 다시 입력합니다.
  3. docker exec -it <collector name> pure-pw mkdb를 실행하여 변경 내용을 적용합니다.

    change ftp password.

인증서 파일 사용자 지정

이 절차에 따라 Cloud Discovery Docker에 대한 보안 연결에 사용하는 인증서 파일을 사용자 지정합니다.

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

    Connect to ftp client.

  2. ssl_update 디렉터리로 이동합니다.

  3. 새 인증서 파일을 ssl_update 디렉터리에 업로드합니다(이름은 필수임).

    Upload certificate files.

    • FTP의 경우: 파일이 하나만 필요합니다. 파일에는 키와 인증서 데이터가 포함되고 차례로 pure-ftpd.pem이라고 명명됩니다.
    • Syslog의 경우:ca.pem, **server-key.pem 및 server-cert.pem이라는 세 개의 파일이 필요합니다. 이러한 파일 중 누락되는 파일이 있으면 업데이트가 수행되지 않습니다.
  4. 터미널 창에서 다음을 실행합니다 docker exec -t <collector name> update_certs. 이 명령을 실행하면 다음 스크린샷에 표시된 내용과 유사한 출력이 생성됩니다.

    Update certificate files.

  5. 터미널 창에서 다음을 실행합니다 docker exec <collector name> chmod -R 700 /etc/ssl/private/.

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

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

다음 단계를 사용하여 프록시 뒤에서 로그 수집기를 사용하도록 설정합니다.

참고

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

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

필요한 단계를 수행하여 Windows 또는 Linux 컴퓨터에서 Docker를 실행하고 컴퓨터에서 클라우드용 Defender Apps Docker 이미지를 성공적으로 다운로드했는지 확인합니다. 자세한 내용은 연속 보고서에 대한 자동 로그 업로드 구성을 참조하세요.

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

셸에서, 다음 명령을 사용하여 컨테이너가 생성되었고 실행 중인지 확인합니다.

docker ps

docker ps.

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

가상 머신에서 CA 인증서를 클라우드용 Defender 앱 컨테이너에 복사합니다. 다음 예에서 컨테이너는 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. 다음 명령을 사용하여 가져오는 중 제공한 별칭(SelfSignedCert)을 검색하여 인증서를 CA 키 저장소로 제대로 가져왔는지 확인합니다.

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

    keytool.

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

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

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

로그 수집기 생성 중 사용한 API 토큰을 사용하여 collector_config 명령을 실행합니다.

API token.

명령을 실행할 때 고유한 API 토큰을 지정합니다.

collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

Configuration update.

이제 로그 수집기가 클라우드용 Defender 앱과 통신할 수 있습니다. 데이터를 전송한 후 상태는 클라우드용 Defender 앱 포털에서 정상에서 연결됨으로 변경됩니다.

Status.

참고

예를 들어 로그 수집기의 구성을 업데이트하거나 데이터 원본을 추가하거나 제거해야 하는 경우 일반적으로 컨테이너를 삭제하고 이전 단계를 다시 수행해야 합니다. 이를 방지하기 위해 클라우드용 Defender Apps 포털에서 생성된 새 API 토큰을 사용하여 collector_config 도구를 다시 실행할 수 있습니다.

Java KeyStore 암호를 변경하는 방법

  1. Java KeyStore 서버를 중지합니다.
  1. 컨테이너 내에서 bash 셸을 열고 appdata/conf 폴더로 이동합니다.

  2. 다음 명령을 사용하여 서버 KeyStore 암호를 변경합니다.

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

    참고

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

  3. 다음 명령을 사용하여 인증서 암호를 변경합니다.

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

    참고

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

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

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

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

많은 회사에서 데이터를 별도의 파티션으로 이동해야 합니다. 다음 단계를 사용하여 클라우드용 Defender Apps Docker 로그 수집기 이미지를 Linux 호스트의 데이터 파티션으로 이동합니다.

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

참고

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

List of Linux partitions.

  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
    

    Identify log collector directory.

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

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

    Get log collector size on disk.

    참고

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

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

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

다음 단계를 사용하여 Docker Hub 액세스할 수 있는 컴퓨터를 사용하여 로그 수집기 이미지를 다운로드하고 대상 호스트로 가져옵니다.

참고

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

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

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

로그 수집기 이미지가 있는 Docker Hub 운영 체제와 관련된 단계를 사용합니다.

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를 사용하여 로그 수집기 이미지를 Windows 컴퓨터에 C:\mcasLogCollector\ 다운로드합니다.

    Download log collector to Windows computer.

Windows 이미지 내보내기

  1. Docker Hub 액세스할 수 있는 Windows 10 컴퓨터에서 Docker Desktop을 설치합니다.

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

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

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

    참고

    출력 매개 변수를 사용하여 STDOUT 대신 파일에 쓰는 것이 중요합니다.

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

내보낸 이미지를 대상 호스트로 전송하려면 다음 단계를 사용합니다.

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

    Upload log collector to destination host.

  2. 대상 호스트에서 다음 명령을 사용하여 로그 수집기 이미지를 Docker 이미지 리포지토리로 가져옵니다.

    docker load --input /tmp/mcasLC.tar
    

    Import log collector image to Docker repo.

  3. 필요에 따라 다음 명령을 사용하여 가져오기가 성공적으로 완료되었는지 확인합니다.

    docker image ls
    

    Verify log collector image import succeeded.

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

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

일부 조직에는 Syslog 및 FTP 서비스에 대한 사용자 지정 포트를 정의해야 합니다. 데이터 원본을 추가할 때 클라우드용 Defender 앱 로그 수집기는 특정 포트 번호를 사용하여 하나 이상의 데이터 원본에서 트래픽 로그를 수신 대기합니다.

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

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

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

  1. 클라우드용 Defender 앱에서 설정 아이콘과 로그 수집기를 차례로 클릭합니다.

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

    Copy run command from log collector wizard.

    참고

    제공된 대로 사용되는 경우 다음 마법사 제공 명령은 포트 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
    

    Run command from log collector wizard.

  3. 호스트 컴퓨터에서 명령을 사용하기 전에 사용자 지정 포트를 사용하도록 명령을 수정합니다. 예를 들어 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
    

    Run custom command on your host.

    참고

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

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

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

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

로그 수집기에서 수신한 트래픽의 유효성을 검사하려면 다음 단계를 사용합니다.

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

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

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

      tcpdump -Als0 port 514
      

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

      Analyze network traffic tcpdump command.

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

      1. netcatwget을 설치합니다.

      2. 다음과 같이 샘플 로그를 다운로드하고 필요한 경우 압축을 풉니다.

        1. 클라우드용 Defender 앱 포털에서 검색을 클릭한 다음 스냅샷 보고서 만들기를 클릭합니다.
        2. 로그 파일을 업로드한 데이터 원본을 선택합니다.
        3. 보기를 클릭한 다음 샘플 로그 다운로드를 마우스 오른쪽 단추로 클릭하고 URL 주소 링크를 복사합니다.
        4. 닫기를 클릭합니다.
        5. 취소를 클릭합니다.
      wget <URL_address_to_sample_log>
      
      1. 실행 netcat 하여 데이터를 로그 수집기로 스트리밍합니다.
      cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
      

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

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

      1. 다음 명령을 사용하여 컨테이너에 로그인합니다.
      docker exec -it <Container Name> bash
      
      1. 다음 명령을 사용하여 Syslog 메시지가 메시지 파일에 기록되는지 확인합니다.
      cat /var/adallom/syslog/<your_log_collector_port>/messages
      

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

      참고

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

      Analyze network traffic cat command.

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

    Review uploaded log files.

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

참고

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

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

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

다음 단계

문제가 발생하는 경우 지원받을 수 있습니다. 제품 문제에 대해 도움이나 지원을 받으려면 지원 티켓을 여세요.