F5 BIG-IP LTM のログを収集する

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

このドキュメントでは、Bindplane を使用して F5 BIG-IP LTM ログを Google Security Operations に取り込む方法について説明します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • F5 BIG-IP LTM デバイスへの管理者アクセス権(TMSH またはウェブ UI)

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

      receivers:
        # UDP syslog listener (RFC5424 over UDP)
        udplog:
          listen_address: "0.0.0.0:514"
    
      exporters:
        chronicle/chronicle_w_labels:
          compression: gzip
          # Adjust the path to the credentials file you downloaded in Step 1
          creds_file_path: "/opt/observiq-otel-collector/ingestion-auth.json"
          # Replace with your actual customer ID from Step 2
          customer_id: "<YOUR_CUSTOMER_ID>"
          # Select the appropriate regional endpoint based on where your Google SecOps instance is provisioned
          # For regional endpoints, see: [https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints](https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints)
          endpoint: "<YOUR_REGIONAL_ENDPOINT>"
          # Set the log_type to ensure the correct parser is applied
          log_type: "F5_BIGIP_LTM"
          raw_log_field: body
          # You can optionally add other custom ingestion labels here if needed
          ingestion_labels:
    
      service:
        pipelines:
          logs/f5ltm:
            receivers: [udplog]
            exporters: [chronicle/chronicle_w_labels]
    
    • listen_address0.0.0.0:514 に設定され、任意のソースからの syslog を受け入れます。特定のインターフェースに制限する必要がある場合は調整します。
    • UDP ポート 514 は標準の syslog ポートです。ポート 514 に root 権限が必要な場合は、1024 より大きいポート(5514 など)を使用し、それに応じて F5 構成を調整できます。
    • UDP ではなく TCP の場合は、tcplog レシーバを作成し、F5 リモート高速ログ プロトコルを tcp に設定します。
  3. ファイルを保存し、エディタを終了します。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

F5 BIG-IP LTM の Syslog 転送を構成する

オプション A: TMSH(コマンドライン インターフェース)を使用する

  1. syslog 宛先のプールを作成する

    1. SSH 経由で F5 BIG-IP LTM デバイスに接続します。
    2. 次のコマンドを実行します。

      tmsh create ltm pool f5_syslog_pool members add { <BINDPLANE_IP>:514 } monitor gateway_icmp
      
      • <BINDPLANE_IP> は、Bindplane エージェント ホストの IP アドレスに置き換えます。
  2. ログの宛先を作成する

    tmsh create sys log-config destination remote-high-speed-log f5_hsl_dest protocol udp pool-name f5_syslog_pool
    
    tmsh create sys log-config destination remote-syslog f5_remote_syslog_dest format rfc5424 remote-high-speed-log f5_hsl_dest
    
  3. ログ パブリッシャーを作成する

    tmsh create sys log-config publisher f5_log_publisher destinations add { f5_remote_syslog_dest }
    
  4. リクエスト ロギング プロファイルを作成する

    tmsh create ltm profile request-log f5_ltm_request_log \
      request-log-pool f5_syslog_pool request-log-protocol mds-udp \
      request-log-template 'event_source="request_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",event_timestamp="$DATE_HTTP"' \
      request-logging enabled \
      response-log-pool f5_syslog_pool response-log-protocol mds-udp \
      response-log-template 'event_source="response_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",http_statcode="$HTTP_STATCODE",event_timestamp="$DATE_HTTP"' \
      response-logging enabled
    
  5. ロギング プロファイルを仮想サーバーに適用する

    tmsh modify ltm virtual <VIRTUAL_SERVER_NAME> profiles add { f5_ltm_request_log }
    
    • <VIRTUAL_SERVER_NAME> は、仮想サーバーの名前に置き換えます。
  6. 構成を保存

    tmsh save sys config
    

オプション B: F5 ウェブ UI(構成ユーティリティ)を使用する

  1. syslog 宛先のプールを作成する

    1. F5 BIG-IP LTM ウェブ インターフェースにログインします。
    2. [Local Traffic] > [Pools] > [Pool List] の順に移動します。
    3. [作成] をクリックします。
    4. 次の構成の詳細を入力します。
      • 名前: 「f5_syslog_pool」と入力します。
      • ヘルスモニター: gateway_icmp を選択します。
    5. [リソース] セクションの [新しいメンバー] で、次の操作を行います。
      • アドレス: Bindplane Agent の IP アドレスを入力します。
      • サービス ポート: 「514」と入力します。
    6. [追加] をクリックします。
    7. [Finished] をクリックします。
  2. リモートの高速ログの宛先を作成する

    1. [システム> ログ> 設定> ログの宛先] に移動します。
    2. [作成] をクリックします。
    3. 次の構成の詳細を入力します。
      • 名前: 「f5_hsl_dest」と入力します。
      • タイプ: [リモート高速ログ] を選択します。
      • Protocol: [UDP] を選択します。
      • プール名: f5_syslog_pool を選択します。
    4. [Finished] をクリックします。
  3. リモート syslog の宛先を作成する

    1. [システム> ログ> 設定> ログの宛先] に移動します。
    2. [作成] をクリックします。
    3. 次の構成の詳細を入力します。
      • 名前: 「f5_remote_syslog_dest」と入力します。
      • タイプ: [リモート Syslog] を選択します。
      • Syslog Format: [RFC5424] を選択します。
      • リモート高速ログ: f5_hsl_dest を選択します。
    4. [Finished] をクリックします。
  4. ログ パブリッシャーを作成する

    1. [システム> ログ> 設定> ログ パブリッシャー] に移動します。
    2. [作成] をクリックします。
    3. 次の構成の詳細を入力します。
      • 名前: 「f5_log_publisher」と入力します。
      • 宛先: f5_remote_syslog_dest を [利用可能] から [選択済み] に移動します。
    4. [Finished] をクリックします。
  5. リクエスト ロギング プロファイルを作成する

    1. [Local Traffic] > [Profiles] > [Other] > [Request Logging] に移動します。
    2. [作成] をクリックします。
    3. 次の構成の詳細を入力します。
      • 名前: 「f5_ltm_request_log」と入力します。
      • 保護者のプロフィール: request-log を選択します。
    4. [リクエスト設定] で次の操作を行います。

      • リクエスト ロギング: [有効] を選択します。
      • リクエストログ プロトコル: [mds-udp] を選択します。
      • リクエスト ログプール: f5_syslog_pool を選択します。
      • リクエストログ テンプレート: 次のように入力します。

        event_source="request_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",event_timestamp="$DATE_HTTP"
        
    5. [回答の設定] で次の操作を行います。

      • レスポンス ロギング: [有効] を選択します。
      • Response Log Protocol: [mds-udp] を選択します。
      • レスポンス ログプール: f5_syslog_pool を選択します。
      • Response Log Template: 次のように入力します。

        event_source="response_logging",hostname="$BIGIP_HOSTNAME",client_ip="$CLIENT_IP",server_ip="$SERVER_IP",http_method="$HTTP_METHOD",http_uri="$HTTP_URI",http_host="${host}",virtual_name="$VIRTUAL_NAME",http_statcode="$HTTP_STATCODE",event_timestamp="$DATE_HTTP"
        
  6. [Finished] をクリックします。

リクエスト ロギング プロファイルを仮想サーバーに適用する

  1. [Local Traffic] > [Virtual Servers] > [Virtual Server List] の順に移動します。
  2. 仮想サーバー名をクリックします。
  3. [リソース] タブに移動します。
  4. [iRules and Profiles] で、[Profiles] の横にある [Manage] をクリックします。
  5. [Available] で f5_ltm_request_log を見つけて、[Selected] に移動します。
  6. [Finished] をクリックします。
  7. [更新] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
hostname principal.hostname Syslog ホスト名(ログを生成したデバイス)
client_ip principal.ip クライアントの送信元 IP アドレス
client_port principal.port 送信元ポート(テンプレートに含まれている場合)
server_ip target.ip 宛先 IP(プール メンバー)
server_port target.port 宛先ポート(プール メンバー)
http_method network.http.method HTTP リクエスト メソッド
http_uri network.http.url HTTP リクエスト URI(パス/クエリを含む)
http_host network.http.host HTTP Host ヘッダー
http_statcode network.http.response_code HTTP レスポンス ステータス コード
user_agent network.http.user_agent ユーザー エージェント ヘッダー
virtual_name target.application F5 仮想サーバーの名前
event_timestamp metadata.event_timestamp デバイスからのイベント時刻
event_source metadata.product_event_type イベントタイプタグ(request_logging、response_logging)

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。