# インストールと構成

### 前提条件

Netacea を使用した統合を正常に行うために、以下をご準備ください：

1. Netacea から提供される関連 API キーおよびログ配信エンドポイントへのアクセス。

### 実装手順

1. F5 コンソールで、System > Resource Provisioning メニュー項目に移動します。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-06deb308c7ac0eba400921762d1f4446f4535d2a%2Fimage%20(5)%20(1)%20(2).png?alt=media" alt=""><figcaption></figcaption></figure>

2\. 'iRules Language Extensions (iRulesLX)' にチェックが入っており、適切なプロビジョニングが割り当てられていることを確認してください - 'Nominal' を選択する必要があります。

3\. 'Local Traffic > iRules' の下に LX 固有のメニュー項目が表示されているはずです。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-2672ec88a92c8426284ff955a9a200b89e324188%2Fimage%20(2)%20(2)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

#### ワークスペースのアップロード <a href="#upload-workspace" id="upload-workspace"></a>

1. iRules > LX Workspaces に移動します
2. 'Import' ボタンをクリックします。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-69b7b636dd8901c14bc4a78ea8bf6b279f9407b1%2Fimage%20(6)%20(3)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

3\. インポート先を Netacea から提供されたワークスペースに指定し、ワークスペース名を 'Netacea' とします。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-ae450c1c1ba21954f30298dea26315199226b643%2Fimage%20(25)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

#### f5-nodejs モジュールのインストール <a href="#installing-f5-nodejs-module" id="installing-f5-nodejs-module"></a>

{% hint style="info" %}
**注意:** SSH 経由で接続する場合、bash ではなく `tmos` に入る場合があります。コマンドラインに `tmos` という文字が含まれている場合、これを確認できます。例：

`username@(ip-172-31-10-207)(cfg-sync Standalone)(Active)(/Common)(tmos)#`

以下のファイルの場所にアクセスするには、次のコマンドを使用して bash に切り替える必要があります：

`run /util bash`
{% endhint %}

iRules LX 用の nodejs ライブラリは NPM ([https://www.npmjs.com](https://www.npmjs.com/)) には公開されておらず、F5 BIG-IP システム上にのみ存在します。詳細については、F5 ウェブサイトの[こちら](https://support.f5.com/csp/article/K16221101)、および NPM (<https://www.npmjs.com/package/f5-nodejs>) でご確認いただけます。

このため、ワークスペースが期待どおりに動作するよう、いくつかの短い手順が必要です。

* ターミナル経由で F5 ノードに SSH 接続します
* ワークスペースが存在するディレクトリに移動します。例：`/var/ilx/workspaces/Common/your_module_name_here/extensions/netacea`
* Netacea モジュール内に入ったら、`node_modules` という名前のディレクトリを作成します。例：`mkdir node_modules`
* 新しく作成した `node_modules` ディレクトリに移動し、コマンド `tar -xvzf /usr/share/packages/nodejs/f5-nodejs-6.tgz` を実行して f5-nodejs ファイルを解凍します

これにより、f5-nodejs モジュールが目的の `node_module` フォルダにインストールされ、F5 コンソールで確認できます。

#### API キーの追加 <a href="#adding-api-keys" id="adding-api-keys"></a>

1. LX Workspaces ビューから、名前付きワークスペースをクリックします。例：'Netacea'
2. config.json ファイルを見つけ、ワークスペース用の apiKey と secretKey を含めて、下の 'Save File' をクリックします
3. 'Reload from Workspace...' ボタンをクリックすると、ワークスペース内のファイルが更新されます。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-300ae1a063ff80bd3bc291f7c7f4962a31296093%2Fimage%20(10)%20(2).png?alt=media" alt=""><figcaption></figcaption></figure>

4\. その後、オレンジ色でハイライトされた 'workspace files' がないことを確認してください。これは、プラグインの最後のリロード以降にファイルが変更されたことを示しています。

API キーは、'Activate Plugin' に進む前に必ず追加・保存してください。そうしないと、起動に失敗します。

#### NetaceaConfig.json の追加 <a href="#adding-your-netaceaconfig.json" id="adding-your-netaceaconfig.json"></a>

NetaceaConfig.json ファイルには 5 つのフィールドが含まれている必要があります。以下に例を示します：

{% code overflow="wrap" %}

```
{ 
"apiKey": "API_KEY", 
"secretKey": "SECRET_KEY",
"mitigationType": "MITIGATION_TYPE", // Either "INGEST" or "MITIGATE"
"ingestType": "KINESIS",
"mitigationServiceUrl": "MITIGATE SERVICE URL",
  "kinesis": {
  "kinesisStreamName": "KINESIS_STREAM_NAME",
    "kinesisAccessKey": "KINESIS_ACCESS_KEY",
    "kinesisSecretKey": "KINESIS_SECRET_KEY",
    "logBatchSize": 100,
    "maxLogAgeSeconds": 3
  }
}
```

{% endcode %}

#### プラグインの有効化 <a href="#activate-plugin" id="activate-plugin"></a>

1. LX workspaces ビューから、'LX Plugins' タブをクリックし、次に 'Create' ボタンをクリックします

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-6913cade341aa5c85a6ac1de7e0cdf6b9142e586%2Fimage%20(7)%20(3).png?alt=media" alt=""><figcaption></figcaption></figure>

2\. プラグインを 'Netacea' と名付け、先ほどインポートしたワークスペースを選択します。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-e8a603f6169fb0134da1f916fe02b1bfc8bf19e2%2Fimage%20(1)%20(3)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

#### iRules の有効化 <a href="#enabling-irules" id="enabling-irules"></a>

{% hint style="info" %}
F5 ワーカーは mitigate iRule から 'INGEST' できることに注意してください。netacea\_mitigate を有効にすると、mitigate iRule が Ingest も処理するため、netacea\_ingest を有効にする必要はありません。これにより、ユーザーは iRule 自体を変更せずに、NetaceaConfig.json 内の "mitigationType" を更新するだけで ingest と mitigate を切り替えることができます。
{% endhint %}

1. 関連する仮想サーバービューから、'Resources' タブを選択し、iRule の割り当てを 'manage' します。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-67f12693a16d2d8cefb5b0cab8d9bff07c15303a%2Fimage%20(3)%20(1)%20(3).png?alt=media" alt=""><figcaption></figcaption></figure>

2\. 'Available' リストで 2 つの Netacea iRules を見つけ、関連する iRule を 'Enabled' ボックスに移動し、目的の優先度を設定します。競合が発生しない範囲で最高の優先度を推奨します。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-cb5406bfe5a78af5d3234854cf118c9a8a84a8f9%2Fimage%20(29).png?alt=media" alt=""><figcaption></figcaption></figure>

**netacea\_ingest** - リクエストデータを分析のために Netacea に送信するだけで、ライブリクエストに対してアクションは実行しません。

**netacea\_mitigate** - リクエストデータを Netacea に送信し、設定に従って特定された脅威を自動的に軽減します。

### 参考リンク <a href="#useful-links" id="useful-links"></a>

F5 データシート - <https://www.f5.com/pdf/products/big-ip-local-traffic-manager-ds.pdf>

iRules LX 概要 - <https://clouddocs.f5.com/api/irules-lx/>

iRules LX API ドキュメント - <https://clouddocs.f5.com/api/irules-lx/APIReference.html>

iRulesLX ストリーミングガイドはこちら：<https://readthedocs.org/projects/f5-agility-labs-irules/downloads/pdf/latest/>
