ModSecurity【Plesk12以降】

付録

ウェブアプリケーションファイアウォール(WAF)であるModSecurityの設定ガイドです。
ドメインごとに有効化設定をしたら必ず、通常のアクセスが問題なくできるかどうか、確認を行って下さい。

STEP 1Plesk12>ツールと設定>ウェブアプリケーションファイアウォール

Plesk12に管理者ログインしセキュリティ欄の「ウェブアプリケーションファイアウォール(ModSecurity)」をクリックします。

Plesk12:ツールと設定>ウェブアプリケーションファイアーウォール

Plesk12:ツールと設定>ウェブアプリケーションファイアーウォール

STEP 2モードの確認

EX-CLOUDのサーバでは既定で「オン」の状態にして出荷していますが、
「オン」のラジオボタンが選択されているのを確認ください。

STEP 3ルールセットの選択、構成の確認、「OK」のクリック

「オフ」から、「オン」にモードをラジオボタンを選択しなおすと、ページ下にルール選択画面、構成確認画面が出ます。

もし、すでに、「検出のみ」 もしくは 「オン」だった場合は、
「設定」タブをクリックすると、ルール選択画面、構成確認ができます。

以下が基本設定ですので、設定になっていることを確認します。

(当社で動作確認を行った)ルールセット: Atomic Basic ModSecurity(既定)  
(既定)事前定義された値セット:高速

※上記は任意で設定を変更いただけます。
ルールセットについて
事前定義された値セットについて | カスタムディレクティブについて

STEP2,STEP3 、なんらかの変更を加えた場合は必ず、「適用」(もしくは「OK」)を押してください。
「OK」を押すと、設定 ウェブアプリケーションファイアウォールの設定を保存後、「ツールと設定」の画面に切り替わります。

STEP 4ウェブサイトとドメイン>ドメイン名>ウェブアプリケーションファイアウォール⇒「オン」

サーバ側で設定を有効になっていることを確認したら、ドメイン側に「ウェブアプリケーションファイアウォール」のボタンが表示されます。

以下の手続で有効化してください。

  • Plesk12>ウェブサイトとドメイン>対象ドメイン名以下に、”展開する”が表示されていたらクリック
  • ウェブアプリケーションファイアーウォールをクリック
  • 「オン」を選択し「OK」をクリック」
ドメインのウェブアプリケーションファイアウォール(WAF)

2.ドメインのウェブアプリケーションファイアウォール(WAF)をクリック

ドメイン>ウェブアプリケーションファイアウォール 

3.「ウェブアプリケーションファイアウォールのモード」をオフからオンにし、「OK」をクリック 

STEP 5設定確認

設定が完了したら、必ずウェブサイトの動作確認を行ってください。

一般的なログイン操作や閲覧操作、CGI、ログイン作業ののあるCMSなど一通り確認ください。
以前は問題なかったのにアクセスができなくなるウェブサイト上の機能などがあった場合はログを確認します。

以下のガイドではModSecurityが機能しているかどうかを、確認する例を紹介しています。
ModSecurityの動作確認例【Plesk12】

付録

ログ閲覧、関連ファイル等

ログ閲覧画面 ログ閲覧画面 実際のログファイルパス、関連設定ファイル
(1)サーバのログ(ModSecutiryの監査ログ) ツールと設定>
ウェブアプリケーションファイアウォール(ModSecurity)>
ModSecurity ログファイル | ログアーカイブ
ログファイルのパス:
/var/log/modsec_audit.log
および
modsec_audit.log-YYYYYMMDD.gz

関連設定ファイル:
/etc/httpd/conf/plesk.conf.d/server.conf(サーバ全体のルール設定や、特定のルール無効化設定等)
/etc/httpd/conf/modsecurity.d/zz_rules.conf
/etc/httpd/conf/plesk.conf.d/modsecurity.conf(カスタムディレクティブ欄参照)

(2)ドメインのログ(ウェブサーバのエラーログ) ドメイン名>
ウェブアプリケーションファイアウォール>
エラーログ
ログファイルのパス:
/var/www/vhosts/example.com/logs/error_log

関連設定ファイル:
/var/www/vhosts/system/【ドメイン名】/conf/httpd.conf(SecRuleEngine Off/ON, 特定のルール無効化設定等)

⇒サーバ全体ではModSecurityが有効なのに
ドメイン側ではModSecurityを無効にしている場合は
<IfModule mod_security2.c>~</IfModule>
内に「SecRuleEngine Off」 が明記されます
(2016年3月時点での確認)

(1)サーバのModSecurity監視ログ閲覧画面

  • ツールと設定>ウェブアプリケーションファイアウォール(ModSecurity)>ModSecurityログファイルをクリック)(別ウィンドウでログファイルが確認できます)
  • 過去ログは「アーカイブ」からダウンロードできます。
  • 既定の状態ですとここにはModSecurityがNG処理を行ったものしか記録されません。
    そのため、ウェブ閲覧エラーになったからといって必ずしもこのログで理由がわかるわけではありません。(プログラムエラー起因、ファイルが見つからないエラーなどは記載されません)
(1)サーバの監査ログを見る

(1)サーバの監査ログを見る

【監査ログの見方、セキュリティIDの探し方】

  • ModSecurityログファイルをクリックすると別ウィンドウでログファイルが開く
  • ログファイルの内容から、特定のドメイン名を検索
  • 『—(イベントID)-A–』…『—(イベントID)-Z–』 という形で、処理が記録されます。
    ハイフンの間の 8 文字(この例では「eece5138」)は、HTTP 要求でトリガされたイベントの ID です。
    たとえば、「–eece5138-B–」のようなエントリがありますので、イベント ID の後に「H」という文字が
    付いたエントリを探します(この例では「eece5138-H–」)
  • 『—(イベントID)-H–』の中には、HTTP 要求のチェック時にセキュリティルールの ID と説明が含まれます。セキュリティルール ID とは、引用符に囲まれた 3 から始まる整数であり、プレフィックス「id」付きで角括弧に囲まれています(例:[id “340003”])。[id “3」という文字列を探すと、どのセキュリティ IDが起因して、ModSecurityが処理を行ったかがわかります。

(2)ドメインのエラーログ閲覧画面

  • ドメイン>ウェブアプリケーションファイアウォール>エラーログ
  • 通常のバーチャルホスティングのエラーログ閲覧ですので、ウェブアプリケーションファイアウォールが起因せずにエラーとなったログファイルも含まれます。
  • ModSecurityの処理の場合は「ModSecurity: Access denied with code 403」というようなメッセージが記載されます
ドメインのエラーログを見る

(2)ドメインのエラーログを見る

特定のセキュリティルールをオフにする

セキュリティルールが一部のウェブサイトに対して厳格すぎると思われる場合に、「セキュリティルールをオフにする」の欄にて特定のルールを無効にすることができます。
セキュリティID(340003 など)、タグ(CVE-2011-4898 など)を指定することができます。
特定のセキュリティIDについてオフにする操作例をご案内します。

  • ModSecurityログファイルから、オフにしたいセキュリティルールIDを確認します。セキュリティルールIDは id “3xxxxx(”等で表示されます。ログの閲覧は ログ閲覧、関連ファイル等を参照ください。
  • サーバ全体に ルール無効化を適応したい場合は 
    ツールと設定>ウェブアプリケーションファイアウォール>全般タブ>セキュリティルールをオフにする 欄 
    特定ドメインにルール無効化を適応したい場合は
    ドメイン名>ウェブアプリケーションファイアウォール>セキュリティルールをオフにする 欄 
    を開きます
  • セキュリティID欄に数字のみ(例:340003)を入れて「OK」(もしくは「適用する」)をクリックします

SecRuleRemoveById SecRuleRemoveByMsg 等の設定が それぞれの設定ファイルに反映され、Apacheがリスタートされます。

サーバ側のモード設定について

Plesk12>ツールと設定>ウェブアプリケーションファイアウォール側で設定するモードについての概説です。
こちらで設定した内容はApache側の「/etc/httpd/conf/plesk.conf.d/server.conf」に反映されます。

設定モード 説明
オフ ウェブサーバへのリクエスト、およびリスポンスはチェックされません。ここ(サーバ全体)での設定が「オフ」の場合、個々のドメイン側でも「ウェブアプリケーションファイアウォール」のボタンが表示されず、設定ができません。
検出のみ ウェブサーバリクエストおよびリスポンスはチェックされます。チェック後、正常と判断されたものを通常通りのウェブコンテンツに渡されます。不正と判断されると、イベントはModSecurityのログに記録されます。ここ(サーバ全体)での設定が「検出のみ」の場合、個々のドメイン側には「ウェブアプリケーションファイアウォール」のボタンが表示されますが、「オフ」「検出のみ」の二択となります。
オン ウェブサーバリクエストおよびリスポンスはチェックされます。チェック後、正常と判断されたものを通常通りのウェブコンテンツに渡されます。不正と判断されると、イベントはModSecurityのログに記録され、通知が送信され、HTTPにエラーコードが割り当てられます。ここ(サーバ全体)での設定が「オン」の場合、個々のドメイン側には「ウェブアプリケーションファイアウォール」のボタンが表示されますが、「オフ」「検出のみ」「オン」の三択となります

関連FAQ

サーバ全体のModSecurityの設定を確認したいのですが…【Plesk12】

ルールセットについて

ルールセット名 説明
Atomic Basic ModSecurity Plesk関連パッケージののサードパーティの開発会社であるAtomic社提供の ModSecurity ルールの基本バージョンです。ユーザ登録不要で利用ができます。
OWASP ModSecurity 非営利団体である OWASP( Open Web Application Security)の提供する ルールです。ユーザ登録不要で利用ができます。この設定を適応しようとすると、「OWASP ルールが厳格すぎて、ファイル共有、ウェブメール、一部のウェブアプリケーションがブロックされる場合があります」というダイアログが出ます。制限の強いタイプのルールです。
Atomic ModSecurity(契約) Plesk関連パッケージののサードパーティの開発会社であるAtomic社提供の ModSecurity ルールですが、Atomic社側にユーザ登録をする必要があります。
Comodo ModSecurity(契約) セキュリティ商材を取り扱っているComodo社 がリリースするウェブアプリケーションファイアウォールのルールセットです。こちらもComodo社にユーザ登録する必要があります。
カスタムルールセット ご自身で設定確認などができる方向けの設定ですので、詳細はお客様にてご確認ください。メーカガイドによりますと、ウェブアプリケーションファイアウォールのカスタムルールセットを適応できるもので、zip、tar.gz、tgz、tar.bz2等の型式でアップロードする機能です、

関連FAQ

サーバ全体のModSecurityの設定を確認したいのですが…【Plesk12】

事前定義された値セットについて

Plesk12>ツールと設定>ウェブアプリケーションファイアウォール>設定タブ内の「構成」欄に”事前定義された値セット”についてです。
こちらで設定した内容についても 前述内容同様に、Apache側の「/etc/httpd/conf/plesk.conf.d/server.conf」に反映されます。

デフォルトで「高速」の設定です。
「高速」「トレードオフ」「完全」の順に解析内容が多くなるため、負荷がもっとも軽いのは「高速」となります。(任意でご調整ください)

事前定義された値セット 内容
高速(fast) HTTP 要求 の URI およびヘッダ部分が解析されます。
トレードオフ(trade-off) HTTP 要求の URI、ヘッダ、および要求の POST データが解析されます。
完全(through) HTTP 要求のヘッダ全体、要求の POST データ、および HTTP 応答の本文が解析されます。

カスタムディレクティブについて

カスタムディレクティブ はApacheでの関連設定を指定できる項目です。
こちらについても任意です。

ここでの指定内容は
/etc/httpd/conf/plesk.conf.d/modsecurity.conf」というファイルに直接書き込まれ、
Apacheが読み込むため、Apacheの対象バージョンの記述式で誤りのないものを指定する必要がありますので
ご注意ください。

実際には 「/etc/httpd/conf/plesk.conf.d/server.conf」の設定ファイルの中の
<IfModule mod_security2.c>~</IfModule>
の内で「/etc/httpd/conf/plesk.conf.d/modsecurity.conf」をインクルード(外部ファイルを追加で読み込み)します。

設定については専門的であるため、サポートしておりませんが、
このディレクティブ内で指定可能なもので、且つApacheバージョンにも注意して指定するようにしてください。

関連FAQ

サーバ全体のModSecurityの設定を確認したいのですが…【Plesk12】