长亭百川云 - 技术讨论

长亭百川云

技术讨论长亭漏洞情报库IP 威胁情报SLA在线工具
热门产品
雷池 WAF 社区版
IP 威胁情报
网站安全监测
百川漏扫服务
云堡垒机
百川云
技术文档
开发工具
长亭漏洞情报库
网安百科
安全社区
CT STACK 安全社区
雷池社区版
XRAY 扫描工具
长亭科技
长亭科技官网
万众合作伙伴商城
长亭 BBS 论坛
友情链接
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备2024055124号-2

解决使用Lucky DDNS 进行反向代理,无法经过雷池WAF导致无流量等问题

发布于 10 个月前

# 雷池 WAF
# 雷池技术博客投稿
技术资料

发布于 10 个月前

头像

PiKa丘_Leo

更新于 2 个月前

6

0

作者:PiKa丘_Leo(社区72群)

注意:本文未经授权禁止转载至其他媒体平台

写在前面

  • 本文介绍通过Lucky DDNS 进行反向代理时,无法经过雷池WAF导致无流量、测试攻击无效等问题
  • 本期教程文档较长,请耐心紧跟步骤看完!本期教程仅适用于 Ubuntu 系统
  • Windows请自测!如果你的Windows部署了 Docker 环境,原理上步骤是一致的,但不代表能用
  • 本期文档将提供解决 Lucky DDNS 反代雷池教程,若你未部署 Docker,请自行部署
  • 本期文档仅提供 Docker部署方案,如果用openwrt/istore部署,支持 Docker部署的,可参考本文档

1.1 注意事项

  • 本文中出现的红色高亮标签都是重点
  • 本文中出现的ip是指安装目标主机的ip地址,并不是当前主机的ip地址
  • 请确保家庭带宽有ipv4公网或ipv6公网,如果不清楚的建议向装维师傅或运营商咨询业务经理
  • 云服务器根据实际情况调整ipv4公网ip

1.2 小白请阅读网络基础理论

  • localhost 是一种特殊的域名

    localhost 它并不是IP,而是一种特殊的域名(没有后缀),默认的情况下它解析到的是本地IP的127.0.0.1,主要通过本机的host文件进行管理,如果你愿意,也可以把localhost域名解析到某个公网IP上去
  • 127.0.0.1 是一种本机保留的私有IP

    127.0.0.1它是一个私有IP,代表的就是你的本机环回地址,其实本质上是绑定在虚拟网卡(loopback)上的IP
  • localhost 、127.0.0.1、本机IP的区别

    • localhost和127.0.0.1并不需要联网访问,即使在无网络环境下访问这两者都能找到本机
    • localhost是域名,默认是指向127.0.0.1的
  • 本机IP中的有线网IP和无线网IP都是需要联网后才能正常分配和访问的,它们是本机对外开放的IP地址。

1.3 硬件环境

  • Intel® Core™ i5-6300U
  • Ubuntu 24.04.1 LTS
  • 安装环境:Docker(请确定你的Ubuntu系统是64位系统)
    image.png

1.5 硬性要求

必须有稳定域名,不要使用免费域名,同时请确保你已申请并下发 SSL 证书,Lucky DDNS和雷池WAF都可以申请SSL证书【这里不赘述,请自行在Lucky或雷池WAF的控制台查看相关手册】

2.1 部署Lucky

  • 嫌 Docker部署麻烦的也可以用一键脚本,作者不保证在 ubuntu 能起作用(因此在此不提供一键脚本),推荐使用 Docker部署

  • 如果你已部署Lucky 可以跳过此步骤 直接看2.5

注:通常使用第一个命令即可,除非你对 Docker 搭建非常熟悉,可以自定义并操作第三步,否则请你使用第一个命令!

host 模式

同时支持IPv4/IPv6, Liunx系统推荐(正常用此命令即可) Windows系统不要使用

1docker run -d --name lucky --restart=always --net=host gdy666/lucky

桥接模式

只支持IPv4, Windows不推荐使用docker版本

1docker run -d --name lucky --restart=always -p 16601:16601 gdy666/lucky

挂载主机目录

挂载主机目录删除容器后配置不会丢失。可替换 /root/luckyconf 为主机目录, 配置文件为 lucky.conf

1docker run -d --name lucky --restart=always --net=host -v /root/luckyconf:/goodluck gdy666/lucky

2.2 打开 Lucky

地址栏输入ip:16601并登录,账号密码都是666

配置动态域名

相关的教程在添加任务里有文档,这里就不多说
image.png

域名配置成功后,是这样子的。如有报错请检查你路由器的防火墙或旁路由的防火墙

image.png

2.3 打开 Web 服务

添加域名后打开 Web 服务 此步骤一定要跟随脚步!
image.png

2.5 添加Web服务规则

image.png

  • 云服务器已备案的,需使用443端口

2.6 添加子规则(默认规则不管)

  • 子规则名称(随便写,你自己知道就好)
  • 服务类型选择反向代理
  • 前端地址填写子域名
    注:主域名是:xxx.cn,子域名就是abc.xxx.cn(这一步请注意,你的子域名一定要和动态域名里的子域名是一致的,否则配置失败)
  • 后端地址随便填端口号,而不是你的源站(例:http://127.0.0.1:端口号)
  • 请注意127.0.0.1是指代表的就是你的本机环回地址而不是你的目标主机的ip地址,如果你担心配置不准,建议你使用目标主机ip:端口
  • 云服务器填公网ip:端口地址
  • 请注意后端地址的是 http:// 不是 https://

  • 后端地址不要抄我的,请以你实际ip为准!请以你实际ip为准!

image.png

配置Web 服务成功后无报错是这样的⬇️

image.png

2.7 添加配置重定向(可选)

  • 监听类型和Web服务规则一致(同理有v4公网的tcp4要打开)
  • 监听端口和Web服务规则一致(刚刚配置的端口号)
  • 服务类型选择重定向
  • 默认目标地址填写https://{host}:9443

这里的9443指向的是雷池WAF

123.png

配置重定向成功后无报错是这样的 ⬇️

image.png

至此Lucky部署已经结束,先确认通过域名在局域网/外网中正常访问网站

无法访问的,请检查相关配置是否有报错,随后检查主路由防火墙规则(前提路由器支持此功能)或临时关闭主路由防火墙进行测试

  • 以华硕TUF GAMING 小旋风路由器为例
    image.png

  • 通过域名在局域网/外网中正常访问网站,恭喜你!进入最后一个环节!

3.1 雷池WAF配置步骤

  • 打开雷池WAF控制台 地址栏输入IP:9443
  • 打开防护站点-站点管理-添加站点 图上所示
    源站指已部署的服务(例:alist),alist的源站是IP:5244的,那你就填IP:5244
    image.png
  • 打开防护站点-全局配置图上指示
    image.png

目前Lucky部署与雷池的配置所有工作都已经完成。接下来进行模拟攻击测试

测试

  • 输入你的子域名:端口,优先测试网站是否能正常访问
  • 能正常访问网站在xxx.cn/ 的 / 后面添加上雷池的攻击测试
  • 模拟 SQL 注入攻击: https://xxx.cn/?id=1+and+1=2+union+select+1
  • 模拟 XSS 攻击: https://xxx.cn/?id=<img+src=x+onerror=alert()>
  • 模拟路径穿越攻击: https://xxx.cn/?id=../../../../etc/passwd
  • 模拟代码注入攻击: https://xxx.cn/?id=phpinfo();system('id')
  • 模拟 XXE 攻击: https://xxx.cn/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">

电脑端域名内网测试

image.png

手机端域名测试 临时关闭主路由的防火墙

  • 测试时需要用移动流量,不能用WiFi

image.png

回去查看日志就能看到拦截日志了!!!

image.png

请注意!!在防护配置-自定义规则,请暂时 不要添加仅允许国内IP地址访问规则

image.png

此规则会导致你无法访问你的网站(截止发稿前还不能确认是什么原因导致的,如果有开启后仍能在国内访问的,欢迎72群讨论心得)

5.1 不显示30天内访问量解决方案

非常感谢 百智云 AI 交流群 @Chance 提供解决方法

  • 审查原因是因为若Lucky的前后端口一致,会让雷池再次反代回Lucky端,导致无法显示访问量的情况
  • 后台无法看到30天内访问量的,回去Lucky的web服务,检查Lucky后端端口是否与雷池监听端口一致
  • 若还不显示的请检查3.1步骤是否正确
  • 同一个域名只能配置同一个端口
    image.png
    image.png
    这样就能显示访问量了

5.2 单机端口占用案例

  • 无非就是一台机器里同时部署了雷池和Lucky
  • 若遇到了端口占用问题,没有多台机器的情况下,可以自购机器或自行研究PVE再次进行部署Lucky即可解决
    575b3c8bb3d558c305b594feb3b5f77c.jpg

b175c1df54f1fdace97d240269f8b8a1.jpg

本作者极其不推荐关闭路由器防火墙,家庭网络将会完全暴露在v4/v6公网之中,是非常危险的行为

6.1 关于备案

  • 使用国内节点的云服务器,请按照服务商的备案要求进行备案
  • 在家自建服务器,请向运营商咨询是否需要备案,而不是域名服务商咨询
  • 作者是中国电信,自建服务器无需备案,作者在广东,由于地区不同而有不同情况,其他地区请自行咨询装维师傅或运营商业务经理

image.png

7.1 最后

全部的配置部署成功后,局域网可以以子域名:端口号正常访问后,外网无法访问的,请尝试以下方法:

  • 关闭主路由防火墙,若能访问打开防火墙,并添加规则(前提路由器有该功能)
  • 以华硕TUF GAMING 小旋风路由器为例
    image.png
  • 各厂商的路由器防火墙规则都不同 请以实际情况操作
  • 使用华为路由器或其他品牌,建议更换华硕或小米路由器,因为华为路由器没有单独的v4/v6防火墙规则,必须完全关闭防火墙才可访问
  • 小米路由器请自行搜索怎么单独开启v4/v6防火墙
  • 个人自建服务器的,不要大范围公开使用,否则运营商可能会取消你的公网资格,情节严重会触犯国家法律,请一定要遵守国家法律法规,规范合理合法合规使用
  • 至此你的网站已经得到雷池WAF的保护
  • 希望教程能帮助到你,如有不懂或步骤有问题,欢迎到72群讨论
​
头像

PiKa丘_Leo

更新于 10 个月前

0

0

自己抢沙发

头像

🐳

更新于 10 个月前

支持。

头像

ゅ多云转晴🌥

更新于 9 个月前

必须要支持,感谢大佬分享技术。祝你年入千万!!!

​
头像

熊大,光头强又来砍树了

更新于 10 个月前

0

0

很详细,支持一下

头像

PiKa丘_Leo

更新于 10 个月前

谢谢

​
头像

spark

更新于 9 个月前

0

0

楼主好
我不理解几个地方,请教一下:

  1. 目标主机是什么?我理解为雷池所在主机

  2. web服务子规则的反向代理上游配置的是哪里?
    文章里提到 “后端地址填刚刚你写的端口号,而不是你的源站”,结合后面雷池配置部分,可以理解为雷池的监听地址

  3. 重定向里配置了什么?
    文章中提到 “监听端口和Web服务规则一致(刚刚配置的端口号)”,结合前面配置的web服务规则,同一个端口怎么配置两个web服务规则?重定向到雷池的的管理端口9443是为了什么?我理解大概是lucky的非tls端口重定向到开启了tls的端口

总体上我自己的理解,是lucky反向代理雷池,雷池反向代理到实际服务(例如alist),

可以参考如下方式:

  1. lucky上,使用默认规则,将所有域名请求都由雷池处理
  2. 雷池上,同端口(非tls)注册多个应用,每个应用使用域名匹配,并配置对应的上游应用

这样可以使用lcuky上的泛域名证书,缺点是不能在lucky上看到每个域名的上下行数据量
不过如果想看保留lucky上每个域名的上下行数据量,那就将对应域名的字规则配置出来(反向代理)

头像

PiKa丘_Leo

更新于 8 个月前

1 目标主机例如你的服务是在a主机 你的雷池搭建在B主机 那么你配置就要写目标主机
2 你的理解是对的 lucky你写的是什么端口 后端也照写 雷池的监听端口也写 lucky你所写的端口
3 不重定向的话 就无法走雷池监控

还是不懂的话 直接来72群吧 我已经帮一个人解决了 他的问题跟你差不多

头像

mr.K

更新于 8 个月前

楼主你好
根据这位网友的问题,我也想详细请教下:
1.如果雷池和lucky都是在同一个主机上,那lucky监听的端口在雷池配置时会显示已使用,例如lucky监听12345
2.雷池防护站点给的端口从哪里获得?
3.让lucky只负责域名解析和SSL申请,直接由雷池负责反向代理到应用是否更简单,效果是一样吗?
谢谢!

头像

PiKa丘_Leo

更新于 8 个月前

1,2 如果是同一个主机上的话 你先在雷池里填好端口地址 然后去lucky 那边填上你刚刚的端口号 虽然这样会lucky报错 但是需要按照我文档设定重定向就好了

3.不需要 直接给lucky托管 DDNS 然后让雷池负责SSL

头像

spark

更新于 8 个月前

我理解,还是要从原理来了解整个链路才好配置的。

  1. 同一个端口不可能,没办法被两个应用程序去占用的,雷池与lcuky如果共主机,配置为同一个端口,谁先启动就被谁占有,只能被一个进程占有,谁占有,谁提供服务,这样充满了随机性,是不正确的配置方式。
  2. 流量链路无非就是 域名到本地(入口),经雷池反向代理实际的应用,这里存在的问题只是雷池管理ssl不太方便而已(不支持泛域名),在lucky上申请一个泛域名更方便
  3. 流量从入口到lucky,然后
    3.1 lucky开https端口,比如8080,把所有的流量都反向代理到雷池(不配置子规则,不区分域名,用默认规则全部给雷池,假定雷池是 8081端口)
    3.2 雷池开8081端口,每个域名配置一个规则,反向代理具体的应用

这样做,你通过https://域名:8080 访问 lucky,并做攻击测试,流量会走雷池,并被监测

至于重定向不用处理,因为本来你也不能对公网暴露80,进而往443重定向,当然这个个诉求,那么前面说的lucky开https 443端口,开http 80端口
lucky上配置 http协议的80端口重定向到lucky的443端口就行了,你在局域网模拟一下效果,就是如下

用户输入的http://域名 会自动改成https://域名, 和用户直接输入https://域名 是一样的效果

重定向的效果是发302给用户的浏览器,引发用户浏览器地址栏变化并重新向服务端发起请求

头像

PiKa丘_Leo

更新于 7 个月前

我群友有个人测试了 可以先在雷池写好端口然后在lucky写一样的端口号就好了 就算lucky报错可以继续用 但是要加重定向就好了

​
头像

l

更新于 9 个月前

0

0

你好,博主,碰到一点问题,可以咨询一下吗?
Lucky重定向日志显示为空,雷池不生效

​
头像

海底捞在逃牛丸

更新于 8 个月前

0

0

深度好文!

​
头像

Fivemoons

更新于 8 个月前

0

0

深度好文!

​
头像

介質

更新于 8 个月前

0

0

lucky 监听端口:8185

反向代理 alist.xxx.xxx 后端地址 http://192.168.15.1:8585

重定向 https://192.168.15.1:9443

编辑站点 alist.xxx.xxx * 端口:8585

上游服务器 http://192.168.15.1:5244

是这样吗?大佬

头像

spark

更新于 8 个月前

lucky的8185开tls

https://alist.xxx.xxx:8185 反向代理到 http://192.168.15.1:8081

雷池配置添加应用

  1. 域名:alist.xxx.xxx
  2. 端口:8081,不开ssl
  3. 上游服务器 http://192.168.15.1:5244

这样,你访问https://alist.xxx.xxx:8185,就会被反向代理到 http://192.168.15.1:8081
而到这个地方的请求,是会携带alist.xxx.xxx域名的,
因此雷池可以识别到这个域名,进而匹配到前面添加的应用,再次反向代理http://192.168.15.1:5244
最终你就通过访问https://alist.xxx.xxx:8185,访问了alist,且中间经过了雷池

头像

介質

更新于 8 个月前

感谢大佬解答!

​
头像

Jsy

更新于 8 个月前

0

0

比如我的链路是这样

1、在一个固定内网IP上有一个旁路由,上面进行 DDNS 一个域名,旁路由和主路由直连,可以确保 DDNS 正确
2、主路由上端口映射 10086 -> 群晖内网的固定IP的一个端口号(如 10085)
3、在另外一个内网固定IP 上 部署群晖,同时在群晖上使用 docker 部署 雷池,同时解除群晖的 80 443 端口。雷池是用的全部默认的配置,管理平台使用自签名的 SSL 证书来支持 https 访问
4、雷池监听主路由映射的固定端口号(10085),同时配置 SSL(不配置也试过 也是不走雷池) ,同时代理到群晖的 docker 的一个服务上(用的是 http)

以上步骤完成后,外网使用 域名 + 端口映射端口(10086) 可以访问服务,但是流量不走雷池。并且如果雷池对应的取消监听代理,外网不能访问对应的服务。

请问一下大佬,我这个网络拓扑图下,哪里配置出问题了,为什么流量不走雷池

头像

PiKa丘_Leo

更新于 5 个月前

重定向做了吗

头像

Eureka

更新于 5 个月前

怎么感觉好绕,我在lucky已经设置反向代理,测试用子域名进行访问没有问题。但是用到你这个重定向,就直接重定向到内网里面,外网无法访问。还是说新建一个规则吗

​
头像

Eureka

更新于 5 个月前

0

0

image.png
image.png

头像

Eureka

更新于 5 个月前

已经会了,谢谢

头像

PiKa丘_Leo

更新于 5 个月前

很简单吧

​
头像
相关贴子
#
建议为社区版本添加深色模式支持
#
希望雷池添加可以生成原服务器域名证书的功能
#
雷池规则广场:拦截常见扫描器
#
certd创建自动化流水线使用letsencrypt申请证书并更新雷池waf证书
#
一个站点,nginx 里面需要多个location不同判断,如何自定义