Netgate pfSense ログを収集する
以下でサポートされています。
Google SecOpsSIEM
このドキュメントでは、Google Security Operations フォワーダーを使用して Netgate pfSense のログを収集する方法について説明します。
詳細については、Google SecOps へのデータの取り込みをご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル PFSENSE
が付加されたパーサーに適用されます。
Netgate pfSense を構成する
- 管理者認証情報を使用して pfSense インターフェースにログインします。
- [グローバル ログ] 設定で、次の操作を行います。
- [ステータス> システムログ> 設定] を選択します。
- [設定] タブで [一般的なロギング オプション] を選択し、次の操作を行います。
- [Log message format] フィールドで、[syslog(RFC 5424、RFC 3339 マイクロ秒精度のタイムスタンプ)] を選択します。
- [Log firewall default blocks] フィールドで、次のチェックボックスをオンにします。
- ルールセットのデフォルトのブロックルールから一致したパケットをログに記録する
- ルールセットに設定されたデフォルトのパスルールに一致するパケットをログに記録する
- 「ボゴン ネットワークをブロック」ルールによってブロックされたパケットをログに記録する
- 「プライベート ネットワークをブロック」ルールによってブロックされたパケットをログに記録する
- 新しい設定を保存するには、[保存] をクリックします。
ファイアウォール ログを Google SecOps に送信する
- [グローバル ログ] 設定で、[ステータス > システム ログ > 設定] を選択します。
- [設定] タブで [リモート ロギング オプション] を選択し、次の操作を行います。
- [リモート ロギングを有効にする] フィールドで、[ログ メッセージをリモート syslog サーバーに送信する] チェックボックスをオンにします。
- [送信元アドレス] フィールドはデフォルト値の [任意] のままにします。
- [IP プロトコル] フィールドで、送信元アドレスがデフォルト値として選択されている場合は、IP アドレスを指定する必要はありません。それ以外の場合は、IP アドレスを入力します。
- [リモート ログ サーバー] で、Google SecOps 転送元の IP アドレスを指定します。
- [リモート syslog の内容] で、[ファイアウォール イベント] チェックボックスをオンにします。
- 変更を保存するには、[保存] をクリックします。
Netgate pfSense ログを取り込むように Google SecOps フォワーダーを構成する
- [SIEM の設定] > [転送元] を選択します。
- [新しいフォワーダーの追加] をクリックします。
- [フォワーダーの名前] フィールドに、フォワーダーの一意の名前を入力します。
- [送信]、[確認] の順にクリックします。フォワーダーが追加され、[コレクタの構成を追加する] ウィンドウが表示されます。
- [コレクタ名] フィールドに、コレクタの一意の名前を入力します。
- [ログタイプ] で [pfSense] を選択します。
- [コレクタのタイプ] フィールドで [Syslog] を選択します。
- 次の必須入力パラメータを構成します。
- プロトコル: コレクタが syslog データをリッスンするために使用する接続プロトコルを指定します。
- アドレス: コレクタが存在し、syslog データをリッスンするターゲット IP アドレスまたはホスト名を指定します。
- ポート: コレクタが存在し、syslog データをリッスンするターゲット ポートを指定します。
- [送信] をクリックします。
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.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 |
イベントに関連付けられたユーザー名が抽出され、マッピングされます。 |
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.ip 、principal.asset.ip (IPv6 で列 9 が 6 の場合) |
説明が CSV 形式で、列 9 が 6 の場合、CSV の 16 番目の列からマッピングされます。TCP/UDP イベントの場合、列 9 が 4 の場合、プロトコルの識別に使用されます。 |
column17 | target.ip 、target.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.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 の場合、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.ip 、principal.asset.ip |
説明フィールドから抽出され、プリンシパル IP アドレスを表します。 |
principal_username | principal.user.userid |
説明フィールドから抽出され、プリンシパルのユーザー名を表します。 |
ステータス | security_result.detection_fields (キー: "status") |
説明フィールドから抽出され、セキュリティ結果内の検出フィールドとして追加されます。 |
target_host | target.hostname 、target.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
- 新しく作成されたパーサー