我的环境:win10 Apche2.4.33(win32 VC15)
apache 自行安装 注意VC版本
下载 mod_security
VC17下载地址https://www.apachelounge.com/download/
我的是VC15 下载地址https://www.apachelounge.com/download/vc15/
VC14地址 Apache VC14 binaries and modules download
根据自己的版本下载
解压 mod_security-2.9.3-win32-VS15.zip,复制文件:
mod_security2.so 到 apache/modules 文件夹
yajl.dll 到 apache/bin 文件夹
修改 apache\conf\httpd.conf
没有就加上,有就取消注释
LoadModule security2_module modules/mod_security2.so LoadModule unique_id_module modules/mod_unique_id.so
添加
Include conf/modsecurity/*.conf Include conf/modsecurity/rules/*.conf
rules/*.conf 这个在文末复制,有说明
打开 mod_security-2.9.3-win32-VC15.zip\mod_security-2.9.3\mod_security
复制一个 modsecurity.conf-recommended,改名为
modsecurity.conf
在 apache\conf 下创建一个文件夹,命名为 modsecurity
把 modsecurity.conf 放在 modsecurity 文件夹下
modsecurity.conf 修改/添加两行配置:
SecRuleEngine On SecDefaultAction "deny,phase:2,status:403"
开启安全规则引擎如果触发规则返回 HTTP 403 错误。
修改日志路径:
SecAuditLog D:\Apache24\logs\modsec_audit.log 注释SecUnicodeMapFile unicode.mapping 20127 添加 owasp 规则 下载https://github.com/SpiderLabs/owasp-modsecurity-crs
解压 owasp-modsecurity-crs-3.3-dev,把 rules 文件夹复制到apache\conf\modsecurity 目录下
复制 owasp-modsecurity-crs-3.3-dev根目录下的crs-setup.conf.example , 重 命 名 为
crs-setup.conf,放在 apache\conf\modsecurity 目录下
删除或屏蔽 apache\conf\modsecurity\rules\REQUEST-920-PROTOCOL-ENFORCEMENT.conf 第722-741行内容
不删会出现使用IP地址访问出现403错误 如果使用域名访问则保留
重启apache.测试效果
http://127.0.0.1:82/?%3Cscript%3E%20alert(1)%3C/script%3E
http://127.0.0.1:82/xxx.old
http://127.0.0.1:82/123.sql
触发规则后均返回403错误,