Traefik プラグインのインストール

Traefik は、Fastly の Next-Gen WAF と組み合わせて使えるオープンソースのアプリケーションプロキシです。Fastly の Traefik プラグインは、公式のGolang モジュールを基にしています。

前提条件

Traefik プラグインを使用するには、Next-Gen WAF エージェント (旧 Signal Sciences エージェント) を実行している必要があります。Traefik プラグインは、通常 Unix ソケットを介してエージェントと通信し、検査用のリクエストデータを送ります。

Traefik プラグインの設定

プラグインの設定には2つのステップがあります。まず、Traefik の静的設定にプラグインをロードし、次に動的設定でミドルウェアとして有効化します。

静的設定

以下に示すように、プラグインを静的設定ファイル (例 : traefik.yml) に追加するか、コマンドライン引数で指定します。これは、Traefik にプラグインを読み込むよう指示します。

# traefik.yml
experimental:
plugins:
sigsciwaf:
moduleName: "github.com/signalsciences/sigsci-traefik-plugin"
version: "v1.0.0"

動的設定

次に、動的設定ファイル (例 : dynamic.yml) でミドルウェアを設定します。ここで、プラグインの動作をカスタマイズできます。詳細については、次のセクションの設定オプションのリストを参照してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# dynamic.yml
http:
routers:
my-router:
rule: "Host(`example.com`)"
service: "my-service"
middlewares:
- "sigsci-waf" # Enable the middleware for this router
middlewares:
sigsci-waf:
plugin:
sigsciwaf:
# All configuration options are optional and have sensible defaults.
# See the options list below for more details.
agentNetwork: "unix"
agentAddress: "/var/run/sigsci.sock"
timeout: "100ms"

設定

これらのオプション設定は、動的設定でご利用になれます。

Name種類説明デフォルト
maxContentLengthint64検査対象とするリクエストボディの最大サイズ (バイト単位)。100000
allowUnknownContentLengthbool長さが不明なリクエストボディ (例 : チャンクエンコーディング) の検査を可能にします。false
anomalySizeint64異常検査をトリガーするレスポンスサイズ (バイト単位)。524288(512KB)
anomalyDurationstring異常検査をトリガーするレスポンス時間 (例 : 「1秒」)。1s
serverIdentifierstringこのサーバーインスタンスのカスタム識別子です。traefik