All in one

[api-spec-enforcement-docs]:             ../../api-specification-enforcement/overview.md
[ip-list-docs]:                          ../../user-guides/ip-lists/overview.md

# オールインワンインストーラーを使用したNative Nodeのデプロイ

[Wallarm Native Node](../nginx-native-node-internals.md)はNGINXに依存せずに動作し、WallarmコネクタのセルフホストデプロイおよびTCPトラフィックミラー解析用に設計されています。オールインワンインストーラーを用いれば、Linux OSを搭載した仮想マシン上でNative Nodeを実行できます。

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

* セルフホストのLinux OSマシン上において、[MuleSoft](../connectors/mulesoft.md)、[Cloudflare](../connectors/cloudflare.md)、[Amazon CloudFront](../connectors/aws-lambda.md)、[Broadcom Layer7 API Gateway](../connectors/layer7-api-gateway.md)、[Fastly](../connectors/fastly.md)向けのコネクタソリューションの一部としてWallarmノードをデプロイする場合、インストーラーを`connector-server`モードで使用します。
* [TCPトラフィックミラー解析](../oob/tcp-traffic-mirror/deployment.md)用のセキュリティソリューションが必要な場合、インストーラーを`tcp-capture`モードで使用します。

## 要件

Native Nodeをオールインワンインストーラーで実行するマシンは、以下の要件を満たす必要があります:

* Linux OS
* x86_64/ARM64アーキテクチャ
* すべてのコマンドをsuperuser(例: `root`)として実行すること
* 外向きのアクセスが必要な先:
    * `https://meganode.wallarm.com`にアクセスし、Wallarmインストーラーをダウンロードします
    * US/EU Wallarm Cloud向けに`https://us1.api.wallarm.com`または`https://api.wallarm.com`にアクセスします
    * 攻撃検出ルールおよび[API仕様書][api-spec-enforcement-docs]の更新をダウンロードし、[allowlisted, denylisted, or graylisted][ip-list-docs]対象の国、地域、またはデータセンター向けの正確なIPアドレスを取得するため、以下のIPアドレスにもアクセス可能である必要があります

        === "US Cloud"
            ```
            34.96.64.17
            34.110.183.149
            35.235.66.155
            34.102.90.100
            34.94.156.115
            35.235.115.105
            ```
        === "EU Cloud"
            ```
            34.160.38.183
            34.144.227.90
            34.90.110.226
            ```
* ノードを`connector-server`モードで実行する際には、そのマシンのドメインに対して発行された**trusted**なSSL/TLS証明書と秘密鍵をマシンにアップロードする必要があります。
* ノードを`tcp-capture`モードで実行する際:

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

## 制限事項

* オールインワンインストーラーを`connector-server`モードで使用する際は、マシンのドメインに対して**trusted**なSSL/TLS証明書が必要です。セルフサイン証明書はまだサポートされていません。
* [カスタムブロッキングページおよびブロッキングコード](../../admin-en/configuration-guides/configure-block-page-and-code.md)の構成はまだサポートされていません。
* Wallarmルールによる[レートリミティング](../../user-guides/rules/rate-limiting.md)はサポートされていません。
* [マルチテナンシー](../multi-tenant/overview.md)はまだサポートされていません。

## インストール

### 1. Wallarmトークンの用意

ノードをインストールするには、Wallarm Cloudにノードを登録するためのトークンが必要です。トークンの用意方法は以下の通りです:

1. Wallarm Console → **Settings****API tokens** を[US Cloud](https://us1.my.wallarm.com/settings/api-tokens)または[EU Cloud](https://my.wallarm.com/settings/api-tokens)で開きます。
1. `Deploy`ソースロールを持つAPIトークンを見つけるか、新たに作成してください。
1. このトークンをコピーしてください。

### 2. Wallarmインストーラーのダウンロード

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

=== "x86_64 version"
    ```bash
    curl -O https://meganode.wallarm.com/native/aio-native-0.11.0.x86_64.sh
    chmod +x aio-native-0.11.0.x86_64.sh
    ```
=== "ARM64 version"
    ```bash
    curl -O https://meganode.wallarm.com/native/aio-native-0.11.0.aarch64.sh
    chmod +x aio-native-0.11.0.aarch64.sh
    ```

### 3. 設定ファイルの準備

マシン上に`wallarm-node-conf.yaml`ファイルを作成し、以下の最小構成を記述してください:

=== "connector-server"
    ```yaml
    version: 2

    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`には、マシンのドメインに対して発行された**trusted**証明書と秘密鍵のパスを指定します。
=== "tcp-capture"
    ```yaml
    version: 3

    mode: tcp-capture

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

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

    ```
    ip addr show
    ```

[すべての設定パラメータ](all-in-one-conf.md)

### 4. インストーラーの実行

=== "connector-server"
    x86_64版インストーラーの場合:

    ```bash
    # US Cloud
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.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.11.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
    ```

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

    ```bash
    # US Cloud
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.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.11.0.aarch64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
    ```
=== "tcp-capture"
    x86_64版インストーラーの場合:

    ```bash
    # US Cloud
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.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.11.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
    ```

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

    ```bash
    # US Cloud
    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.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.11.0.aarch64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=<PATH_TO_CONFIG> --host api.wallarm.com
    ```

* `WALLARM_LABELS`変数は、Wallarm Console UIでノードの論理グループ化に使用されるグループを設定します。
* `<API_TOKEN>``Deploy`ロール用に生成されたAPIトークンを指定します。
* `<PATH_TO_CONFIG>`は前述の設定ファイルのパスを指定します。

提供された設定ファイルは`/opt/wallarm/etc/wallarm/go-node.yaml`にコピーされます。

必要に応じて、インストール完了後にコピーされたファイルを変更できます。変更を適用するには、`sudo systemctl restart wallarm`でWallarmサービスを再起動してください。

### 5. インストールの完了

=== "connector-server"
    ノードをデプロイした後、次のステップはデプロイされたノードにトラフィックを迂回させるため、WallarmコードをAPI管理プラットフォームまたはサービスに適用することです。

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

        * [MuleSoft](../connectors/mulesoft.md#2-obtain-and-upload-the-wallarm-policy-to-mulesoft-exchange)
        * [Cloudflare](../connectors/cloudflare.md#2-obtain-and-deploy-the-wallarm-worker-code)
        * [Amazon CloudFront](../connectors/aws-lambda.md#2-obtain-and-deploy-the-wallarm-lambdaedge-functions)
        * [Broadcom Layer7 API Gateway](../connectors/layer7-api-gateway.md#2-add-the-nodes-ssltls-certificate-to-the-policy-manager)
        * [Fastly](../connectors/fastly.md#2-deploy-wallarm-code-on-fastly)
=== "tcp-capture"
    [デプロイテストの実施](../oob/tcp-traffic-mirror/deployment.md#step-5-test-the-solution)を行ってください。

## ノード動作の検証

ノードがトラフィックを検出しているか確認するには、ログをチェックしてください:

* デフォルトでは、Native Nodeのログは`/opt/wallarm/var/log/wallarm/go-node.log`に出力されます。
* フィルタリングノードの[標準ログ](../../admin-en/configure-logging.md)(データがWallarm Cloudに送信されたか、攻撃が検出されたか等)は`/opt/wallarm/var/log/wallarm`ディレクトリに配置されます。

追加のデバッグには、[`log.level`](all-in-one-conf.md#loglevel)パラメータを`debug`に設定してください。

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

* オールインワンスクリプトをダウンロードしたら、**help**を表示するには以下のコマンドを使用できます:

    === "x86_64 version"
        ```
        sudo ./aio-native-0.11.0.x86_64.sh -- --help
        ```
    === "ARM64 version"
        ```
        sudo ./aio-native-0.11.0.aarch64.sh -- --help
        ```
* また、インストーラーを**interactive**モードで実行し、最初のステップで必要なモードを選択することもできます:

    === "x86_64 version"
        ```
        sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.x86_64.sh
        ```
    === "ARM64 version"
        ```
        sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.11.0.aarch64.sh
        ```
* <a name="apid-only-mode"></a>API Discoveryのみモード(バージョン0.11.0以降で利用可能)でノードを使用できます。このモードでは、ノードの組込み機構で検出される攻撃や、追加設定が必要な攻撃(例:クレデンシャルスタッフィング、API仕様違反試行、denylistedやgraylisted IPからの悪意あるアクティビティ等)をローカルで検出し(有効な場合はブロック)、Wallarm Cloudへはエクスポートされません。Cloud上に攻撃データが存在しないため、[Threat Replay Testing](../../vulnerability-detection/threat-replay-testing/overview.md)は機能しません。ホワイトリストに登録されたIPからのトラフィックは許可されます.

    一方、[API Discovery](../../api-discovery/overview.md)、[API session tracking](../../api-sessions/overview.md)、および[security vulnerability detection](../../about-wallarm/detecting-vulnerabilities.md)は完全に機能し、関連するセキュリティエンティティを検出し、可視化のためにCloudへアップロードします.

    このモードは、まずAPIインベントリを見直し、センシティブなデータを特定して、その後に制御された攻撃データのエクスポートを計画するユーザー向けです。ただし、攻撃エクスポートの無効化は稀であり、Wallarmは攻撃データを安全に処理し、必要に応じて[sensitive attack data masking](../../user-guides/rules/sensitive-data-rule.md)を提供します.

    API Discoveryのみモードを有効にするには:

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

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

        以下の変数を追加します:

        ```
        WALLARM_APID_ONLY=true
        ```

    1. [ノードのインストール手順](#installation)に従ってください.

    API Discoveryのみモードが有効な場合、`/opt/wallarm/var/log/wallarm/wcli-out.log`のログに以下のメッセージが表示されます:

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

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

* ノードをアップグレードするには、[手順](../../updating-migrating/native-node/all-in-one.md)に従ってください.
* アップグレードまたは再インストールの過程で問題が発生した場合:

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

        ```
        sudo systemctl stop wallarm && sudo rm -rf /opt/wallarm
        ```

    1. 上記のインストール手順に従って、通常通りノードをインストールしてください.