HAProxy モジュールをインストールする
- English
- 日本語
要件
HAProxy 1.7 以上
ホストで有効になる Lua モジュール
ヒント: HAProxy モジュールは Lua コードであるため、どのオペレーティングシステムでも使用できます。
インストール
以下の手順に従って、HAProxy モジュールをインストールしてください。
エージェントを設定する
ヒント: このセクションは、インストール環境によっては不要な場合があります。HAProxy の chroot ディレクトリを設定している場合は、このセクションの手順に従い、以下のコマンドをカスタム chroot ディレクトリに合わせて変更する必要があります。
HAProxy の設定で chroot ディレクトリが指定されている場合、Next-Gen WAF エージェントの設定もそれに合わせて更新する必要があります。エージェントのソケットファイルのデフォルトの場所 (/var/run/sigsci.sock) は、指定した chroot ディレクトリ外にある HAProxy モジュールからはアクセスできません。
以下のコマンドを実行して、Unix ドメインソケット用のディレクトリ構造を作成します。
$HAPROXY-CHROOT-DIRECTORYを HAProxy の chroot ディレクトリに置き換えてください。$ sudo mkdir -p /$HAPROXY-CHROOT-DIRECTORY/var/run/chroot 配下の新しいソケットファイルの場所を指定するため、エージェント設定ファイル (デフォルトの場所は
/etc/sigsci/agent.conf) に次の行を追加します。rpc-address="unix:/$HAPROXY-CHROOT-DIRECTORY/var/run/sigsci.sock"
たとえば、HAPROXY-CHROOT-DIRECTORY が haproxy.conf で /var/lib/haproxy に設定されている場合は、次のコマンドを実行します。
$ sudo mkdir -p /var/lib/haproxy/var/run/そして、エージェント設定ファイルに次の行を追加します。
rpc-address="unix:/var/lib/haproxy/var/run/sigsci.sock"モジュールをインストールする
HAProxy モジュールはパッケージマネージャーまたは手動でインストールします。
パッケージマネージャーでインストール
HAProxy モジュールは、主要な多くのオペレーティングシステムのパッケージマネージャーからインストールできます。
Alpine:
sudo apk add sigsci-module-haproxyCentOS:
sudo yum install sigsci-module-haproxyDebian:
sudo apt-get install sigsci-module-haproxyUbuntu:
sudo apt-get install sigsci-module-haproxy
手動インストール
代替手段として、HAProxy モジュールを手動でインストールすることも可能です。
以下のいずれかの Web サイトから、最新バージョンの HAProxy モジュールをダウンロードします。
- dl.security.fastly.com
- dl.signalsciences.net
$ wget https://dl.security.fastly.com/sigsci-module-haproxy/sigsci-module-haproxy_latest.tar.gzHAProxy モジュールを配置するディレクトリを作成します。
$ sudo mkdir -p /usr/local/lib/lua/5.3/sigsci/HAProxy アーカイブを新しいディレクトリに解凍します。
$ tar xvzf sigsci-module-haproxy_latest.tar.gz -C /usr/local/lib/lua/5.3/sigsci/
HAProxy の設定を変更する
HAProxy モジュールをインストールした後、HAProxy の設定ファイル (デフォルトでは /etc/haproxy/haproxy.cfg) を編集し、以下の行を追加します。
global ... #Signal Sciences lua-load /usr/local/lib/lua/5.3/sigsci/SignalSciences.lua pidfile /var/run/haproxy.pid ...
frontend http-in ... #Signal Sciences #Required for buffering request body to ensure inspection is performed #Can also be set in the defaults section option http-buffer-request
#Signal Sciences http-request lua.sigsci_prerequest http-response lua.sigsci_postrequest ...HAProxy 1.9以上
HAProxy 1.9 以上を使用している場合は、上記の HAProxy 設定ファイルの編集に加えて、frontend http-in コンテキストに以下の行を追加する必要があります。
... # for haproxy-1.9 and above add the following: http-request use-service lua.sigsci_send_block if { var(txn.sigsci_block) -m bool } ...設定
通常、HAProxy モジュールを動作させるための設定変更は不要です。ただし、必要に応じてデフォルト設定をオーバーライドすることは可能です。その場合は、これらの設定ディレクティブを追加記述する override.lua ファイルを作成し、HAProxy 設定ファイル (/usr/local/etc/haproxy/haproxy.cfg) の global セクションを更新して、このオーバーライド設定ファイルを読み込むようにする必要があります。
設定例
global ... lua-load /path/to/override.lua ...オーバーライドディレクティブ
これらのディレクティブはオーバーライド設定ファイルで使用できます。
| Name | 説明 |
sigsci.agenthost | SignalSciences エージェントがリッスンしている Unix ドメインソケットへの IP アドレスまたはパス。デフォルト: /var/run/sigsci.sock (unix ドメインソケット) |
sigsci.agentport | TCP 使用時にエージェントがリッスンするローカルポート。デフォルト: nil |
sigsci.timeout | エージェントソケットのタイムアウト (秒単位)、デフォルト: 1(0はオフを意味します)。 |
sigsci.maxpost | POST ボディの最大サイズ (バイト)。デフォルト: 100000 |
sigsci.extra\_blocking\_resp\_hdr | 406 応答に対して追加されるレスポンスヘッダー。デフォルト: "" |
オーバーライド設定の例
sigsci.agenthost = "192.0.2.243"sigsci.agentport = 9090sigsci.extra_blocking_resp_hdr = "Access-Control-Allow-Origin: https://example.com"アップグレード
HAProxy モジュールをアップグレードするには、最新バージョンのモジュールをダウンロードしてインストールしてください。
インストール後、新しいモジュールバージョンが検出されるように HAProxy を再起動してください。