内网服务器和 DMZ 服务器之间只开了一个端口,但是外网需要访问内网中的 mysql, redis 和 minio

2 天前
 badbay

各位大佬,公司部署软件,要求 mysql ,redis ,minio 等存放数据的软件放在内网服务器上,Web 和 api 放在 DMZ 服务器上。原本我想的部署方案是 api 服务放在内网服务器,通过 DMZ 上部署 Nginx 转发访问 api 服务,这样就只需要一个端口。公司的领导说这样不安全,让把 api 放到 DMZ 服务器上,这样到内网的数据就多一层过滤,但是这样的话 api 访问内网的数据库,redis 和 minio 就需要三个端口,开端口的流程特别长,时间来不及,有其他的解决方案吗。

2027 次点击
所在节点    程序员
39 条回复
opengps
2 天前
“外网访问内网中的 mysql ,redis 和 minio”这事本身就不靠谱,你确定真的需要开放端口?

正常来说 mysql 类这种内网服务即使公网要用也是先拨入 vpn 再访问,而不是直接暴露公网端口。否则等于把危险请进来
sagnitude
2 天前
时间来不及是你的责任吗?要学会甩锅,问你进度你就说在跟进了,表格交上去了,目前在 XXX 审核阶段,需要 XXX 签字,需要领导帮忙
LoNeZ
2 天前
SNI
lolo1
2 天前
Haproxy 可以针对协议进行分流,你可以抓包看下 tcp 头部几个字节,然后分流打不同后端。测试过 mysql ,mstsc 等,minio 这种 web 服务,再用 nginx 分流
potatowish
2 天前
那就是领导的问题,又考虑安全、又考虑进度,只能选一个,让他自己看着办
caola
2 天前
内网服务器和 DMZ 服务器只有一个端口?那直接用 frp 吧,稳定性是不错的
jiangzm
2 天前
外网为什么要直接访问内网的 mysql,redis,minio?
DMZ 服务器不应该是直接暴露给外网但自身又能访问内网的跳板机吗?

还是你们 DMZ 服务器到内网还有一层网关吗
hefish
2 天前
问领导啊。以领导的意见为准。
cheng6563
2 天前
套 SSH 呗
Ipsum
2 天前
外网访问数据层,你不得上个 vpn 还安全点?
jifengg
2 天前
我和 @jiangzm 有同样疑问。
还是说,你们内网机器,listen 个端口也要走流程?
badbay
2 天前
@jifengg dmz 和内网之间有防火墙,开端口需要向总部打申请
badbay
2 天前
@jiangzm dmz 到内网有防火墙,开端口的话需要申请
xuanbg
2 天前
不是,外什么要在外网直接访问内网中的 mysql 、redis 和 minio 。就不能通过 VPN 先进内网嘛?
badbay
2 天前
@opengps 不是外网访问,是 DMZ 上的服务需要访问
badbay
2 天前
@zzh0410 大佬感觉这个可行 我去试试
badbay
2 天前
@caola 不让用内网穿透
badbay
2 天前
@xuanbg 是 DMZ 中的服务器访问内网
julyclyde
2 天前
你这属于架构设计问题啊,不是后期能打嘴仗解决的,而是前期就不该这么设计
yinmin
2 天前
三楼正解。

在内网部署 stunnel 软件将 mysql/redis/minio 的 tcp 转化成 tls ,然后通过 sni 聚合成 1 个端口,防火墙开放 stunnel 这个端口给 dmz 区,由于 mysql 、redis 、minio 的客户端都支持 tls ,所以可以通过不同的 sni 直连 stunnel tls 端口(也可以通过 stunnel 将 tls 还原成 tcp )。

你也可以在 mysql 、redis 、minio 上部署 tls ,然后在内网部署 sni proxy 聚合成一个端口开放给 dmz 区。

stunnel 、sniproxy 都是可以用在生产环境,在低并发(小于 500 并发)高带宽(千兆)下能长时间稳定运行。


你可以将你的问题和我的答案发给 ai ,让 ai 详细说原理和实施步骤。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1160146

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX