第2章 ModSecurity 設定

2.1. RHEL の設定

2.1.1. 依存関係

ModSecurity には、機能させる依存関係が複数あります。これらの一部は、Red Hat JBoss Core Services の一部としてすでに含まれています。以下の完全リストは以下を参照してください。

依存関係JBCS の一部

Apache ポート可能なランタイム

Y

APR-Util

Y

mod_unique_id

Y

libcurl

Y

PCRE

Y

libxml2

N

lua5.x

N

注記

Red Hat JBoss Core Services for windows に libxml2 および Lua5.x が含まれる

2.1.2. Red Hat JBoss Core Services でのインストール

ModSecurity は Red Hat JBoss Core Services パッケージの一部として提供されます。Red Hat JBoss Core Services のインストールに関する詳しい手順は、JBCS のインストールガイドを 参照してください。

2.1.3. 初期設定

ModSecurity は Red Hat JBoss Core Services の一部として含まれています。つまり、ModSecurity は事前設定されており、apxs ツールを使用してモジュールのビルドとインストールを行う必要はありません。Mod_sec をさらに設定するには、HTTPD にモジュールをロードする必要があります。

2.1.3.1. ModSecurity の開始

ModSecurity モジュールを読み込む前に、libxml2 ライブラリーおよび lua5.1 ライブラリーを読み込む必要があります。以下のコマンドを使用してライブラリーを読み込みます。

LoadFile /usr/lib/libxml2.so

LoadFile /usr/lib/liblua5.1.so

次に、以下を使用して ModSecurity モジュールをロードします。

LoadModule security2_module modules/mod_security2.so

2.1.3.2. ルールフォルダーの設定

ModSecurities 機能のバックボーンは、システムが使用するルールの作成です。ただし、それらを使用するには、ルールを保存する場所を知っている必要があります。JBCS には HTTPD_HOME/modsecurity.d に位置する事前に設定したフォルダーが含まれます。ルールは、このフォルダーまたは、その中に位置する activated_rules フォルダーにを保存できます。

さらに、これらのルールを使用するには、mod_security.conf.sample ファイルを仕様に設定する必要があります。最も重要な点は、ファイル名 を mod_security.conf に変更しなければならないところです。これは、以下のコマンドで実行できます。

mv mod_security.conf.sample ./mod_security.conf

ファイル自体では、ModSecurity ルールで使用するすべての設定ディレクティブにパラメーターを設定できます。

2.1.3.3. PCRE 警告

Apache では、バンドル化された PCRE ライブラリーの使用と、オペレーティングシステムが提供するものリンクを避ける必要があります。これを行う最も簡単な方法は、オペレーティングシステムが提供する PCRE ライブラリーに対して Apache をコンパイルすることです (または、メインの PCRE ディストリビューションサイトからダウンロードした最新の PCRE バージョンに対してコンパイルすることもできます)。これは、--with-pcre スイッチを使用して設定時に実行できます。Apache を再コンパイルしない場合は、ModSecurity を正常にコンパイルするには、バンドル化された PCRE ヘッダーへのアクセスが依然として必要になります (Apache ソースコードでのみ利用可能です)。また、ステップ 7 で行ったように ModSecurity の include パスを変更して、--with-pcre ModSecurity 設定オプションで、ヘッダーを指定します。Apache が外部の PCRE ライブラリーを使用している場合は、WITH_PCRE_STUDY で定義されている ModSecurity をコンパイルできます。これにより、正規表現処理でパフォーマンスをより若干向上できる可能性があります。gcc 以外のコンパイラーでは、現在のビルドシステムが gcc コンパイラーで設計されており、一部のコンパイラー/リンカーフラグが異なるため、追加設定なしの実行で問題が発生する可能性があります。gcc 以外のコンパイラーを使用するには、カスタムの CFLAGS 環境変数および CPPFLAGS 環境変数をエクスポートして問題が解決できない場合に、手動による Makefile 変更が必要になる場合があります。

2.1.3.4. キー設定オプション

enable-pcre-jit: 正規表現のパフォーマンスを向上できる pcre >= 8.20 からの JIT サポートを有効にします。

enable-lua-cache: lua スクリプトのパフォーマンスを改善できる lua 仮想マシンのキャッシュを有効にします。ModSecurity がトランザクションごとに複数のスクリプトを実行する必要がある場合にのみ違いがあります。

enable-request-early: このオプションを使用する場合、ModSecurity 2.6 フェーズ 1 は フェーズ 2 フックに移動しました。

enable-htaccess-config: AllowOverride Option が設定されている場合に、以下のディレクティブを .htaccess ファイルで使用できます。