Netgate pfSense のログを収集する
このドキュメントでは、Google Security Operations フォワーダーを使用して Netgate pfSense ログを収集する方法について説明します。
詳細については、Google SecOps へのデータの取り込みをご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル PFSENSE
が付加されたパーサーに適用されます。
Netgate pfSense を構成する
- 管理者認証情報を使用して pfSense インターフェースにログインします。
- [グローバルログ] 設定で、次の操作を行います。
- [ステータス> システムログ> 設定] を選択します。
- [設定] タブで、[一般的なロギング オプション] を選択して、次の操作を行います。
- [Log message format] フィールドで、[syslog (RFC 5424, with RFC 3339 microsecond-precision timestamps)] を選択します。
- [Log firewall default blocks] フィールドで、次のチェックボックスをオンにします。
- ルールセットのデフォルトのブロックルールと一致したログパケット
- ルールセットに設定されたデフォルトのパスルールと一致したログパケット
- 「ボゴン ネットワークをブロックする」ルールでブロックされたパケットをログに記録する
- 「プライベート ネットワークをブロック」ルールでブロックされたパケットをログに記録する
- 新しい設定を保存するには、[保存] をクリックします。
ファイアウォール ログを Google SecOps に送信する
- [グローバル ログ] 設定で、[ステータス > システムログ > 設定] を選択します。
- [設定] タブで、[リモート ロギング オプション] を選択し、次の操作を行います。
- [リモート ロギングを有効にする] フィールドで、[ログ メッセージをリモート Syslog サーバーに送信する] チェックボックスをオンにします。
- [送信元アドレス] フィールドはデフォルト値の [任意] のままにします。
- [IP プロトコル] フィールドで、送信元アドレスがデフォルト値として選択されている場合は、IP アドレスを指定する必要はありません。それ以外の場合は、IP アドレスを入力します。
- [Remote log servers] に、Google SecOps フォワーダーの IP アドレスを指定します。
- [リモート syslog の内容] で、[ファイアウォール イベント] チェックボックスをオンにします。
- 変更を保存するには、[保存] をクリックします。
Netgate pfSense のログを取り込むように Google SecOps フォワーダーを構成する
- [SIEM の設定] > [フォワーダー] を選択します。
- [新しいフォワーダーの追加] をクリックします。
- [Forwarder name] フィールドに、フォワーダーの一意の名前を入力します。
- [Submit]、[Confirm] の順にクリックします。フォワーダーが追加され、[コレクタの構成を追加する] ウィンドウが表示されます。
- [Collector name] フィールドに、コレクタの一意の名前を入力します。
- [ログタイプ] として [pfSense] を選択します。
- [Collector type] フィールドで [Syslog] を選択します。
- 次の必須入力パラメータを構成します。
- Protocol: コレクタが syslog データのリッスンに使用する接続プロトコルを指定します。
- Address: コレクタが存在し、Syslog データをリッスンするターゲット IP アドレスまたはホスト名を指定します。
- Port: コレクタが存在し、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 |
ログがコマンド実行を示している場合、説明フィールドから抽出されます。 |
説明 | 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 パターンを使用して、特定のログ形式から抽出されます。 |
timestamp | 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 の場合、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 (キー: 「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」に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。