Netgate pfSense 로그 수집

다음에서 지원:

이 문서에서는 Google Security Operations 전달자를 사용하여 Netgate pfSense 로그를 수집하는 방법을 설명합니다.

자세한 내용은 Google SecOps에 데이터 수집을 참조하세요.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 PFSENSE 수집 라벨이 있는 파서에 적용됩니다.

Netgate pfSense 구성

  1. 관리자 사용자 인증 정보로 pfSense 인터페이스에 로그인합니다.
  2. 전역 로그 설정에서 다음을 수행합니다.
    1. 상태 > 시스템 로그 > 설정을 선택합니다.
    2. 설정 탭에서 일반 로깅 옵션을 선택하고 다음을 실행합니다.
      1. 로그 메시지 형식 필드에서 syslog (RFC 5424, RFC 3339 마이크로초 정밀도 타임스탬프 사용)를 선택합니다.
      2. 방화벽 기본 차단 로깅 필드에서 다음 체크박스를 선택합니다.
        • 규칙 세트의 기본 차단 규칙에서 일치하는 패킷을 로깅합니다.
        • 규칙 세트에 배치된 기본 통과 규칙에서 일치하는 패킷 로깅
        • '보곤 네트워크 차단' 규칙에 의해 차단된 패킷 로깅
        • '비공개 네트워크 차단' 규칙에 의해 차단된 패킷 로깅
  3. 새 설정을 저장하려면 저장을 클릭합니다.

방화벽 로그를 Google SecOps에 전송

  1. 전역 로그 설정에서 상태 > 시스템 로그 > 설정을 선택합니다.
  2. 설정 탭에서 원격 로깅 옵션을 선택하고 다음을 실행합니다.
    • 원격 로깅 사용 설정 필드에서 원격 syslog 서버에 로그 메시지 전송 체크박스를 선택합니다.
    • 소스 주소 필드에서 기본값을 Any로 유지합니다.
    • IP 프로토콜 필드에서 소스 주소가 기본값으로 선택된 경우 IP 주소를 지정하지 않아도 됩니다. 그렇지 않으면 IP 주소를 입력합니다.
    • 원격 로그 서버에서 Google SecOps 포워더 IP 주소를 지정합니다.
    • 원격 syslog 콘텐츠에서 방화벽 이벤트 체크박스를 선택합니다.
  3. 변경사항을 저장하려면 저장을 클릭합니다.

Netgate pfSense 로그를 수집하도록 Google SecOps 전달자 구성

  1. SIEM 설정 > 포워더를 선택합니다.
  2. 새 전달자 추가를 클릭합니다.
  3. 전달자 이름 필드에 전달자의 고유한 이름을 입력합니다.
  4. 제출을 클릭한 다음 확인을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
  5. 수집기 이름 필드에 수집기의 고유한 이름을 입력합니다.
  6. 로그 유형으로 pfSense를 선택합니다.
  7. 수집기 유형 필드에서 Syslog를 선택합니다.
  8. 다음 필수 입력 매개변수를 구성합니다.
    • 프로토콜: 수집기가 syslog 데이터를 리슨하는 데 사용하는 연결 프로토콜을 지정합니다.
    • 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
    • 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
  9. 제출을 클릭합니다.

Google SecOps 전달자에 대한 자세한 내용은 Google SecOps UI를 통해 전달자 구성 관리를 참고하세요.

전달자를 만들 때 문제가 발생하면 Google SecOps 지원팀에 문의하세요.

필드 매핑 참조

이 pfSense 방화벽 파서는 grok 패턴을 사용하여 syslog 메시지에서 필드를 추출하고 DHCP 및 방화벽 이벤트를 비롯한 다양한 로그 형식을 처리합니다. 그런 다음 추출된 필드를 UDM에 매핑하여 IP 주소, MAC 주소, 사용자 이름, 네트워크 세부정보와 같은 컨텍스트 정보로 데이터를 보강합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
애플리케이션 principal.application 이 값은 grok 패턴을 사용하여 로그 메시지에서 추출됩니다. syslog 메시지의 경우 애플리케이션 이름은 일반적으로 호스트 이름과 타임스탬프 뒤에 있습니다.
명령어 principal.process.command_line 로그가 명령어 실행을 나타낼 때 설명 필드에서 추출됩니다.
description metadata.description 설명 필드는 syslog-ng 애플리케이션 로그를 제외하고 UDM 메타데이터 설명에 매핑됩니다. syslog-ng 애플리케이션 로그의 경우 metadata.description에 매핑됩니다. DHCP 이벤트의 경우 dhcp_type이 설명 앞에 추가됩니다.
dhcp_type metadata.product_event_type DHCP 메시지 유형입니다 (예: DHCPDISCOVER, DHCPOFFER)가 추출되고 매핑됩니다.
호스트 intermediary.hostname 또는 intermediary.ip 호스트 값이 유효한 IP 주소인 경우 intermediary.ip에 매핑됩니다. 그렇지 않으면 intermediary.hostname에 매핑됩니다.
호스트 principal.hostname, principal.asset.hostname 주 구성원 IP가 없으면 호스트가 주 구성원 호스트 이름으로 처리됩니다.
mac principal.mac, network.dhcp.chaddr DHCP 요청과 연결된 MAC 주소가 추출되어 매핑됩니다.
src_ip principal.ip, principal.asset.ip grok 패턴을 사용하여 특정 로그 형식에서 추출됩니다.
src_mac principal.mac grok 패턴을 사용하여 특정 로그 형식에서 추출됩니다.
dst_mac target.mac grok 패턴을 사용하여 특정 로그 형식에서 추출됩니다.
타임스탬프 metadata.event_timestamp 타임스탬프가 로그 메시지에서 추출되어 UDM 타임스탬프 형식으로 변환됩니다. 시간대 정보 (tz)는 사용 가능한 경우 전환 전 타임스탬프에 추가됩니다.
timestamp_no_year metadata.event_timestamp 연도가 없는 타임스탬프가 있으면 파싱되고 파싱 프로세스 중에 현재 연도가 추가됩니다.
사용자 principal.user.userid 이벤트와 연결된 사용자 이름이 추출되어 매핑됩니다.
1 열 security_result.rule_id 설명이 CSV 형식인 경우 첫 번째 CSV 열에서 매핑됩니다.
column6 security_result.rule_type 설명이 CSV 형식인 경우 여섯 번째 CSV 열에서 매핑됩니다.
column7 security_result.action 설명이 CSV 형식인 경우 일곱 번째 CSV 열에서 매핑됩니다. 'BLOCK' 또는 'ALLOW'로 변환됩니다.
column8 network.direction 설명이 CSV 형식인 경우 여덟 번째 CSV 열에서 매핑됩니다. 'INBOUND' 또는 'OUTBOUND'로 변환됩니다.
column13 network.ip_protocol (UDP 또는 ICMP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP 또는 ICMP인 경우 13번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 키가 'Id'인 추가 필드를 만드는 데 사용됩니다.
column16 principal.ip, principal.asset.ip (IPv6이고 column9가 6인 경우) 설명이 CSV 형식이고 column9가 6인 경우 16번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 column9가 4이면 프로토콜 식별에 사용됩니다.
column17 target.ip, target.asset.ip (IPv6이고 ip_failure가 아닌 경우) 설명이 CSV 형식이고 column9가 6이며 값이 유효한 IP인 경우 17번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 프로토콜 식별에 사용됩니다.
column18 principal.port (UDP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP인 경우 18번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 network.received_bytes에 매핑됩니다.
column19 target.port (UDP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP인 경우 19번째 CSV 열에서 매핑됩니다. DHCP 이벤트의 경우 network.dhcp.yiaddr에 매핑됩니다. 다른 이벤트의 경우 principal.ip, principal.asset.ip에 매핑됩니다.
column20 additional.fields (키: 'data_length') (UDP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP인 경우 20번째 CSV 열에서 매핑됩니다. 다른 이벤트의 경우 target.ip, target.asset.ip에 매핑됩니다.
column21 principal.port (TCP/UDP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP 또는 UDP인 경우 21번째 CSV 열에서 매핑됩니다.
column22 target.port (TCP/UDP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP 또는 UDP인 경우 22번째 CSV 열에서 매핑됩니다.
column23 additional.fields (키: 'data_length') (TCP/UDP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP 또는 UDP인 경우 23번째 CSV 열에서 매핑됩니다.
column24 additional.fields (키: 'tcp_flags') (TCP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP인 경우 24번째 CSV 열에서 매핑됩니다.
column25 additional.fields (키: 'sequence_number') (TCP/UDP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP 또는 UDP인 경우 25번째 CSV 열에서 매핑됩니다.
column29 additional.fields (키: 'tcp_options') (TCP인 경우) 설명이 CSV 형식이고 프로토콜이 TCP인 경우 29번째 CSV 열에서 매핑됩니다.
compression_algo additional.fields (키: '압축 알고리즘') 설명 필드에서 추출되어 추가 필드로 추가되었습니다.
내림차순 metadata.description 메시지 필드에서 추출되어 설명으로 사용됩니다.
principal_ip principal.ip, principal.asset.ip 설명 필드에서 추출되며 주 구성원 IP 주소를 나타냅니다.
principal_username principal.user.userid 설명 필드에서 추출되며 주 구성원의 사용자 이름을 나타냅니다.
상태 security_result.detection_fields (키: 'status') 설명 필드에서 추출되어 보안 결과 내에 감지 필드로 추가됩니다.
target_host target.hostname, target.asset.hostname 설명 필드에서 추출되며 타겟 호스트 이름을 나타냅니다.
src_port principal.port 설명 필드에서 추출되며 소스 포트를 나타냅니다. 다양한 로그 필드와 파서 로직을 기반으로 결정됩니다. NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE 또는 GENERIC_EVENT일 수 있습니다. 'PFSENSE'로 하드코딩됨 'PFSENSE'로 하드코딩됨 'PFSENSE'로 하드코딩됨 DHCP 이벤트의 경우 'DHCP'로 설정됩니다. DHCPDISCOVER 및 DHCPREQUEST의 경우 'BOOTREQUEST'로 설정하고 DHCPOFFER 및 DHCPACK의 경우 'BOOTREPLY'로 설정합니다. dhcp_type 필드에 따라 'DISCOVER', 'REQUEST', 'OFFER' 또는 'ACK'로 설정됩니다.

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