Upload
huang-toby
View
729
Download
0
Embed Size (px)
DESCRIPTION
Apache安装配置mod security 详细步骤
Citation preview
Apache 安装配置 ModSecurity ----ourren 2012.8.2
1、安装 LAMP 和编译环境
安装 apache+php+mysql
#yum -y install httpd php mysql mysql-server php-mysql
apache 版本
Mysql 版本
Centos 版本
安装编译环境
#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
然后添加模块的配置文件
<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、功能测试
创建数据库
#CREATE TABLE user (id int(5),username VARCHAR(20), password CHAR(1));
php 测试代码
数据库结构
插入数据
# insert user(id,username,password) values(1,'admin','adminpass');
测试网页
可以看到用 Havij 成功爆出了数据库和数据
加载 mod_security 模块后,正常访问看看效果:
可以看到现在无法用 Havij 爆出数据信息,其日志信息中有提示,“Please register to enable
mod_security bypass”,但是当开启这个功能后,发现还是不能注入。
看 modsec_audit 日志是发现有注入的,并且利用了注释来绕过防火墙。
6、总结
通过上面的安装和测试,发现 modsecurity 可以防御一些攻击,同时用户可以根据需求
自定义规则,从功能方面来看还是很不错的,不过规则配置相对比较复杂,实际应用的话需
要深入研究才行。
参考资料
http://www.tecmint.com/protect-apache-using-mod_security-and-mod_evasive-on-rhel-centos-f
edora/
http://mod-security.svn.sourceforge.net/viewvc/mod-security/m2/trunk/modsecurity.conf-reco
mmended
http://blog.secaserver.com/2011/10/install-mod_security-apache2-easiest/