XAMPP に ModSecurity(WAF)を導入する手順メモ

XAMPP + ModSecurity

ちょっと前に WAF の実験のために Linux に ModSecurity(WAF) を導入したのだが、せっかくなので Windows の XAMPP にも ModSecurity を導入してみた。

XAMPP への ModSecurity 導入手順

必要なファイル群のダウンロード

・ModSecurity

本体(というかモジュール)。

Apache Lounge から mod_security をダウンロードする。
64bit OS でも XAMPP は 32bit なので、32bit 版をダウンロード。

・OWASP ModSecurity Core Rule Set (CRS)

CRS ってのは WAF のルールを記述したファイル群のこと。

OWASP ModSecurity Core Rule Set Project のページの右下にある Quick Download から Latest CRS (ZIP) をダウンロード。

・unicode.mapping

Github の SpiderLabs/ModSecurity から unicode.mapping をダウンロード。

フォルダ作成

あらかじめ以下のフォルダを作っておく。

ModSecurity  用のフォルダ作成図

  • /xampp/apache/conf/modsecurity/
  • /xampp/apache/conf/modsecurity/rules/

ファイルの設置

ダウンロードしたファイルを解凍して以下のように配置。
(libcurl.dll は必須ではない気もすっけど、まぁいいか)

ModSecurity  用のファイル配置図

ファイル 配置するフォルダ 備考
libcurl.dll /xampp/apache/bin/  
yajl.dll
modsecurity.conf /xampp/apache/bin/ modsecurity.conf-recommended をリネーム
unicode.mapping  
crs-setup.conf.conf /xampp/apache/conf/modsecurity/ crs-setup.conf.example をリネーム
rules フォルダ内の
conf / data ファイル全部
/xampp/apache/conf/modsecurity/rules/  
mod_security2.so /xampp/apache/modules/  

httpd.conf

/xampp/apache/conf/httpd.conf に以下を追記

LoadModule security2_module modules/mod_security2.so

<IfModule security2_module>
Include conf/modsecurity.conf
Include conf/modsecurity/crs-setup.conf
Include conf/modsecurity/rules/*.conf
</IfModule>

modsecurity.conf

modsecurity.conf 内の記述を以下のように変更

#SecRuleEngine DetectionOnly
SecRuleEngine On
#SecRequestBodyAccess On
SecRequestBodyAccess Off
#SecAuditLog /var/log/modsec_audit.log
SecAuditLog logs/modsec_audit.log

XAMPP の Apache 再起動

XAMPP の Apache を再起動して、Apache が正常に起動することを確認。

XAMPP コントロール画面

以上で ModSecurity の導入完了。

これで不正なアクセスに対しては 403 Forbidden になる。
/xampp/apache/logs/modsec_audit.log にログが記録されるので、いろいろ試してみると良い。

IT・ICT, Windows

Posted by るな