简介
雷池(SafeLine)是 一款WAF(Web Application Firewall) Web 应用防火墙 软件,工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
雷池WAF的核心检测能力由以下几个方面构成:
- 语义分析算法:该算法基于对Web应用代码的理解,能够识别出攻击者利用Web漏洞的行为意图,从而进行准确的检测。
- 动态行为分析:该模块通过对HTTP请求的动态分析,能够发现攻击者利用Web应用漏洞进行攻击的细节,从而提高检测的准确性。
- 机器学习模型:该模型通过对历史攻击数据的分析,能够学习到攻击者的攻击模式,从而对未知攻击进行防御。
npm(nginx proxy manager)迁移到雷池
先进入原来安装的npm目录
如果不知道按照在哪儿的可以使用下面的命令查找
sudo find / -type d -name "default_www" 2>/dev/null
进入npm目录
cd /root/docker/npm/
停用之前的npm
docker compose down
安装
官网的一键安装脚本
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
输入一个安装目录
/root/docker/safeline
按y确认
然后使用 https://0.0.0.0:9443 打开网址 其中 0.0.0.0
换成你服务器的ip地址
按照需要使用自己熟悉的身份验证器 推荐个Chrome插件
域名
一般我们访问的链接通常是这样 www.bimiracle.top (省略掉了https://)
一级域名就是bimiracle.top
二级域名就是www 具体地定位到一个特定的子站点或资源,我在这篇文章使用的是blog (完整的域名是 blog.bimiracle.top)
域名解析
进入自己买的域名管理商,添加域名解析为服务器的ip地址
依次添加三个解析记录
添加站点代理
进入雷池防护站点 – 添加站点
随便在域名前面起个名字(这里是lc.bimiracle.top)
端口443,勾选SSL,然后在下面的证书选项点击 添加新证书
填写要申请的证书和邮箱
申请成功后返回刚才的添加站点页面,选中刚才的证书
上游服务器就填写
https://172.17.0.1:9443
ip默认都是172.17.0.1
这是docker的bridge网络默认ip地址 (也就是你通过docker搭建的应用都可以用这个ip),9443就是雷池docker映射出来的端口
提交后就可以使用 lc.bimiracle.top访问你的雷池网站,此时就是https加密访问的
防护配置
防护配置 – 黑白名单 – 添加黑名单 匹配方式选择属于IP组
如果没有出现 长亭社区恶意 IP 情报 ,在通用配置 – 其他 勾选 加入 IP 情报共享计划 才有 长亭社区恶意 IP 情报
防护配置-频率限制,开启高频访问限制和高频攻击限制
通用配置勾选 强制HTTPS 使用HTTP/2 传递客户端连接的host和协议 拦截页面附加说明可以填写你的信息,防止用户被误拦截(基本上不会出现这种情况)
测试防护
https://xxx/?html=%3Cscript%3Ealert(1)%3C/script%3E
将xxx改为你的ip或者域名就可以看到雷池自动拦截了这个XSS注入
SQL 注入模拟:
https://xxx/?id=1%20AND%201=1
你可以在攻击事件中查看
点击 拦截
查看详情
注意事项
你在通用配置-编辑证书新增一个域名,此时它是重新创建一个证书,并且之前的网站还是关联的之前的证书
所以两种方法
1.每一个域名对应一个证书
2.一次性把所有你需要用到的域名都申请了 (多申请几个,即使不用也可以作为预留)
因为免费申请的Let’s Encrypt证书无法设置 * 通配符
清理统计信息和检测日志
docker exec safeline-mgt cleanlogs