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 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인 경우 열세 번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 키가 'Id'인 추가 필드를 만드는 데 사용됩니다.
column16 principal.ip, principal.asset.ip (IPv6이고 column9가 6인 경우) 설명이 CSV 형식이고 열 9가 6인 경우 16번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 column9가 4인 경우 프로토콜 식별에 사용됩니다.
column17 target.ip, target.asset.ip (IPv6이고 ip_failure가 아닌 경우) 설명이 CSV 형식인 경우 열17 CSV 열에서 매핑되며, 열9는 6이고 값은 유효한 IP입니다. TCP/UDP 이벤트의 경우 프로토콜 식별에 사용됩니다.
column18 principal.port (UDP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP인 경우 열여덟 번째 CSV 열에서 매핑됩니다. TCP/UDP 이벤트의 경우 network.received_bytes에 매핑됩니다.
column19 target.port (UDP인 경우) 설명이 CSV 형식이고 프로토콜이 UDP인 경우 열 아홉 번째 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 (키: 'Compression Algorithm') 설명 필드에서 추출하여 추가 필드로 추가했습니다.
내림차순 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'로 설정합니다.

변경사항

2024-05-08

  • 'description' 필드를 파싱하는 Grok 패턴을 추가했습니다.
  • 'principal_ip'가 'principal.ip' 및 'principal.asset.ip'에 매핑되었습니다.
  • 'src_port'가 'principal.port'에 매핑되었습니다.
  • 'compression_algo'가 'additional.fields'에 매핑되었습니다.
  • 'status'가 'security_result.detection_fields'에 매핑되었습니다.
  • 'principal_username'이 'principal.user.userid'에 매핑되었습니다.
  • 'target_host'가 'target.hostname' 및 'target.asset.hostname'에 매핑되었습니다.

2023-05-05

  • 'network.ip_protocol'을 매핑하기 전에 대문자로 변환을 추가했습니다.
  • 'column13'에 프로토콜이 있는 경우 'column18'이 'principal.port'에 매핑되었습니다.
  • 'column13'에 프로토콜이 있는 경우 'column19'가 'target.port'에 매핑되었습니다.
  • 'column13'에 프로토콜이 있는 경우 'column20'이 'additional.fields'에 'data-length'로 매핑되었습니다.

2023-02-20

  • 새로운 filter-log 형식 및 syslog-ng 형식을 지원하도록 Grok 패턴이 추가되었습니다.

2022-10-04

  • event_types가 'NETWORK_CONNECTION'인 로그에서 방화벽 기기 이름이 principal.hostname 대신 intermediary.hostname으로 다시 매핑되었습니다.

2022-09-05

  • Enhancement-
  • csv 형식 로그에서 다음 필드가 매핑되었습니다.
  • 'IP' 및 'MAC'를 검색하는 grok 패턴이 추가되었습니다.
  • 'source-address'인 'column19'가 'network.dhcp.yiaddr'에 매핑되었습니다.
  • 'column7'이 'pass'와 일치하는 경우 'security_result.action'이 'ALLOW'에 매핑되었습니다.
  • 'column9'가 'IPV6'을 나타내는 '6'과 일치하는 경우 다음 필드가 매핑됩니다.
  • 'destination-address'인 'column17'이 'target.ip'에 매핑되었습니다.
  • 'source-address'인 'column16'이 'principal.ip'에 매핑되었습니다.
  • 'column16' 및 'column17'이 null이 아닌 경우 'event_type'이 'NETWORK_CONNECTION'에 매핑되었습니다.
  • 'hop_limit'인 'column12'가 'additional.fields'에 매핑되었습니다.
  • 'ip_protocol'인 'column13'이 'network.ip_protocol'에 매핑되었습니다.
  • 커스텀 파서를 기본 파서로 마이그레이션했습니다.
  • 'event_type'을 'STATUS_UPDATE'로 설정하는 조건부 검사를 추가했습니다.

2022-06-30

  • 'ttl'이 'additional.fields'에 매핑되었습니다.
  • 'Id'가 'additional.fields'에 매핑되었습니다.
  • 'Offset'이 'additional.fields'에 매핑되었습니다.
  • 'Data length'가 'additional.fields'에 매핑되었습니다.
  • 'Length'가 'additional.fields'에 매핑되었습니다.
  • 'Sequence-number'가 'additional.fields'에 매핑되었습니다.

2022-04-11

  • 새로 생성된 파서