记录 | 基于WireGuard实现的内网Web服务穿透至外网

2024-07-23 22:23:02 浏览数 (1)

前言

在上一个篇记录中,我通过WireGuard实现的异地组网,实现了不同地域、不同网络、网络类型不相同的云服务器,实现互联。

上一篇的记录: 记录 | 通过WireGuard实现异地组网

在此基础上,我需要把家中部署在内网环境中的Web服务穿透至外网以供其他人正常使用

为什么不把服务直接部署在公网环境中?

因为这个服务器仍处于一个开发的状态,还在持续更新代码,在内网环境中,我可以获得一个千兆的速率(局域网),能够更方便的传输文件以及进行开发调试工作。有考虑过使用git,但是对我而言,还是samba共享会更加方便一些。

解决方案:利用长亭雷池WAF实现反向代理

长亭雷池防火墙WAF长亭雷池防火墙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复制
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服务器无法访问上游服务,请检查对应上游站点防火墙是否放行相关端口,隧道链接是否正常等...

502错误502错误

0 人点赞