前言
在上一个篇记录
中,我通过WireGuard实现的异地组网,实现了不同地域、不同网络、网络类型不相同的云服务器,实现互联。
上一篇的记录
: 记录 | 通过WireGuard实现异地组网
在此基础上,我需要把家中部署在内网环境中的Web服务穿透至外网以供其他人正常使用
为什么不把服务直接部署在公网环境中?
因为这个服务器仍处于一个开发的状态,还在持续更新代码,在内网环境中,我可以获得一个千兆的速率(局域网),能够更方便的传输文件以及进行开发调试工作。有考虑过使用git,但是对我而言,还是samba共享会更加方便一些。
解决方案:利用长亭雷池WAF实现反向代理
为什么会选择使用WAF实现反向代理
由于在我的两个香港服务器中,有其中一个部署了一个中大型的网站项目(用户量7.2W),但自23年以来,该站点不断受到攻击,因此需要一个WAF来协助我更好的对网站进行防护。同时,雷池主要以反向代理的模式工作,符合我的需求
WAF部署
一开始,我想将WAF部署在我的大带宽国内服务器中,但由于国内机房默认封堵80/443端口,需要域名获得工信部ICP备案才能够开放对应端口,因此我选择将WAF部署在一个流量包较大的香港地域服务器服务器3
中。
使用Docker部署雷池防火墙
使用容器(Docker)快速部署雷池防火墙
雷池防火墙WAF系统环境的要求
- 操作系统:
Linux
- CPU 指令架构:
x86_64
- CPU 指令架构:
支持 ssse3 指令集
- 软件依赖:
Docker 20.10.14 版本以上
- 软件依赖:
Docker Compose 2.0.0 版本以上
- 最低资源需求:
1 核 CPU / 1 GB 内存 / 5 GB 磁盘
我们可以通过以下的命令查看相关的指标是否符合要求
代码语言:bash复制uname -m # 查看指令架构
cat /proc/cpuinfo| grep "processor" # 查看 CPU 信息
lscpu | grep ssse3 # 确认 CPU 是否支持 ssse3 指令集
docker version # 查看 Docker 版本
docker compose version # 查看 Docker Compose 版本
docker-compose version # 查看老版本 docker-compose 版本
free -h # 查看内存信息
df -h # 查看磁盘信息
使用在线安装命令
,快速安装雷池防火墙
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
首次登录雷池防火墙
首次登陆雷池需要初始化管理员账号,使用以下命令即可初始化
代码语言:bash复制docker exec safeline-mgt resetadmin
执行完成后 即可初始化admin账号和密码
代码语言:bash复制[SafeLine] Initial username:admin
[SafeLine] Initial password:**********
[SafeLine] Done
随后通过https://<防火墙部署服务器的IP地址>:9443/
即可访问 雷池防火墙
使用提供的账号和密码登录,并配置**2FA认证
**,我使用的是**微软Authenicator
**软件进行**2FA
**认证。
完成后进入仪表板
配置反向代理站点
添加站点
在左侧的菜单中找到【防护站点】-【站点管理】
界面,点击进入
点击右上角的添加站点,以我的某服务后端为例,服务端口在5500,部署在分配地址为172.20.20.23的服务器上,即填入上游服务器地址为:http://172.20.20.23:5500
,外网访问端口为80
即HTTP默认访问端口即可,域名填写你的域名并且做好对应的A记录解析
如需配置SSL证书,请填写端口为
443
并在证书管理
界面上传对应的SSL证书
,并在添加站点页面的证书选项中选择对应的SSL证书
完成后点击提交
测试反向代理站点
尝试访问相关的域名,能够看见相应的界面,能够正常访问与请求接口,即为成功
常见报错
如果遇到502
报错,即表明WAF服务器无法访问上游服务,请检查对应上游站点防火墙是否放行相关端口,隧道链接是否正常等...