Fortinet FortiManager のログを収集する
このガイドでは、Bindplane エージェントを使用して Fortinet FortiManager ログを Google Security Operations に取り込む方法について説明します。
Fortinet FortiManager は、Fortinet のセキュリティ デバイスとネットワーク デバイスに対して、統合管理、ベスト プラクティスのコンプライアンス、ワークフローの自動化を提供する一元化されたネットワーク管理プラットフォームです。FortiManager を使用すると、管理者は Security Fabric 内の数千台の FortiGate ファイアウォールやその他の Fortinet デバイスの構成、ポリシー、ファームウェア アップデート、セキュリティ サービスを一元管理できます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス。
- Windows Server 2016 以降、または systemd を使用する Linux ホスト。
- Bindplane エージェントと Fortinet FortiManager 間のネットワーク接続。
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- システム設定を変更する権限を持つ Fortinet FortiManager 管理コンソールへの特権アクセス。
- FortiManager バージョン 5.0.7 以降。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- [ダウンロード] をクリックして、取り込み認証ファイルをダウンロードします。
Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collector
サービスは RUNNING と表示されます。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collector
サービスが [アクティブ(実行中)] と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yaml
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yaml の内容全体を次の構成に置き換えます。
receivers:
udplog:
listen_address: "0.0.0.0:514"
exporters:
chronicle/fortimanager:
compression: gzip
creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
customer_id: 'your-customer-id-here'
endpoint: malachiteingestion-pa.googleapis.com
log_type: FORTINET_FORTIMANAGER
raw_log_field: body
ingestion_labels:
env: production
source: fortimanager
service:
pipelines:
logs/fortimanager_to_chronicle:
receivers:
- udplog
exporters:
- chronicle/fortimanager
構成パラメータ
各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート。0.0.0.0:514を使用して、ポート 51 のすべてのインターフェースをリッスンします。ポート 514 で Linux の root 権限が必要な場合は、0.0.0.0:1514を使用して、ポート 1514 に送信するように FortiManager を構成します。
エクスポータの構成:
creds_file_path: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: 前の手順の顧客 ID(例:a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6)endpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
log_type:FORTINET_FORTIMANAGERにする必要がありますingestion_labels: フィルタリングと整理に使用する省略可能なラベル
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
Bindplane エージェントを再起動して変更を適用する
Linux
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows
次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を使用します。
net stop observiq-otel-collector && net start observiq-otel-collectorServices コンソールを使用する場合:
Win+Rキーを押し、「services.msc」と入力して Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Fortinet FortiManager の syslog 転送を構成する
FortiManager の syslog 構成は 2 段階のプロセスです。まず、GUI で syslog サーバーを定義し、次に CLI でローカルログ転送を有効にします。
ステップ 1: FortiManager GUI で syslog サーバーを追加する
- Fortinet FortiManager ウェブ インターフェースにログインします。
- [System Settings> Advanced> Syslog Server] に移動します。
- ツールバーの [新規作成] をクリックします。
- [Create New Syslog Server Settings] ペインが開きます。
- 以下の設定を構成します。
- 名前: わかりやすい名前を入力します(例:
Chronicle-Bindplane)。 - IP アドレス(または FQDN): Bindplane エージェント ホストの IP アドレスを入力します(例:
192.168.1.100)。 - Syslog サーバー ポート:
514と入力します(非特権ポートでリッスンするように Bindplane を構成した場合は1514)。 - Reliable Connection: UDP の場合は無効のまま(デフォルト)、TCP の場合は有効にします。
- 安全な接続: TLS 証明書を設定していない場合は、無効のままにします。
- 名前: わかりやすい名前を入力します(例:
- [OK] をクリックして、Syslog サーバーの構成を保存します。
ステップ 2: CLI でローカルログ転送を有効にする
GUI で syslog サーバーを追加したら、CLI を使用して FortiManager がローカルログを syslog サーバーに送信できるようにする必要があります。
- SSH またはコンソール経由で FortiManager CLI に接続します。
次のコマンドを実行します。
FortiManager 5.0.7 以降の場合:
config system locallog syslogd setting set syslog-name Chronicle-Bindplane set severity information set status enable end構成パラメータ:
syslog-name: GUI で構成した [名前](Chronicle-Bindplaneなど)と一致する必要があります。severity: すべてのローカルログをキャプチャするには、informationに設定します。デフォルトはnotificationで、キャプチャされるイベントの数が少なくなります。オプションは、emergency、alert、critical、error、warning、notification、information、debugです。status: ログの転送を開始するには、enableに設定します。
構成を確認します。
config system locallog syslogd setting show endBindplane エージェントのログを確認するか、Bindplane エージェントのホストでパケット キャプチャを使用して、ログが送信されていることを確認します。
Linux:
sudo tcpdump -i any port 514 -A
Windows:
Wireshark または Microsoft Message Analyzer を使用して、ポート 514 のトラフィックをキャプチャします。
FortiManager の syslog の動作に関する注意事項
- FortiManager は、管理対象の FortiGate デバイスのログではなく、独自のローカル イベントログ(システム、構成の変更、管理アクション)を構成済みの syslog サーバーに送信します。
- デフォルトでは、[Reliable Connection] は無効になっています。つまり、ログはポート 51 の UDP 経由で送信されます。[Reliable Connection] を有効にすると、ログはポート 514 の TCP 経由で送信されます。
- FortiManager の syslog メッセージは、RFC 3164 または RFC 5424 に厳密に準拠していない Fortinet 固有の形式を使用します。Google SecOps の FORTINET_FORTIMANAGER パーサーは、この形式を処理するように設計されています。
- 正確なログ タイムスタンプのために、FortiManager のシステム時刻が NTP と同期され、UTC に設定されていることを確認します。システム時刻を構成するには、[ダッシュボード] に移動し、[システム情報] ウィジェットで、[システム時刻] フィールドの横にあるシステム時刻の編集ボタンをクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| type、subtype、pri、operation、performed_on、lograte、msgrate、logratelimit、logratepeak、action、cpuusage、memusage、diskusage、disk2usage、userfrom | about.resource.attribute.labels | リソースに関連付けられたラベル。 |
| clearpass-spt、allow-routing、color、comment、fabric-object、name、node-ip-only、obj-type、sdn-addr-type、sub-type、adom、pkgname、_signal-lte-rsrq、_signal-lte-rssi、performed_on_dev、changetype | event.idm.read_only_udm.additional.fields | 標準の UDM スキーマでカバーされていない追加フィールド。 |
| event.idm.read_only_udm.about | イベントに関する情報。 | |
| event.idm.read_only_udm.extensions | イベントの拡張機能。 | |
| event.idm.read_only_udm.metadata | イベントに関するメタデータ。 | |
| cache_ttl_label | event.idm.read_only_udm.network | ネットワーク関連の情報。 |
| event.idm.read_only_udm.principal | プリンシパル エンティティに関する情報。 | |
| event.idm.read_only_udm.security_result | セキュリティ分析の結果。 | |
| event.idm.read_only_udm.target | ターゲット エンティティに関する情報。 | |
| extensions.auth.type | 認証のタイプ。 | |
| 変更 | metadata.description | イベントの説明。 |
| event_type | metadata.event_type | イベントタイプ。 |
| log_id | metadata.product_log_id | ログエントリのプロダクト固有の識別子。 |
| cache_ttl_label | network.dns.answers | DNS Answer。 |
| session_id | network.session_id | ネットワーク接続のセッション ID。 |
| adminprof | principal.administrative_domain | プリンシパルの管理ドメイン。 |
| devname | principal.asset.hostname | プリンシパルに関連付けられているアセットのホスト名。 |
| src_ip | principal.asset.ip | プリンシパルに関連付けられたアセットの IP アドレス。 |
| devname | principal.hostname | プリンシパルのホスト名。 |
| src_ip | principal.ip | プリンシパルの IP アドレス。 |
| device_id | principal.resource.product_object_id | リソースのプロダクト固有の識別子。 |
| principal.resource.resource_type | リソースのタイプ。 | |
| uuid | principal.user.userid | プリンシパル ユーザーのユーザー ID。 |
| action_details | security_result.action | セキュリティ イベントの結果として行われたアクション。 |
| ワイルドカード、サブネット、end-ip、start-ip | security_result.detection_fields | セキュリティ結果の検出に使用されるフィールド。 |
| msg | security_result.summary | セキュリティ結果の概要。 |
| target_ip、tar_ip、remote_ip | target.asset.ip | ターゲットに関連付けられているアセットの IP アドレス。 |
| target_ip、tar_ip、remote_ip | target.ip | ターゲットの IP アドレス。 |
| tar_port、remote_port | target.port | ターゲットのポート番号。 |
| ユーザー | target.user.userid | ターゲット ユーザーのユーザー ID。 |
| metadata.vendor_name | ベンダー名。 | |
| metadata.product_name | 商品名。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。