Apacheに組み込めるWAFモジュールであるModSecurityをインストールした時の備忘録です。
■ModSecurity公式
http://www.modsecurity.org/index.html
■使用OS
CentOS5.5 64bit
注)OSのインストール方法は、以下アドレスの通りにしています。
http://www.kurobuti.com/linuxserver/index.php?option=com_content&view=art
icle&id=68&Itemid=74
■使用ModSecurity
modsecurity-apache_2.5.13.tar.gz
最新版は以下URLで確認してください。
http://www.modsecurity.org/download/
最近、うちのサーバにちょこちょこと攻撃が来るようになったのでModSecurity(WAF)でも導入しようか検討していました。
で、取りあえず今回はインストールまでできたっぽいのでその備忘録です。
# ルール構成を考えるのは結構知識が無いと難しい・・・orz
# ちなみに、ModSecurityはepelリポジトリかutterramblingsリポジトリを導入していればyumで簡単にインストールできます。
# 以下は、ソースからインストールした手順です。
(1)EPELリポジトリをインストール
[root@example ~]# rpm --install http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm注)luaパッケージがデフォルトのリポジトリにないためEPELからインストールします。
(2)必要なパッケージのインストール
[root@example ~]# yum -y install pcre pcre-devel libxml2 libxml2-devel curl curl-devel apr apr-devel apr-util apr-util-devel lua lua-devel httpd httpd-devel
(3)ModSecurityダウンロード
[root@example ~]# wget http://www.modsecurity.org/download/modsecurity-apache_2.5.13.tar.gz
(4)ModSecurityインストール
[root@example ~]# tar zxvf modsecurity-apache_2.5.13.tar.gz [root@example ~]# cd modsecurity-apache_2.5.13/apache2/ [root@example apache2]# ./configure [root@example apache2]# make [root@example apache2]# make mlogc [root@example apache2]# make install [root@example apache2]# cp -p mlogc-src/mlogc /usr/bin/ [root@example apache2]# cp -p mlogc-src/mlogc-default.conf /etc/mlogc.conf
(5)ModSecurityの設定
[root@example ~]# vi /etc/httpd/conf.d/mod_security.conf LoadModule unique_id_module modules/mod_unique_id.so LoadModule security2_module modules/mod_security2.so <IfModule mod_security2.c> Include modsecurity.d/base_rules/*.conf Include modsecurity.d/modsecurity_crs_10_config.conf </IfModule> [root@example ~]# mkdir /etc/httpd/modsecurity.d [root@example ~]# cp -r modsecurity-apache_2.5.13/rules/base_rules/ /etc/httpd/modsecurity.d/ [root@example ~]# cp -r modsecurity-apache_2.5.13/rules/optional_rules/ /etc/httpd/modsecurity.d/ [root@example ~]# cp -r modsecurity-apache_2.5.13/rules/modsecurity_crs_10_config.conf.example /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf [root@example ~]# vi /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf #SecRuleEngine DetectionOnly ↓ # 変更 SecRuleEngine On # 「DetectionOnly」は検知のみ # 最終行にでも追加(ログ) # Mod Security Audit Log SecAuditEngine On SecAuditLog On SecAuditLog logs/mod_security_audit.log
(6)Apacheを起動
[root@example ~]# /etc/rc.d/init.d/httpd configtest Syntax OK [root@example ~]# /etc/rc.d/init.d/httpd start httpd を起動中: [ OK ] [root@example ~]# chkconfig httpd on
(7)ログが吐かれるか確認
[root@example ~]# tail -f /var/log/httpd/mod_security_audit.logブラウザからサーバへアクセスしログが出力されるか確認する。
取りあえず、うちの環境ではログが吐かれたので動いているのだろう・・・。(多分)
うーん、ルールがよくわからん。ここらへん勉強しないとなぁ。
ちなみに、以下URLからFirewall Ruleがダウンロードできるみたい。
https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project
後、以下URLでユーザ登録をすれば、ModSecurityの設定をGUIで行えるツールがダウンロードできるらしい。
http://www.breach.com/products/ModSecurity-Community-Console.html
#最初、mlogcがGUIでの設定ツールかと思ったんだけど、違うのかなぁ。上記GUIツールを使うのにmlogcが必要??
#うーん、よくわからない。
参考文献
1. http://sourceforge.net/apps/mediawiki/mod-security/index.php?title=Reference_
Manual#Installation
2. http://www.jasonlitka.com/yum-repository/
3. オライリー「Apache セキュリティー」359p-386p(情報が古くてあまり使えなかった)
WeBekci is a web based ModSecurity 2.x management tool.
WeBekciらしいですよ。でも、開発進んでないようです。
Last Update 2009-07-17
> とおりすがりさんへ
黒ぶちです。
> WeBekci is a web based ModSecurity 2.x management tool.
> WeBekciらしいですよ。でも、開発進んでないようです。
情報ありがとうございますm(__)m
開発進んでないんですね(´・ω・`)
https://www.owasp.org/index.php/Category:OWASP_WeBekci_Project
あるとそれなりに便利なんですが・・・。
最近は、デフォでWebGUIがある OpenWAF が出てきたのでちょっとイジイジしてみようかなと思ったりもしています。