当前位置:首页 > 网络安全

借助阿里云ESA等CDN,实现更简单的宝塔面板和雷池WAF同机部署

admin2周前 (04-30)网络安全58

1 概要

虽然雷池的官方文档中提到了一种使得雷池和宝塔得以共存的方法。但是需要修改配置文件,尤其是宝塔自身的Nginx相关参数的获取也是从80端口获取的,因此如果更新了宝塔或者重新安装了Nginx之类,那么将立即因为端口冲突而发生故障。因此本文提出了一种使用阿里云ESA功能或者其他CDN类似,使得不需要对宝塔端口进行变更即可共存的方法。

2 架构与实现

2.2 系统架构

mermaid-diagram-2026-04-30-170410.png

原理非常简单,通过阿里云ESA的回源规则,将客户端发来的流量通过新的其他端口回源,到达雷池最后转发到宝塔的Nginx上,同时配置防火墙或者安全组禁止服务器外部的80和443端口入站。如果其他CDN支持类似能力的话,那么道理是相通的,可以参照这个思路进行配置。

2.3 具体实现

2.3.1 安装宝塔和雷池

安装方法非常简单,就不再赘述,直接看官网的说明吧。

宝塔安装方法

雷池安装方法

2.3.2 在宝塔面板/服务器/安全组处配置端口

为了防止攻击者万一探测到你的源站IP,从而绕过WAF访问源站,建议放行雷池WAF应用的端口(比如8080/8443)的同时,禁止80/443端口的入站。

2.3.3 在阿里云购买ESA

https://www.aliyun.com/product/esa购买。

2.3.4 设置回源规则

在站点管理侧栏中的“规则”中找到“回源规则”。然后点击“新增规则”。

screenshot-20260430-172533.png

然后根据情况,可以选择全部传入请求还是特定的域名,然后在下面设置回源的协议和端口,这里填写的端口是用于等会雷池用的。

screenshot-20260430-173043.png

2.3.5 配置雷池WAF

访问雷池后台地址(通常是https://你服务器的IP:9443), 然后点“添加应用”。

域名根据实际需要填写,然后http端口和https端口填写你刚才在ESA配置的端口。

源站地址根据需要填写http://127.0.0.1(宝塔Nginx不配置证书)或者https://127.0.0.1(宝塔Nginx配置证书)均可。(虽然http在本机足以满足需要,且不会泄露信息。但是一些设计存在缺陷的应用程序会使用带协议的绝对URL,如果协议不一致反而会导致故障,因此应该视情况合理选择)

screenshot-20260430-174639.png

由于配置了CDN,因此需要在高级配置处进行一些修改。

首先将IP地址获取方式改为从上一级代理处获取。

screenshot-20260430-180939.png

然后开启应用不存在时返回内置证书,这能降低因为HTTPS证书从而导致源站暴露的可能性。

screenshot-20260430-180947.png

2.3.6 测试

如果全部配置正常,访问对应的域名应该能够成功访问。像阿里云ESA的证书配置、缓存策略等各种问题,可以通过阿里云的技术支持人员解决。


扫描二维码推送至手机访问。

版权声明:本文由网络搭建经验谈发布,如需转载请注明出处。


本文链接:https://www.netlab.ac.cn/post/6.html

分享给朋友:

相关文章

如何紧急给雷池WAF降级回滚

如何紧急给雷池WAF降级回滚

今天更新到雷池9.3.4之后,发现添加同端口的网站怎么样都会报错,提示{    "data": {},    "msg"…

警惕!必应搜索上出现大量钓鱼欺诈网站

警惕!必应搜索上出现大量钓鱼欺诈网站

近几个月,必应上出现了大量冒用正规软件名称的钓鱼欺诈页面。以谷歌浏览器为例在必应上进行搜索:…