Netgate pfSense ログを収集する

以下でサポートされています。

このドキュメントでは、Google Security Operations フォワーダーを使用して Netgate pfSense のログを収集する方法について説明します。

詳細については、Google SecOps へのデータの取り込みをご覧ください。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル PFSENSE が付加されたパーサーに適用されます。

Netgate pfSense を構成する

  1. 管理者認証情報を使用して pfSense インターフェースにログインします。
  2. [グローバル ログ] 設定で、次の操作を行います。
    1. [ステータス> システムログ> 設定] を選択します。
    2. [設定] タブで [一般的なロギング オプション] を選択し、次の操作を行います。
      1. [Log message format] フィールドで、[syslog(RFC 5424、RFC 3339 マイクロ秒精度のタイムスタンプ)] を選択します。
      2. [Log firewall default blocks] フィールドで、次のチェックボックスをオンにします。
        • ルールセットのデフォルトのブロックルールから一致したパケットをログに記録する
        • ルールセットに設定されたデフォルトのパスルールに一致するパケットをログに記録する
        • 「ボゴン ネットワークをブロック」ルールによってブロックされたパケットをログに記録する
        • 「プライベート ネットワークをブロック」ルールによってブロックされたパケットをログに記録する
  3. 新しい設定を保存するには、[保存] をクリックします。

ファイアウォール ログを Google SecOps に送信する

  1. [グローバル ログ] 設定で、[ステータス > システム ログ > 設定] を選択します。
  2. [設定] タブで [リモート ロギング オプション] を選択し、次の操作を行います。
    • [リモート ロギングを有効にする] フィールドで、[ログ メッセージをリモート syslog サーバーに送信する] チェックボックスをオンにします。
    • [送信元アドレス] フィールドはデフォルト値の [任意] のままにします。
    • [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 フィールドは UDM メタデータの説明にマッピングされます(syslog-ng アプリケーション ログを除く)。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.hostnameprincipal.asset.hostname プリンシパル IP が存在しない場合、ホストはプリンシパル ホスト名として扱われます。
mac principal.macnetwork.dhcp.chaddr DHCP リクエストに関連付けられた MAC アドレスが抽出され、マッピングされます。
src_ip principal.ipprincipal.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 イベントに関連付けられたユーザー名が抽出され、マッピングされます。
column1 security_result.rule_id 説明が CSV 形式の場合は、最初の CSV 列からマッピングされます。
column6 security_result.rule_type 説明が CSV 形式の場合、6 番目の CSV 列からマッピングされます。
column7 security_result.action 説明が CSV 形式の場合、7 番目の CSV 列からマッピングされます。「BLOCK」または「ALLOW」に変換されます。
column8 network.direction 説明が CSV 形式の場合、8 番目の CSV 列からマッピングされます。「INBOUND」または「OUTBOUND」に変換されました。
column13 network.ip_protocol(UDP または ICMP の場合) 説明が CSV 形式で、プロトコルが UDP または ICMP の場合、CSV の 13 番目の列からマッピングされます。TCP/UDP イベントの場合、キー「Id」を持つ追加フィールドを作成するために使用されます。
column16 principal.ipprincipal.asset.ip(IPv6 で列 9 が 6 の場合) 説明が CSV 形式で、列 9 が 6 の場合、CSV の 16 番目の列からマッピングされます。TCP/UDP イベントの場合、列 9 が 4 の場合、プロトコルの識別に使用されます。
column17 target.iptarget.asset.ip(IPv6 で ip_failure でない場合) 説明が CSV 形式で、列 9 が 6 で、値が有効な IP の場合、CSV の 17 番目の列からマッピングされます。TCP/UDP イベントの場合、プロトコルの識別に使用されます。
column18 principal.port(UDP の場合) 説明が CSV 形式で、プロトコルが UDP の場合、18 番目の CSV 列からマッピングされます。TCP/UDP イベントの場合、network.received_bytes にマッピングされます。
column19 target.port(UDP の場合) 説明が CSV 形式で、プロトコルが UDP の場合、CSV の 19 番目の列からマッピングされます。DHCP イベントの場合、network.dhcp.yiaddr にマッピングされます。他のイベントの場合は、principal.ipprincipal.asset.ip にマッピングされます。
column20 additional.fields(キー: "data_length")(UDP の場合) 説明が CSV 形式で、プロトコルが UDP の場合、20 番目の CSV 列からマッピングされます。他のイベントの場合は、target.iptarget.asset.ip にマッピングされます。
column21 principal.port(TCP/UDP の場合) 説明が CSV 形式で、プロトコルが TCP または UDP の場合、CSV の 21 列目からマッピングされます。
column22 target.port(TCP/UDP の場合) 説明が CSV 形式で、プロトコルが TCP または UDP の場合、CSV の 22 番目の列からマッピングされます。
column23 additional.fields(キー: data_length)(TCP/UDP の場合) 説明が CSV 形式で、プロトコルが TCP または UDP の場合、CSV の 23 番目の列からマッピングされます。
column24 additional.fields(キー: tcp_flags)(TCP の場合) 説明が CSV 形式で、プロトコルが TCP の場合、CSV の 24 番目の列からマッピングされます。
column25 additional.fields(キー: 「sequence_number」)(TCP/UDP の場合) 説明が CSV 形式で、プロトコルが TCP または UDP の場合、CSV の 25 列目からマッピングされます。
column29 additional.fields(キー: tcp_options)(TCP の場合) 説明が CSV 形式で、プロトコルが TCP の場合、CSV の 29 番目の列からマッピングされます。
compression_algo additional.fields(キー:「Compression Algorithm」) 説明フィールドから抽出され、追加フィールドとして追加されました。
降順 metadata.description メッセージ フィールドから抽出され、説明として使用されます。
principal_ip principal.ipprincipal.asset.ip 説明フィールドから抽出され、プリンシパル IP アドレスを表します。
principal_username principal.user.userid 説明フィールドから抽出され、プリンシパルのユーザー名を表します。
ステータス security_result.detection_fields(キー: "status") 説明フィールドから抽出され、セキュリティ結果内の検出フィールドとして追加されます。
target_host target.hostnametarget.asset.hostname description フィールドから抽出され、ターゲット ホスト名を表します。
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」を「data-length」として「additional.fields」にマッピングしました。

2023-02-20

  • 新しいフィルタログ形式と 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」の場合は、次のフィールドがマッピングされます。
  • 「column17」(=「destination-address」)を「target.ip」にマッピングしました。
  • 「source-address」である「column16」を「principal.ip」にマッピングしました。
  • 「column16」と「column17」が null でない場合、「event_type」を「NETWORK_CONNECTION」にマッピングしました。
  • 「column12」(=「hop_limit」)を「additional.fields」にマッピングしました。
  • 「column13」(=「ip_protocol」)を「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

  • 新しく作成されたパーサー