1、安装LAMP和编译环境
环境说明
#Apache 2.2.5
#Mysql 5.1.6
#Centos 6.0
安装apache+php+mysql
#yum -y install httpd php mysql mysql-server php-mysql
安装编译环境
#yum install gcc make
#yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel
启动服务测试
#service httpd start
#service mysqld start
注意:需要iptables允许所有IP访问80端口
2、安装mod_security
从官方下载源码、编译并安装。
//sourceforge fuck gwf
#wget http://www.modsecurity.org/download/modsecurity-apache_2.6.6.tar.gz
# tar xzf modsecurity-apache_2.6.6.tar.gz
# cd modsecurity-apache_2.6.6
# ./configure
# make install
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
3、规则配置
需要配置一些规则防范未知漏洞和扫描,采用Modsecurity推荐规则和OWASP_CRS两个规则进行组合,如下:
详细规则采用OWASP_CRS:
http://downloads.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.5.tar.gz
基本规则设置采用Modsecurity推荐规则:
http://mod-security.svn.sourceforge.net/viewvc/mod-security/m2/trunk/modsecurity.conf-recommended
使用的时候将Modsecurity推荐规则文件内容加在modsecurity_crs_10_config.conf的前面,并把SecRuleEngine DetectionOnly改为SecRuleEngine On即可(因为需要的不仅仅是检测,需要防御)。
# cd /etc/httpd/
# wget http://downloads.sourceforge.net/project/mod-security/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.5.tar.gz
# tar xzf modsecurity-crs_2.2.5.tar.gz
# mv modsecurity-crs_2.2.5 modsecurity-crs
# cd modsecurity-crs
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
# vi /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf
4、加载模块
Apache加载mod_security模块,注意要修改的时候需要关闭apache。
# vi /etc/httpd/conf/httpd.conf
在其中找到LoadModule并在下面添加下面的代码:
#LoadModule security2_module modules/mod_security2.so
#LoadModule unique_id_module modules/mod_unique_id.so
然后添加模块的配置文件
1
2
3
4
5
6
7
<IfModule security2_module>
Include /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
Include /etc/httpd/modsecurity-crs/base_rules/*.conf
</IfModule>
重启apache
# service httpd restart
5、功能测试
见附件文档。
6、总结
通过上面的安装和测试,发现modsecurity可以防御一些攻击,同时用户可以根据需求自定义规则,从功能方面来看还是很不错的,不过规则配置相对比较复杂,实际应用的话需要深入研究才行。
参考资料
http://www.tecmint.com/protect-apache-using-mod_security-and-mod_evasive-on-rhel-centos-fedora/
http://mod-security.svn.sourceforge.net/viewvc/mod-security/m2/trunk/modsecurity.conf-recommended
http://blog.secaserver.com/2011/10/install-mod_security-apache2-easiest/