官网的code获取地址
http://www.modsecurity.org/do...
里面讲述了系统的安装方法,此文只讲从源代码编译安装

1、安装modsecurity
./configure --help可以查看所有的编译参数,注意指定下列参数到apache目录,和apache共用,不然会apache用自己的,modsecurity用了系统的,出现莫名其妙的问题
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-pcre=/usr/local/bin/pcre-config --with-apr=/usr/local/apache2/bin/apr-1-config --with-apu=/usr/local/apache2/bin/apu-1-config --with-yajl=PATH

--with-yajl是提供json支持,如果这个库没有装上,会在拦截application/json的时候报400的错误。

安装完成后可以在apache的modules目录或者/usr/local/modsecurity/lib中看到mod_security2.so,使用ldd mod_security2.so可以看到里面配置了的参数,看是否有yajl(切记、切记、切记),我自己就没有装上去,只能在modsecurity.conf中关闭了对application/json的支持。

2、安装核心规则集
下载并安装最新的OWASP CRS
进入apahace的安装目录

mkdir crs

cd crs

wget https://github.com/SpiderLabs...

tar xzf master

mv SpiderLabs-owasp-modsecurity-crs-ebe8790 owasp-modsecurity-crs

cd owasp-modsecurity-crs

cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf

3、配置apahce
复制modsecurity源文件夹下的modsecurity.conf-recommended到apache的conf/extra下,命名为modsecurity.conf

开启unique_id,security2
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so

Include conf/extra/modsecurity.confInclude crs/owasp-modsecurity-crs/modsecurity_crs_10_setup.confInclude crs/owasp-modsecurity-crs/base_rules/*.conf
Include conf/extra/modsecurity_crs_10_customrules.conf

注:
modsecurity_crs_10_customrules.conf中是覆盖了一些原有的配置,比如:
SecRuleUpdateTargetById 981172 !REQUEST_COOKIES:/userInfo.*/
这句的意思就是在cookie中遇到userInfo的时候,禁用981172的规则,这个在配置选项里面有详细说明

modsecurity的配置选项
https://github.com/SpiderLabs...

未完待续