A10 ネットワーク ロードバランサのログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して A10 Network Load Balancer ログを Google Security Operations にエクスポートする方法について説明します。パーサーは、まず grok パターンを使用して関連するフィールドを抽出します。次に、条件ステートメント(if)を使用して、抽出されたフィールドの存在と内容に基づいて統合データモデル(UDM)にマッピングし、最終的にイベントタイプを分類します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • A10 ロードバランサへの特権アクセス権があることを確認します。

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

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

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

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

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:
        udplog:
            # Replace the port and IP address as required
            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: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: A10_LOAD_BALANCER
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

A10 ロードバランサで Syslog サーバーを構成する

  1. SSH クライアントを使用して A10 ロードバランサへの SSH 接続を確立します。
  2. 次のコマンドを実行して構成モードに入ります。

    config
    
  3. 次のコマンドを使用して、リモート syslog サーバーを構成します。

    logging host <bindplane-server-ip> <port-number>
    
    • <bindplane-server-ip> は Bindplane の IP アドレスに、<port-number> は Bindplane で構成された値に置き換えます(例: 514)。
  4. 重大度レベルを設定するには、次のコマンドを使用します。

    logging level information
    
    • これにより、警告やエラーなどの情報メッセージが Bindplane エージェントに送信されます。
  5. 次のコマンドを実行して、syslog ロギングが有効になっていることを確認します。

    logging enable
    
  6. 再起動後も構成が保持されるように、構成を保存します。

    write memory
    
  • 完全な CLI 構成の例:

    config
    logging host 192.168.1.100 514
    logging level info
    logging enable
    write memory
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
dns additional.fields.dns.value.string_value 値は、Grok パターンによって抽出された dns フィールドから取得されます。
dns_server additional.fields.dns_server.value.string_value 値は、Grok パターンによって抽出された dns_server フィールドから取得されます。
gslb additional.fields.gslb.value.string_value 値は、Grok パターンによって抽出された gslb フィールドから取得されます。
host_name principal.hostname
principal.asset.hostname
値は、Grok パターンによって抽出された host_name フィールドから取得されます。
httpmethod network.http.method 値は、Grok パターンによって抽出された httpmethod フィールドから取得されます。
partion_id additional.fields.partion_id.value.string_value 値は、Grok パターンによって抽出された partion_id フィールドから取得されます。
prin_ip principal.ip
principal.asset.ip
値は、Grok パターンによって抽出された prin_ip フィールドから取得されます。
prin_mac principal.mac 値は、Grok パターンによって抽出された prin_mac フィールドから取得されます。ドットが削除され、2 文字ごとにコロンが挿入されます。
prin_port principal.port 値は、grok パターンによって抽出された prin_port フィールドから取得され、整数に変換されます。
proto network.ip_protocol 値は、Grok パターンによって抽出された proto フィールドから取得されます。message フィールドに UDP が含まれている場合、値は UDP に設定されます。
sessionid network.session_id 値は、Grok パターンによって抽出された sessionid フィールドから取得されます。
status_code network.http.response_code 値は、grok パターンによって抽出された status_code フィールドから取得され、整数に変換されます。
tar_ip target.ip
target.asset.ip
値は、Grok パターンによって抽出された tar_ip フィールドから取得されます。
tar_mac target.mac 値は、Grok パターンによって抽出された tar_mac フィールドから取得されます。ドットが削除され、2 文字ごとにコロンが挿入されます。
tar_port target.port 値は、grok パターンによって抽出された tar_port フィールドから取得され、整数に変換されます。
時間 metadata.event_timestamp.seconds 値は、grok パターンによって抽出された time フィールドから、複数の可能な日付形式を使用して解析されます。
URL target.url 値は、Grok パターンによって抽出された url フィールドから取得されます。
ユーザー principal.user.userid 値は、Grok パターンによって抽出された user フィールドから取得されます。
なし metadata.event_type プリンシパルとターゲットの情報が存在するかどうかを基に、パーサーのロジックによって決定されます。
- NETWORK_CONNECTION: プリンシパルとターゲットの両方の情報が存在する場合。
- STATUS_UPDATE: プリンシパル情報のみが存在する場合。
- GENERIC_EVENT: それ以外の場合。
なし metadata.log_type A10_LOAD_BALANCER にハードコードされています。
なし network.application_protocol proto フィールドが HTTP の場合、HTTP に設定します。

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