コンテンツにスキップ

All-in-OneインストーラによるNative Nodeのデプロイ

Wallarm Native NodeはNGINXから独立して動作し、Wallarmコネクターのセルフホスト型デプロイおよびTCPトラフィックミラー解析向けに設計されています。All-in-Oneインストーラを使用して、Linux OSを搭載した仮想マシン上でNative Nodeを実行できます。

ユースケースとデプロイモード

要件

All-in-OneインストーラでNative Nodeを実行するマシンは、次の条件を満たす必要があります。

  • Linux OS。

  • x86_64/ARM64アーキテクチャ。

  • すべてのコマンドをスーパーユーザー(例: root)で実行できること。

  • 以下へのアウトバウンドアクセス:

    • Wallarmインストーラをダウンロードするためのhttps://meganode.wallarm.com
    • US/EUのWallarm Cloud用のhttps://us1.api.wallarm.comまたはhttps://api.wallarm.com
    • 攻撃検知ルールおよびAPI仕様の更新をダウンロードし、さらに許可リスト、拒否リスト、またはグレーリストに登録した国、地域、またはデータセンターの正確なIPを取得するために、以下のIPアドレス

      node-data0.us1.wallarm.com - 34.96.64.17
      node-data1.us1.wallarm.com - 34.110.183.149
      us1.api.wallarm.com - 35.235.66.155
      34.102.90.100
      34.94.156.115
      35.235.115.105
      
      node-data1.eu1.wallarm.com - 34.160.38.183
      node-data0.eu1.wallarm.com - 34.144.227.90
      api.wallarm.com - 34.90.110.226
      
  • ノードをconnector-serverまたはenvoy_external_filterモードで実行する場合は、そのマシンのドメインに対して信頼されたSSL/TLS証明書を発行し、秘密鍵とともにマシンに配置する必要があります。

  • ノードをtcp-captureモードで実行する場合:

    • トラフィックおよびレスポンスのミラーリングを、送信元と宛先の両方を設定して構成し、準備したインスタンスをミラーの宛先として選択する必要があります。たとえばトラフィックミラーリングの構成では、特定のプロトコルの許可など、特定の環境要件を満たす必要があります。
    • ミラーされたトラフィックにはVLAN(802.1q)、VXLAN、またはSPANのいずれかのタグが付与されます。
  • さらに、Wallarm ConsoleでAdministratorロールが割り当てられている必要があります。

制限事項

インストール

1. Wallarmトークンを準備する

ノードをインストールするには、Wallarm Cloudにノードを登録するためのトークンが必要です。トークンを準備するには次の手順に従います。

  1. US CloudまたはEU CloudのWallarm Console → SettingsAPI tokensを開きます。

  2. 使用タイプがNode deployment/DeploymentのAPIトークンを探すか作成します。

  3. このトークンをコピーします。

2. Wallarmインストーラをダウンロードする

Wallarmインストールスクリプトをダウンロードして実行可能にします。

curl -O https://meganode.wallarm.com/native/aio-native-0.17.1.x86_64.sh
chmod +x aio-native-0.17.1.x86_64.sh
curl -O https://meganode.wallarm.com/native/aio-native-0.17.1.aarch64.sh
chmod +x aio-native-0.17.1.aarch64.sh

3. 構成ファイルを準備する

次の最小構成で、マシン上にwallarm-node-conf.yamlファイルを作成します。

version: 4

mode: connector-server

connector:
  address: ":5050"
  tls_cert: path/to/tls-cert.crt
  tls_key: path/to/tls-key.key

connector.tls_certおよびconnector.tls_keyには、そのマシンのドメインに対して発行された信頼された証明書と秘密鍵へのパスを指定します。

version: 4

mode: tcp-capture

goreplay:
  filter: 'enp7s0:'
  extra_args:
    - -input-raw-engine
    - vxlan

goreplay.filterパラメータには、トラフィックをキャプチャするネットワークインターフェースを指定します。ホストで利用可能なネットワークインターフェースを確認するには次を実行します。

ip addr show
version: 4

mode: envoy-external-filter

envoy_external_filter:
  address: ":5080"
  tls_cert: "/path/to/cert.crt"
  tls_key: "/path/to/cert.key"

envoy_external_filter.tls_certおよびenvoy_external_filter.tls_keyには、そのマシンのドメインに対して発行された信頼された証明書と秘密鍵へのパスを指定します。

すべての構成パラメータ

4. インストーラを実行する

x86_64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

x86_64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

x86_64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com

ARM64版インストーラの場合:

# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host us1.api.wallarm.com

# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh -- --batch --token <API_TOKEN> --mode=envoy-external-filter --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
  • 変数WALLARM_LABELSは、ノードが追加されるグループを設定します(Wallarm ConsoleのUIでノードを論理的にグルーピングするために使用します)。

  • <API_TOKEN>は、使用タイプがNode deployment/Deploymentの生成済みAPIトークンを指定します。

  • <PATH_TO_CONFIG>は、前項で準備した構成ファイルへのパスを指定します。

指定した構成ファイルは、/opt/wallarm/etc/wallarm/go-node.yamlにコピーされます。

必要に応じて、インストール完了後にコピー済みファイルを変更できます。変更を反映するには、sudo systemctl restart wallarmでWallarmサービスを再起動します。

5. インストールを完了する

ノードをデプロイしたら、次のステップとして、トラフィックをデプロイ済みノードへルーティングするためにWallarmコードをお使いのAPI管理プラットフォームまたはサービスに適用します。

  1. コネクター用のWallarmコードバンドルを入手するには、sales@wallarm.comにご連絡ください。
  2. プラットフォーム固有の手順に従って、API管理プラットフォームにバンドルを適用します。

ノードをデプロイしたら、次のステップとして、トラフィックをノードへ転送するようにEnvoyの設定を更新します。

ノードの動作確認

ノードがトラフィックを検知しているか確認するには、ログを確認します。

  • Native Nodeのログは、デフォルトで/opt/wallarm/var/log/wallarm/go-node.logに出力されます。

  • データがWallarm Cloudへ送信されたか、検知した攻撃など、フィルタリングノードの標準ログ/opt/wallarm/var/log/wallarmディレクトリにあります。

  • 追加のデバッグには、log.levelパラメータをdebugに設定します。

また、http://<NODE_IP>:9000/metrics.で公開されるPrometheusメトリクスを確認することでも、ノードの動作を検証できます。

インストーラの起動オプション

  • All-in-Oneスクリプトをダウンロードしたら、次でヘルプを表示できます。

    sudo ./aio-native-0.17.1.x86_64.sh -- --help
    
    sudo ./aio-native-0.17.1.aarch64.sh -- --help
    
  • インストーラを対話モードで起動し、最初のステップで必要なモードを選択することもできます。

    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.x86_64.sh
    
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.17.1.aarch64.sh
    
  • ノードはAPI Discovery専用モード(バージョン0.12.1以降で利用可能)で使用できます。このモードでは、ノードの組み込みメカニズムで検知される攻撃や、追加の設定が必要な攻撃(例: クレデンシャルスタッフィング、API仕様違反の試行、拒否リストおよびグレーリストのIPからの悪意ある活動)を検知し、(有効化されていれば)ローカルでブロックしますが、Wallarm Cloudにはエクスポートしません。Cloudに攻撃データがないため、Threat Replay Testingは機能しません。許可リストのIPからのトラフィックは許可されます。

    一方で、API DiscoveryAPI sessions、およびsecurity vulnerability detectionは引き続き完全に機能し、関連するセキュリティエンティティを検知してCloudへアップロードし、可視化します。

    このモードは、まずAPI資産を見直して機微なデータを特定し、その後で攻撃データのエクスポートを計画的に行いたい方に適しています。ただし、Wallarmは攻撃データを安全に処理し、必要に応じて機微な攻撃データのマスキングも提供するため、攻撃データのエクスポートを無効化するケースはまれです。

    API Discovery専用モードを有効化するには:

    1. /etc/wallarm-override/env.listファイルを作成または編集します。

      sudo mkdir /etc/wallarm-override
      sudo vim /etc/wallarm-override/env.list
      

      次の変数を追加します。

      WALLARM_APID_ONLY=true
      
    2. ノードのインストール手順に従います。

    API Discovery専用モードが有効な場合、/opt/wallarm/var/log/wallarm/wcli-out.logには次のメッセージが記録されます。

    {"level":"info","component":"reqexp","time":"2025-01-31T11:59:38Z","message":"requests export skipped (disabled)"}
    

アップグレードと再インストール

  • ノードのアップグレードは、こちらの手順に従います。

  • アップグレードまたは再インストールの過程で問題が発生した場合:

    1. 現在のインストールを削除します。

      sudo systemctl stop wallarm && sudo rm -rf /opt/wallarm
      
    2. 上記のインストール手順に従って、通常どおりノードをインストールします。