All-in-OneインストーラによるNative Nodeのデプロイ¶
Wallarm Native NodeはNGINXから独立して動作し、Wallarmコネクターのセルフホスト型デプロイおよびTCPトラフィックミラー解析向けに設計されています。All-in-Oneインストーラを使用して、Linux OSを搭載した仮想マシン上でNative Nodeを実行できます。
ユースケースとデプロイモード¶
-
セルフホストのLinux OSマシン上で、MuleSoft MuleまたはFlex Gateway、Akamai、Cloudflare、Amazon CloudFront、Broadcom Layer7 API Gateway、Fastly、IBM DataPower向けコネクターソリューションの一部としてWallarmノードをデプロイする場合。
インストーラを
connector-server
モードで使用します。 -
TCPトラフィックミラー解析のためのセキュリティソリューションが必要な場合。
インストーラを
tcp-capture
モードで使用します。 -
Istioで管理されるAPI向けのgRPCベースの外部処理フィルターが必要な場合。
インストーラを
envoy-external-filter
モードで使用します。
要件¶
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アドレス
- Wallarmインストーラをダウンロードするための
-
ノードを
connector-server
またはenvoy_external_filter
モードで実行する場合は、そのマシンのドメインに対して信頼されたSSL/TLS証明書を発行し、秘密鍵とともにマシンに配置する必要があります。 -
ノードを
tcp-capture
モードで実行する場合:- トラフィックおよびレスポンスのミラーリングを、送信元と宛先の両方を設定して構成し、準備したインスタンスをミラーの宛先として選択する必要があります。たとえばトラフィックミラーリングの構成では、特定のプロトコルの許可など、特定の環境要件を満たす必要があります。
- ミラーされたトラフィックにはVLAN(802.1q)、VXLAN、またはSPANのいずれかのタグが付与されます。
-
さらに、Wallarm ConsoleでAdministratorロールが割り当てられている必要があります。
制限事項¶
-
All-in-Oneインストーラを
connector-server
またはenvoy_external_filter
モードで使用する場合、マシンのドメインには信頼されたSSL/TLS証明書が必要です。自己署名証明書はまだサポートされていません。 -
カスタムのブロックページおよびブロックコードの構成はまだサポートしていません。
-
Wallarmルールによるレート制限はサポートしていません。
-
マルチテナンシーはまだサポートしていません。
インストール¶
1. Wallarmトークンを準備する¶
ノードをインストールするには、Wallarm Cloudにノードを登録するためのトークンが必要です。トークンを準備するには次の手順に従います。
-
US CloudまたはEU CloudのWallarm Console → Settings → API tokensを開きます。
-
使用タイプが
Node deployment/Deployment
のAPIトークンを探すか作成します。 -
このトークンをコピーします。
2. Wallarmインストーラをダウンロードする¶
Wallarmインストールスクリプトをダウンロードして実行可能にします。
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
には、そのマシンのドメインに対して発行された信頼された証明書と秘密鍵へのパスを指定します。
goreplay.filter
パラメータには、トラフィックをキャプチャするネットワークインターフェースを指定します。ホストで利用可能なネットワークインターフェースを確認するには次を実行します。
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管理プラットフォームまたはサービスに適用します。
- コネクター用のWallarmコードバンドルを入手するには、sales@wallarm.comにご連絡ください。
-
プラットフォーム固有の手順に従って、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スクリプトをダウンロードしたら、次でヘルプを表示できます。
-
インストーラを対話モードで起動し、最初のステップで必要なモードを選択することもできます。
-
ノードはAPI Discovery専用モード(バージョン0.12.1以降で利用可能)で使用できます。このモードでは、ノードの組み込みメカニズムで検知される攻撃や、追加の設定が必要な攻撃(例: クレデンシャルスタッフィング、API仕様違反の試行、拒否リストおよびグレーリストのIPからの悪意ある活動)を検知し、(有効化されていれば)ローカルでブロックしますが、Wallarm Cloudにはエクスポートしません。Cloudに攻撃データがないため、Threat Replay Testingは機能しません。許可リストのIPからのトラフィックは許可されます。
一方で、API Discovery、API sessions、およびsecurity vulnerability detectionは引き続き完全に機能し、関連するセキュリティエンティティを検知してCloudへアップロードし、可視化します。
このモードは、まずAPI資産を見直して機微なデータを特定し、その後で攻撃データのエクスポートを計画的に行いたい方に適しています。ただし、Wallarmは攻撃データを安全に処理し、必要に応じて機微な攻撃データのマスキングも提供するため、攻撃データのエクスポートを無効化するケースはまれです。
API Discovery専用モードを有効化するには:
-
/etc/wallarm-override/env.list
ファイルを作成または編集します。次の変数を追加します。
-
ノードのインストール手順に従います。
API Discovery専用モードが有効な場合、
/opt/wallarm/var/log/wallarm/wcli-out.log
には次のメッセージが記録されます。 -
アップグレードと再インストール¶
-
ノードのアップグレードは、こちらの手順に従います。
-
アップグレードまたは再インストールの過程で問題が発生した場合:
-
現在のインストールを削除します。
-
上記のインストール手順に従って、通常どおりノードをインストールします。
-