다음을 통해 공유


Azure Monitor 에이전트를 사용하여 Syslog 및 CEF 메시지를 Microsoft Sentinel에 수집

이 문서에서는 AMA를 통한 SyslogAMA 커넥터를 통한 CEF(Common Event Format)를 사용하여 Linux 컴퓨터와 네트워크/보안 디바이스 및 어플라이언스에서 CEF(Common Event Format) 메시지 등의 Syslog 메시지를 빠르게 필터링하고 수집하는 방법을 설명합니다. 이러한 데이터 커넥터에 대해 자세히 알아보려면 Syslog 및 Microsoft Sentinel용 AMA 커넥터를 통한 CEF(Common Event Format)를 참조하세요.

참고 항목

이제 컨테이너 인사이트는 AKS 클러스터의 Linux 노드에서 Syslog 이벤트 자동 컬렉션을 지원합니다. 자세한 내용은 컨테이너 인사이트를 통한 Syslog 컬렉션을 참조하세요.

필수 조건

시작하려면 먼저 리소스를 구성하고 이 섹션에 설명된 적절한 권한이 있어야 합니다.

Microsoft Sentinel 필수 구성 요소

Microsoft Sentinel의 경우 적절한 솔루션을 설치하고 이 문서의 단계를 완료할 수 있는 권한이 있는지 확인합니다.

  • Microsoft Sentinel의 콘텐츠 허브에서 적절한 솔루션(Syslog 및/또는 Common Event Format)을 설치합니다. 자세한 내용은 Microsoft Sentinel 기본 제공 콘텐츠 검색 및 관리를 참조하세요.

  • Azure 계정에 다음 Azure RBAC(Azure 역할 기반 액세스 제어) 역할이 있어야 합니다.

    기본 제공 역할 범위 원인
    - 가상 머신 참가자
    - Azure Connected Machine
       리소스 관리자
  • VM(가상 머신)
  • Virtual Machine Scale Sets
  • Azure Arc 지원 서버
  • 에이전트 배포 방법
    작업이 포함된 모든 역할
    Microsoft.Resources/deployments/*
  • 구독
  • Resource group
  • 기존 데이터 수집 규칙
  • Azure Resource Manager 템플릿 배포
    Monitoring Contributor
  • 구독
  • Resource group
  • 기존 데이터 수집 규칙
  • 데이터 컬렉션 규칙 만들기 또는 편집

로그 전달자 필수 구성 요소

로그 전달자에서 메시지를 수집하는 경우 다음 필수 조건이 적용됩니다.

  • 로그를 수집하려면 지정된 Linux VM이 로그 전달자로 있어야 합니다.

  • 로그 전달자가 Azure Virtual Machine이 아닌 경우 Azure Arc Connected Machine 에이전트가 설치되어 있어야 합니다.

  • Linux 로그 전달자 VM에 Python 2.7 또는 3이 설치되어 있어야 합니다. python --version 또는 python3 --version 명령을 사용하여 확인합니다. Python 3을 사용하는 경우 컴퓨터에서 기본 명령으로 설정되어 있는지 확인하거나 'python' 대신 'python3' 명령을 사용하여 스크립트를 실행합니다.

  • 로그 전달자에 syslog-ng 또는 rsyslog 디먼이 사용되도록 설정되어야 합니다.

  • 로그 전달자에 대한 공간 요구 사항은 Azure Monitor 에이전트 성능 벤치마크를 참조하세요. 확장성 있는 수집을 위한 디자인이 포함된 이 블로그 게시물도 검토할 수 있습니다.

  • 로그 원본(보안 디바이스 및 어플라이언스)에서 로그 메시지를 로컬 Syslog 디먼 대신 로그 전달자의 Syslog 디먼으로 보내도록 구성해야 합니다.

컴퓨터 보안 필수 조건

조직의 보안 정책에 따라 컴퓨터의 보안을 구성합니다. 예를 들어 네트워크가 회사 네트워크 보안 정책에 맞게 구성하고 디먼의 포트 및 프로토콜이 사용자의 요구 사항에 맞게 변경합니다. 컴퓨터 보안 구성을 개선하려면 Azure에서 VM을 보안하거나 네트워크 보안을 위한 모범 사례를 검토합니다.

디바이스가 TLS를 통해 Syslog 및 CEF 로그를 보내는 경우(예를 들어, 로그 전달자가 클라우드에 있기 때문에) TLS에서 통신하도록 Syslog 디먼(rsyslog 또는 syslog-ng)을 구성해야 합니다. 자세한 내용은 다음을 참조하세요.

데이터 커넥터 구성

AMA를 통한 Syslog 또는 AMA 데이터 커넥터를 통한 CEF(Common Event Format) 설정 프로세스에는 다음 단계가 포함됩니다.

  1. 다음 방법 중 하나를 사용하여 Azure Monitor 에이전트를 설치하고 DCR(데이터 수집 규칙)을 만듭니다.
  2. 로그 전달자를 사용하여 다른 컴퓨터에서 로그를 수집하는 경우 로그 전달자에서 "설치" 스크립트를 실행하여 다른 컴퓨터의 메시지를 수신 대기하고 필요한 포트를 열도록 Syslog 디먼을 구성합니다.

지침을 보려면 적절한 탭을 선택합니다.

데이터 수집 규칙 만들기

시작하려면 Microsoft Sentinel에서 데이터 커넥터를 열고 데이터 커넥터 규칙을 만듭니다.

  1. Azure Portal의 Microsoft Sentinel의 경우 구성 아래에서 데이터 커넥터를 선택합니다.
    Defender 포털에서 Microsoft Sentinel의 경우 Microsoft Sentinel>구성>데이터 커넥터를 선택합니다.

  2. syslog의 경우 검색 상자에 Syslog를 입력합니다. 결과에서 AMA 커넥터를 통한 Syslog를 선택합니다.
    CEF의 경우 검색 상자에 CEF를 입력합니다. 결과에서 AMA 커넥터를 통한 CEF(Common Event Format)를 선택합니다.

  3. 세부 정보 창에서 커넥터 페이지 열기를 선택합니다.

  4. 구성 영역에서 +데이터 수집 규칙 만들기를 선택합니다.

    AMA 커넥터 페이지를 통한 Syslog를 보여 주는 스크린샷.

    AMA 커넥터를 통한 CEF페이지를 보여 주는 스크린샷.

  5. 기본 탭에서 다음을 수행합니다.

    • DCR 이름을 입력합니다.
    • 구독을 선택합니다.
    • DCR을 찾으려는 리소스 그룹을 선택합니다.

    기본 탭의 DCR 세부 정보를 보여 주는 스크린샷.

  6. 다음: 리소스>를 선택합니다.

VM 리소스 정의

리소스 탭에서 AMA를 설치할 컴퓨터를 선택합니다(이 경우 로그 전달자 컴퓨터). 로그 전달자가 목록에 표시되지 않으면 Azure Connected Machine 에이전트가 설치되어 있지 않을 수 있습니다.

  1. 사용 가능한 필터나 검색 상자를 사용하여 로그 전달자 VM을 찾습니다. 목록에서 구독을 펼쳐 해당 리소스 그룹을 확인하고 리소스 그룹을 펼쳐 VM을 확인합니다.

  2. AMA를 설치하려는 로그 전달자 VM을 선택합니다. VM 이름를 마우스로 가리키면 해당 확인란이 옆에 나타납니다.

    DCR을 설정할 때 리소스를 선택하는 방법을 보여 주는 스크린샷.

  3. 변경 내용을 검토하고 다음: 수집 >을 선택합니다.

시설 및 심각도 선택

Syslog 및 CEF 메시지 모두에 동일한 기능을 사용하면 데이터 수집 중복이 발생할 수 있습니다. 자세한 내용은 데이터 수집 중복 방지를 참조하세요.

  1. 수집 탭에서 각 기능의 최소 로그 수준을 구성합니다. 로그 수준을 선택하면 Microsoft Sentinel은 선택한 수준 및 심각도가 높은 다른 수준에 대한 로그를 수집합니다. 예를 들어, LOG_ERR을 선택하면 Microsoft Sentinel은 LOG_ERR, LOG_CRIT, LOG_ALERTLOG_EMERG 수준에 대한 로그를 수집합니다.

    DCR을 설정할 때 로그 수준을 선택하는 방법을 보여 주는 스크린샷.

  2. 선택 사항을 검토하고 다음: 검토 + 만들기를 선택합니다.

규칙 검토 및 만들기

모든 탭을 완료한 후 입력한 내용을 검토하고 데이터 수집 규칙을 만듭니다.

  1. 검토 및 만들기 탭에서 만들기를 선택합니다.

    DCR의 구성을 검토하고 만드는 방법을 보여 주는 스크린샷

    커넥터는 DCR을 만들 때 선택한 컴퓨터에 Azure Monitor 에이전트를 설치합니다.

  2. DCR이 만들어지고 에이전트가 설치되는 시기를 확인하려면 Azure Portal 또는 Microsoft Defender 포털의 알림을 확인합니다.

  3. 커넥터 페이지에서 새로 고침을 선택하여 목록에 표시된 DCR을 확인합니다.

“설치” 스크립트 실행

로그 전달자를 사용하는 경우 다른 컴퓨터의 메시지를 수신 대기하도록 Syslog 디먼을 구성하고 필요한 로컬 포트를 엽니다.

  1. 커넥터 페이지에서 다음 명령을 실행하여 CEF 수집기를 설치하고 적용합니다. 아래에 나타나는 명령줄을 복사합니다.

    커넥터 페이지의 명령줄을 보여 주는 스크린샷.

    또는 여기에서 복사합니다.

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. AMA를 설치한 로그 전달자 컴퓨터에 로그인합니다.

  3. 마지막 단계에서 복사한 명령을 붙여넣어 설치 스크립트를 시작합니다.
    설치 스크립트는 필수 프로토콜을 사용하도록 rsyslog 또는 syslog-ng 디먼을 구성하고 디먼을 다시 시작합니다. 스크립트는 포트 514를 열어 UDP 및 TCP 프로토콜 모두에서 들어오는 메시지를 수신 대기합니다. 이 설정을 변경하려면 컴퓨터에서 실행되는 디먼 유형에 따라 Syslog 디먼 구성 파일을 참조하세요.

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Python 3를 사용 중이고 머신의 기본 명령으로 설정되지 않은 경우 붙여넣은 명령에서 pythonpython3로 바꾸세요. 로그 전달자 필수 요건을 확인하세요.

    참고 항목

    에이전트가 작동할 수 없는 전체 디스크 시나리오를 방지하려면 불필요한 로그를 저장하지 않도록 syslog-ng 또는 rsyslog 구성을 설정하는 것이 좋습니다. 전체 디스크 시나리오는 설치된 AMA의 함수를 방해합니다. 자세한 내용은 RSyslog 또는 Syslog-ng를 참조하세요.

커넥터 테스트

Linux 컴퓨터이나 보안 디바이스 및 어플라이언스의 로그 메시지가 Microsoft Sentinel에 수집되는지 확인합니다.

  1. syslog 디먼이 UDP 포트에서 실행 중이고 AMA가 수신 대기 중인지 유효성을 검사하려면 다음 명령을 실행합니다.

    netstat -lnptv
    

    포트 514에서 수신 대기 중인 rsyslog 또는 syslog-ng 디먼이 표시되어야 합니다.

  2. 로거 또는 연결된 디바이스에서 보낸 메시지를 캡처하려면 백그라운드에서 다음 명령을 실행합니다.

    tcpdump -i any port 514 -A -vv &
    
  3. 유효성 검사를 완료한 후 tcpdump를 중지하는 것이 좋습니다. fg를 입력한 다음 Ctrl+C를 선택합니다.

  4. 데모 메시지를 보내려면 다음 단계를 완료합니다.

    • netcat 유틸리티를 사용합니다. 이 예에서 유틸리티는 newline 스위치가 꺼진 상태에서 echo 명령을 통해 게시된 데이터를 읽습니다. 그런 다음 유틸리티는 시간 제한 없이 localhost의 UDP 포트 514에 데이터를 씁니다. netcat 유틸리티를 실행하려면 다른 패키지를 설치해야 할 수도 있습니다.

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • 로거를 사용합니다. 이 예는 CEF RFC 형식으로 로컬 호스트의 포트 514에 심각도 수준 Warninglocal 4 기능에 메시지를 기록합니다. -t--rfc3164 플래그는 예상되는 RFC 형식을 준수하는 데 사용됩니다.

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. 커넥터가 올바르게 설치되었는지 확인하려면 다음 명령 중 하나를 사용하여 문제 해결 스크립트를 실행합니다.

    • CEF 로그의 경우 다음을 실행합니다.

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • Cisco ASA(적응형 보안 어플라이언스) 로그의 경우 다음을 실행합니다.

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • Cisco FTD(Firepower Threat Defense) 로그의 경우 다음을 실행합니다.

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd