F5 BIG-IP LTM 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 F5 BIG-IP LTM 로그를 Google Security Operations로 수집하는 방법을 설명합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • systemd가 설치된 Windows 2016 이상 또는 Linux 호스트
  • 프록시 뒤에서 실행하는 경우 Bindplane 에이전트 요구사항에 따라 방화벽 포트가 열려 있는지 확인합니다.
  • F5 BIG-IP LTM 기기에 대한 관리 액세스 (TMSH 또는 웹 UI)

Google SecOps 수집 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 수집 인증 파일을 다운로드합니다. Bindplane이 설치될 시스템에 파일을 안전하게 저장합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

Bindplane 에이전트 설치

다음 안내에 따라 Windows 또는 Linux 운영체제에 Bindplane 에이전트를 설치합니다.

Windows 설치

  1. 명령 프롬프트 또는 PowerShell을 관리자로 엽니다.
  2. 다음 명령어를 실행합니다.

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 설치

  1. 루트 또는 sudo 권한으로 터미널을 엽니다.
  2. 다음 명령어를 실행합니다.

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

추가 설치 리소스

Syslog를 수집하여 Google SecOps로 전송하도록 Bindplane 에이전트 구성

  1. 구성 파일에 액세스합니다.

    1. config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    2. 텍스트 편집기 (예: nano, vi, 메모장)를 사용하여 파일을 엽니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

      receivers:
        # UDP syslog listener (RFC5424 over UDP)
        udplog:
          listen_address: "0.0.0.0:514"
    
      exporters:
        chronicle/chronicle_w_labels:
          compression: gzip
          # Adjust the path to the credentials file you downloaded in Step 1
          creds_file_path: "/opt/observiq-otel-collector/ingestion-auth.json"
          # Replace with your actual customer ID from Step 2
          customer_id: "<YOUR_CUSTOMER_ID>"
          # Select the appropriate regional endpoint based on where your Google SecOps instance is provisioned
          # For regional endpoints, see: [https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints](https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints)
          endpoint: "<YOUR_REGIONAL_ENDPOINT>"
          # Set the log_type to ensure the correct parser is applied
          log_type: "F5_BIGIP_LTM"
          raw_log_field: body
          # You can optionally add other custom ingestion labels here if needed
          ingestion_labels:
    
      service:
        pipelines:
          logs/f5ltm:
            receivers: [udplog]
            exporters: [chronicle/chronicle_w_labels]
    
    • listen_address는 모든 소스의 syslog를 허용하도록 0.0.0.0:514로 설정됩니다. 특정 인터페이스로 제한해야 하는 경우 조정합니다.
    • UDP 포트 514는 표준 syslog 포트입니다. 포트 514에 루트 권한이 필요한 경우 1024 이상의 포트 (예: 5514)를 사용하고 이에 따라 F5 구성을 조정하면 됩니다.
    • UDP 대신 TCP의 경우 tcplog 수신기를 만들고 F5 원격 고속 로그 프로토콜을 tcp로 설정합니다.
  3. 파일을 저장하고 편집기를 종료합니다.

Bindplane 에이전트를 다시 시작하여 변경사항 적용

  • Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.

    sudo systemctl restart bindplane-agent
    
  • Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.

    net stop BindPlaneAgent && net start BindPlaneAgent
    

F5 BIG-IP LTM syslog 전달 구성

옵션 A: TMSH (명령줄 인터페이스) 사용

  1. syslog 대상의 풀 만들기

    1. SSH를 통해 F5 BIG-IP LTM 기기에 연결합니다.
    2. 다음 명령어를 실행합니다.

      tmsh create ltm pool f5_syslog_pool members add { <BINDPLANE_IP>:514 } monitor gateway_icmp
      
      • <BINDPLANE_IP>를 Bindplane 에이전트 호스트의 IP 주소로 바꿉니다.
  2. 로그 대상 만들기

    tmsh create sys log-config destination remote-high-speed-log f5_hsl_dest protocol udp pool-name f5_syslog_pool
    
    tmsh create sys log-config destination remote-syslog f5_remote_syslog_dest format rfc5424 remote-high-speed-log f5_hsl_dest
    
  3. 로그 게시자 만들기

    tmsh create sys log-config publisher f5_log_publisher destinations add { f5_remote_syslog_dest }
    
  4. 요청 로깅 프로필 만들기

    tmsh create ltm profile request-log f5_ltm_request_log \
      request-log-pool f5_syslog_pool request-log-protocol mds-udp \
      request-log-template 'event_source="request_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",event_timestamp="$DATE_HTTP"' \
      request-logging enabled \
      response-log-pool f5_syslog_pool response-log-protocol mds-udp \
      response-log-template 'event_source="response_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",http_statcode="$HTTP_STATCODE",event_timestamp="$DATE_HTTP"' \
      response-logging enabled
    
  5. 가상 서버에 로깅 프로필 적용

    tmsh modify ltm virtual <VIRTUAL_SERVER_NAME> profiles add { f5_ltm_request_log }
    
    • <VIRTUAL_SERVER_NAME>을 가상 서버 이름으로 바꿉니다.
  6. 구성 저장

    tmsh save sys config
    

옵션 B: F5 웹 UI (구성 유틸리티) 사용

  1. syslog 대상의 풀 만들기

    1. F5 BIG-IP LTM 웹 인터페이스에 로그인합니다.
    2. 로컬 트래픽 >> 풀 목록으로 이동합니다.
    3. 만들기를 클릭합니다.
    4. 다음 구성 세부정보를 제공합니다.
      • 이름: f5_syslog_pool를 입력합니다.
      • 상태 모니터링: gateway_icmp를 선택합니다.
    5. 리소스 섹션의 신규 회원에서 다음을 수행합니다.
      • 주소: Bindplane 에이전트 IP 주소를 입력합니다.
      • 서비스 포트: 514를 입력합니다.
    6. 추가를 클릭합니다.
    7. 완료됨을 클릭합니다.
  2. 원격 고속 로그 대상 만들기

    1. 시스템 > 로그 > 구성 > 로그 대상으로 이동합니다.
    2. 만들기를 클릭합니다.
    3. 다음 구성 세부정보를 제공합니다.
      • 이름: f5_hsl_dest를 입력합니다.
      • Type: Remote High-Speed Log를 선택합니다.
      • 프로토콜: UDP를 선택합니다.
      • 풀 이름: f5_syslog_pool를 선택합니다.
    4. 완료됨을 클릭합니다.
  3. 원격 syslog 대상 만들기

    1. 시스템 > 로그 > 구성 > 로그 대상으로 이동합니다.
    2. 만들기를 클릭합니다.
    3. 다음 구성 세부정보를 제공합니다.
      • 이름: f5_remote_syslog_dest를 입력합니다.
      • Type: Remote Syslog를 선택합니다.
      • Syslog Format(Syslog 형식): RFC5424를 선택합니다.
      • 원격 고속 로그: f5_hsl_dest를 선택합니다.
    4. 완료됨을 클릭합니다.
  4. 로그 게시자 만들기

    1. 시스템 > 로그 > 구성 > 로그 게시자로 이동합니다.
    2. 만들기를 클릭합니다.
    3. 다음 구성 세부정보를 제공합니다.
      • 이름: f5_log_publisher를 입력합니다.
      • 대상: f5_remote_syslog_dest사용 가능에서 선택됨으로 이동합니다.
    4. 완료됨을 클릭합니다.
  5. 요청 로깅 프로필 만들기

    1. 로컬 트래픽 > 프로필 > 기타 > 요청 로깅으로 이동합니다.
    2. 만들기를 클릭합니다.
    3. 다음 구성 세부정보를 제공합니다.
      • 이름: f5_ltm_request_log를 입력합니다.
      • 부모님 프로필: request-log을 선택합니다.
    4. 요청 설정에서 다음을 수행합니다.

      • 요청 로깅: 사용을 선택합니다.
      • 요청 로그 프로토콜: mds-udp를 선택합니다.
      • 요청 로그 풀: f5_syslog_pool를 선택합니다.
      • 요청 로그 템플릿: 다음을 입력합니다.

        event_source="request_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",event_timestamp="$DATE_HTTP"
        
    5. 답변 설정에서 다음을 수행합니다.

      • 응답 로깅: 사용 설정됨을 선택합니다.
      • 응답 로그 프로토콜: mds-udp를 선택합니다.
      • 응답 로그 풀: f5_syslog_pool를 선택합니다.
      • Response Log Template: 다음을 입력합니다.

        event_source="response_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",http_statcode="$HTTP_STATCODE",event_timestamp="$DATE_HTTP"
        
  6. 완료됨을 클릭합니다.

가상 서버에 요청 로깅 프로필 적용

  1. 로컬 트래픽 > 가상 서버 > 가상 서버 목록으로 이동합니다.
  2. 가상 서버 이름을 클릭합니다.
  3. 리소스 탭으로 이동합니다.
  4. iRules and Profiles에서 Profiles 옆에 있는 Manage를 클릭합니다.
  5. 사용 가능에서 f5_ltm_request_log를 찾아 선택됨으로 이동합니다.
  6. 완료됨을 클릭합니다.
  7. 업데이트를 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
hostname principal.hostname Syslog 호스트 이름 (로그를 내보낸 기기)
client_ip principal.ip 클라이언트의 소스 IP 주소
client_port principal.port 소스 포트 (템플릿에 포함된 경우)
server_ip target.ip 대상 IP (풀 구성원)
server_port target.port 대상 포트 (풀 구성원)
http_method network.http.method HTTP 요청 메서드
http_uri network.http.url HTTP 요청 URI (경로/쿼리가 있는 경우 포함)
http_host network.http.host HTTP 호스트 헤더
http_statcode network.http.response_code HTTP 응답 상태 코드
user_agent network.http.user_agent User-Agent 헤더
virtual_name target.application F5 가상 서버의 이름
event_timestamp metadata.event_timestamp 기기의 이벤트 시간
event_source metadata.product_event_type 이벤트 유형 태그 (request_logging, response_logging)

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.