使用社区版雷池waf防护自己的网站
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于收到黑客的攻击。
WAF 部署架构
下图是一个简单的网站流量拓扑,外部用户发出请求,经过网络最终传递到网站服务器。
此时,若外部用户中存在恶意用户,那么由恶意用户发出的攻击请求也会经过网络最终传递到网站服务器。
社区版雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。
通过以上行为,最终确保外部攻击流量无法触达网站服务器。
安装waf
配置需求
- 操作系统:Linux
- 指令架构:x86_64
- 软件依赖:Docker 20.10.6 版本以上
- 软件依赖:Docker Compose 2.0.0 版本以上
- 最小化环境:1 核 CPU / 1 GB 内存 / 10 GB 磁盘
可以逐行执行以下命令来确认服务器配置
1 | uname -m # 查看指令架构 |
安装方式
官网有三种安装方式分别是:
- 在线安装:推荐安装方式
- 离线安装:服务器无法联网时选择
- 一键安装:最简单的安装方式
我这里只显示在线安装方式进行部署
在线安装waf
把前边提到的软件依赖装好,这里我推荐使用宝塔也很适合新手小白确保安装成功!
如果你安装了宝塔面板,那么你只需要安装docker软件即可Docker Compose也会一并安装好的。
执行以下命令创建并进入雷池安装目录
1 | mkdir -p safeline # 创建 safeline 目录 |
执行以下命令,将会自动下载镜像,并完成环境的初始化
1 | curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh | bash |
执行以下命令启动雷池
1 | docker compose up -d |
经过以上步骤,你的雷池已经安装好了。
登录waf
浏览器打开后台管理页面 https://<waf-ip>:9443
。根据界面提示,使用 支持 TOTP 的认证软件 扫描二维码,然后输入动态口令登录:
配置防护站点
上游服务器:就是你源站的地址,例如:http://127.0.0.1:8888
将网站流量切到雷池
- 若网站通过域名访问,则可将域名的 DNS 解析指向雷池所在设备
- 若网站前有 nginx 、负载均衡等代理设备,则可将雷池部署在代理设备和业务服务器之间,然后将代理设备的 upstream 指向雷池
配置https
测试防护效果
确认网站可以正常访问
根据雷池 WAF 配置的网站参数访问你的网站
打开浏览器访问 http://<IP或域名>:<端口>/
网站协议默认是 http,勾选 ssl 则为 https
主机名可以是雷池的 IP,也可以是网站的域名(确保域名已经解析到雷池)
端口是你在雷池页面中配置的网站端口
尝试手动模拟攻击
打开浏览器,访问以下地址即可模拟出对应的攻击:
- 模拟 SQL 注入,请访问
http://<IP或域名>:<端口>/?id=1%20AND%201=1
- 模拟 XSS,请访问
http://<IP或域名>:<端口>/?html=<script>alert(1)</script>
通过浏览器,你将会看到雷池已经发现并阻断了攻击请求。
如果遇到问题请去官网具体查看配置问题 - 长亭雷池 WAF 社区版 (chaitin.cn)。