环境为centos 6.5 apache2.2 modsecurity2.9.2

安装mod_security的依赖

yum install gcc make httpd-devel libxml2 pcre-devel libxml2-devel curl-devel git

下载最新稳定的mod_security源代码

wget https://www.modsecurity.org/tarball/2.9.2/modsecurity-2.9.2.tar.gz

安装步骤:

tar xzf modsecurity-2.9.2.tar.gz

cd modsecurity-2.9.2

./configure

make install

cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

cp unicode.mapping /etc/httpd/conf.d/

安装完成后调整配置,修改httpd.conf

LoadModule security2_module modules/mod_security2.so

如下配置,需要根据目录位置修改,因为modsecurity安装在/etc/httpd目录,配置文件在conf文件,所以不在写入以下配置。

<IfModule security2_module>

   Include conf.d/modsecurity.conf

</IfModule>

配置完成后下载owasp的规则:

cd /etc/httpd

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git 
或
wget https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.1.0-rc1.tar.gz

mv owasp-modsecurity-crs modsecurity-crs

cd modsecurity-crs

cp crs-setup.conf.example modsecurity-crs-config.conf

在httpd.conf中修改

Include modsecurity-crs/modsecurity-crs-config.conf

Include modsecurity-crs/rules/*.conf

修改完成后重启服务:

service httpd restart

完成以后尝试SQL注入攻击,可以看到被拦截的页面。

1539936020823

在apache日志中查看error信息:

1539941434534

从上图可以看到拦截的类型和规则id,还有规则的目录文件。去对应的规则处查看规则文件,可以看到如下的规则匹配。

1539941488517

关于modsecurity的配置,根据各自设置的地址,比如当前地址为/etc/httpd/conf.d中。

  • SecRuleEngine On 设置为mod是否开启,默认设置为Detection Only,作用是只检测。Off则是关闭mod。

  • SecRequestBodyAccess On 检查请求体,默认开启,可以选择On或Off。

  • SecAuditEngine RelevantOnly
    SecAuditLogRelevantStatus “^(?:5|4(?!04))”

    SecAuditLogParts ABIJDEFHZ

    SecAuditLogType Serial
    SecAuditLog /var/log/modsec_audit.log

    记录日志审计内容,文件地址等,如下图所示,ABCE等,修改SecAuditLogParts参数,可以记录不同的日志部分。对调试waf,修改配置策略很有用。

1540192226114

然后,如果需要修改其他配置项,比如403错误页面,直接再httpd.conf中修改403错误页面即可。

参考链接:

http://www.vue5.com/centos/23142.html

https://www.cnblogs.com/xiachj/p/4112194.html





# web安全  

tocToc: