【网络安全】如何在Apache 安装开源 WAF

说明:
本文以Windows环境下的Apache安装mod_security为例,
介绍开源WAF产品的安装使用。

http://www.modsecurity.cn/
https://github.com/SpiderLabs/ModSecurity

一、WAF基本介绍

WAF全称Web Application Firewall,即Web应用防火墙。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,跟网络防火墙的作用不同。

WAF的使用场景:
例如服务器中有些安全性比较差的应用程序,比如旧版的wordpress、discuz、phpwind等,审计和修改全部代码比较麻烦,这时候最好的办法就是通过部署WAF来实现安全防护。

WAF可以防护的常见风险包括:SQL注入、XSS、利用本地/远程文件包含漏洞进行攻击、PHP代码注入、黑客扫描网站、源代码/错误信息泄露等等。

目前市面上的WAF非常多,总体上可以分成3类:
硬件型WAF(厂商安装)、云WAF(比如阿里云腾讯云华为云的WAF,购买服务)、软件型WAF(可以部署在Apache、Nginx等HTTPServer中,有很多开源的产品)。

二、下载mod_security

下载和安装Apache的步骤参考:《02-Windows安装phpstudy》。

如果使用phpstudy内置的Apache,Apache文件在Extensions目录下,如:E:\phpstudy_pro\Extensions\Apache2.4.39

1、下载mod_security

下载mod_security,根据操作系统位数选择,win64是64位,win32是32位。
https://www.apachelounge.com/download/
image.png

【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

解压 mod_security-2.9.3-win64-VS16.zip,复制两个文件:
1)复制 mod_security2.so 到 apache/modules 文件夹
2)复制 yajl.dll 到 apache/bin 文件夹
image.png

2、修改 Aapche 配置文件

修改 Apache2.4.39\conf\httpd.conf
主要修改内容(没有就加上,有就取消注释,放在相同的模块附近):
取消注释:

LoadModule security2_module modules/mod_security2.so

下面添加一行:

LoadModule unique_id_module modules/mod_unique_id.so

image.png

添加

Include conf/modsecurity/*.conf

image.png

3、修改 modsecutiry 配置文件

打开 mod_security-2.9.3-win64-VS16\mod_security-2.9.3\mod_security
复制一个 modsecurity.conf-recommended,改名为
modsecurity.conf

在 Apache2.4.39\conf 下创建一个文件夹,命名为 modsecurity
把 modsecurity.conf 放在 modsecurity 文件夹下
image.png
modsecurity.conf 修改/添加两行配置:

SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"

image.png
此处含义是开启安全规则引擎,如果触发规则,默认防护措施是
返回 HTTP 403 错误。
修改日志路径,否则 Apache 启动会报路径不存在的错误:

SecAuditLog E:\phpstudy_pro\Extensions\Apache2.4.39\logs\modsec_audit.log

image.png
image.png
因为没有 unicode.mapping 文件,这一行要注释

SecUnicodeMapFile unicode.mapping 20127

image.png

三、添加 owasp 规则

1、下载规则文件

https://github.com/SpiderLabs/owasp-modsecurity-crs
image.png

2、配置规则

解压 owasp-modsecurity-crs-3.2.0,把 rules 文件夹复制到
Apache2.439\conf\modsecurity 目录下
复 制 crs 根 目 录 下 的 crs-setup.conf.example , 重 命 名 为
crs-setup.conf,放在 Apache2.4.39\conf\modsecurity 目录下
image.png

3、修改 httpd.conf

Apache2.4.39\conf\httpd.conf 再添加下面这一行(第一行前面
添加过了):

Include conf/modsecurity/rules/*.conf

image.png

4、重启 Apache

所有配置修改完以后重启 Apache。

5、测试注入

这时候尝试注入,返回 phpstudy 的 403 页面:
image.png
如果sqlmap 也无法注入:

sqlmap --purge     (先清空缓存)
sqlmap.py -u http://localhost/school/url.php?id=1

image.png
结果显示有 75 次 403 禁止访问的错误。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值