前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录 | 基于WireGuard实现的内网Web服务穿透至外网

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

原创
作者头像
Leo Deng
修改2024-07-23 22:23:02
80
修改2024-07-23 22:23:02

前言

在上一个篇记录中,我通过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错误

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 为什么不把服务直接部署在公网环境中?
    • 解决方案:利用长亭雷池WAF实现反向代理
      • 为什么会选择使用WAF实现反向代理
        • WAF部署
          • 使用Docker部署雷池防火墙
        • 首次登录雷池防火墙
          • 配置反向代理站点
            • 添加站点
          • 测试反向代理站点
            • 常见报错
        相关产品与服务
        Web 应用防火墙
        腾讯云 Web 应用防火墙(Web Application Firewall,WAF)帮助腾讯云内及云外用户应对 Web 攻击、入侵、漏洞利用、挂马、篡改、后门、爬虫等网站及 Web 业务安全防护问题。企业通过部署腾讯云 WAF 服务,将 Web 攻击威胁压力转移到腾讯云 WAF 防护集群节点,分钟级获取腾讯 Web 业务防护能力,为网站及 Web 业务安全运营保驾护航。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档