手把手教你用PVE部署“雷池WAF”,不让黑客越雷池一步(折腾NAS系列五)
💡写在前面
最近在水群的时候,被大佬们安利了一个检测IP地址和域名是否暴露的网站:https://fofa.info/,检测了一下我家里的IP和域名,可以说是触目惊心,我的群晖、爱快、Emby等等端口全部暴露了,如下图所示。虽然已经做了反代,但是出于不怕一万就怕万一的考虑,我决定部署“雷池WAF”以提高对外web服务的安全性。

🍓项目简介
雷池WAF一款Web应用防火墙,区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
采用容器化部署,一条命令即可完成安装,0 成本上手,安全配置开箱即用,无需人工维护,可实现安全躺平式管理。
雷池社区版主要以 反向代理 的方式工作,类似nginx。
让网站流量先抵达雷池,经过雷池检测和过滤后,再转给原来的网站业务。
项目官网:https://waf-ce.chaitin.cn/

🍉我的软硬件环境
j4125软路由,已部署PVE 8.2
勤劳的双手和聪明的大脑
🚥第一步:部署Ubuntu22.04
PVE中,点击local(pve)→点击CT模板→点击模板

选择Ubuntu22.04-1版本(雷池对Ubuntu22.04版本的兼容性较好,建议选用此版本)
点击下载
等待下载完成

⚠️注意事项:
如果你下载失败的话,可以尝试更换PVE国内源后再尝试下载,网上有很多更换国内源的教程。
或者手动下载后再上传到CT模板,下载地址:https://mirrors.ustc.edu.cn/proxmox/images/system/
选择ubuntu-22.04-standard_22.04-1_amd64.tar.zst,不要下错了

点击创健CT→节点默认→CT ID自定义→主机名自定义→密码自定义(注意密码后面会用到)→其他均为默认→点击下一步
这里务必要勾选无特权的容器 ,否则后面会报错并安装失败。

存储选择默认的local→模板选择前面下载的ubuntu-22.04→点击下一步

存储选择默认的local→磁盘大小最少给20G→其他均为默认→点击下一步

CPU我的j4125给了2核→其他均为默认→点击下一步

内存2G→其他均为默认→点击下一步

网络设置这里,因为我不需要ipv6,所以只设置了ipv4。
填写IPv4/CIDR(也就是你要指定的雷池局域网访问地址,格式如192.168.31.11/24)→填写网关(一般为路由器的IP,如192.168.31.1)→其他均为默认→点击下一步

后面全部默认即可,完成设置并启动,如果容器启动不起来,请反复检查上述步骤。
🚥第二步:部署雷池WAF
点击进入控制台→输入root并回车→输入你前面设置的密码

然后可以看到如下提示:

输入以下代码,更新Ubuntu软件包
sudo apt update
等待安装完成后,输入以下代码,安装curl工具
sudo apt update
sudo apt install curl
中间会有提示,输入y并回车

等待安装完成后,输入以下代码,自动安装雷池WAF
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
按照提示输入Y,安装docker环境

目录默认即可,按回车

输入y确认

出现这个界面,说明安装成功了,记住生成的账号密码。
如果安装失败请反复检查前面的步骤。

🚥第三步:设置雷池WAF
访问控制台,地址是你前面设置的IP地址,端口9443:https://192.168.31.11:9443
出现这个提示,点高级,点继续访问即可:

输入前面安装成功界面生成的账号密码。

如果你没有记住密码,可以在PVE控制台使用如下代码重新生成:
docker exec safeline-mgt resetadmin
命令执行完成后会随机重置
admin账户的密码,输出结果如下
[SafeLine] Initial username:admin
[SafeLine] Initial password:**********
[SafeLine] Done
进入控制台界面

首先我们添加域名证书,进入防护站点→点击证书管理→点击添加证书

上传你的域名证书文件,或直接复制粘贴。

雷池也支持自动获取和更新域名证书,不过需要挂代理,有需要的可自行探索。
下面添加要保护的web站点。
这里要注意的是,雷池可以非常灵活地介入你的web访问节点,我选择直接将雷池作为反代服务器,你也可以把雷池部署在你原反代服务器的上下游。
因为我选择直接将雷池作为反代服务器,所以需要将原来的反代服务,例如群晖自带的反代、lucky、nginx等的反代设置,全部取消。
同时,需要将雷池的反代端口在路由器里进行映射,这个后面再讲。
进入防护站点→点击站点管理→点击添加站点

输入域名(这个域名就是你用于外网访问的域名),如:abc.abc.com
输入自定义的端口号(这个端口号就是你用于外网访问的端口号),如:12345
这里要注意,配置的多个网站的端口号可以不同,也可以相同,但是都需要在路由器里进行端口映射,映射规则是把上面设置的端口映射到雷池的IP,可参考下图爱快的设置:

点击选择SSL
选择你刚才上传的证书
输入上游服务器(这个上游服务器就是你的web服务本地地址)
备注自定义
点击提交

现在你就可以通过前面设置的:https://abc.abc.com:12345,来访问你的web服务了。
此时你可以在站点防护选项里单独配置每个站点的防护模式

例如选择维护模式后再访问站点,则会显示如下:

也可以在防护配置选项里配置更多防护规则,不再赘述。防护模块选项里建议改为高强度防护 。

自定义规则选项里可以维护黑白名单设置。

其他防护设置请自行探索。
🚥第四步:雷池WAF的升级
当你看到左下角的升级提醒时,可以选择进行升级。

升级方法:
打开pve雷池容器的控制台,进入root,输入如下升级命令(升级不会清除历史数据):
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/upgrade.sh)"
如果需要使用华为云加速,可使用:
CDN=1 bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/upgrade.sh)"
[可选] 执行以下命令删除旧版本 Docker 镜像,释放磁盘空间。 有部分环境的默认 SafeLine 安装路径是在
/data/safeline-ce,安装之后可能会发现需要重新绑定 OTP、配置丢失等情况,可以修改 .env 的SAFELINE_DIR变量,指向/data/safeline-ce
docker rmi $(docker images | grep "safeline" | grep "none" | awk '{print $3}')
好的,到这里整个配置已经全部完成,你可以愉快地使用它了。
希望我的教程能够帮助到你,如果你感觉有用的话,三连请走一波。
⚠️此外,雷池当然也支持在群晖、1panel等的Docker容器内安装,如有需要请留言,如果需要的人多的话,后面我可以更新一篇Docker内安装的教程,需要的人少就不更了。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

Royyuyu
校验提示文案
闲嗑瓜子
校验提示文案
明日黄昏
运营商的防火墙比这些好太多
校验提示文案
值友9113361628
校验提示文案
值友2482818035
校验提示文案
企鹅巴耶夫
校验提示文案
xuplus
校验提示文案
xuplus
校验提示文案
xuplus
够用么
校验提示文案
你的超能力是什么
校验提示文案
夏虫亦语冰91
校验提示文案
富婆私人保健师
校验提示文案
Somous
校验提示文案
张大妈养猪场
校验提示文案
熟悉又陌生
校验提示文案
老食芭蕉该6子
校验提示文案
我吃翔茄
校验提示文案
lovelonger
校验提示文案
蓝蓝滴天空
校验提示文案
MCJK
校验提示文案
Somous
校验提示文案
老食芭蕉该6子
校验提示文案
MCJK
校验提示文案
富婆私人保健师
校验提示文案
夏虫亦语冰91
校验提示文案
你的超能力是什么
校验提示文案
xuplus
够用么
校验提示文案
xuplus
校验提示文案
xuplus
校验提示文案
企鹅巴耶夫
校验提示文案
lovelonger
校验提示文案
闲嗑瓜子
校验提示文案
张大妈养猪场
校验提示文案
我吃翔茄
校验提示文案
蓝蓝滴天空
校验提示文案
值友2482818035
校验提示文案
值友9113361628
校验提示文案
明日黄昏
运营商的防火墙比这些好太多
校验提示文案
Royyuyu
校验提示文案
熟悉又陌生
校验提示文案