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

3 天前
 badbay

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

2060 次点击
所在节点    程序员
39 条回复
zjyl1994
2 天前
这是公司的安全设计,你使用技术手段进行绕过,后续的不稳定,被黑都是你的问题。你应该走合规流程申请多开两个端口,时间长就找领导推进。这不是技术手段该解决的问题
yinmin
2 天前
接#20 ,你也可以在内网部署 ssh 、socks5 之类,然后防火墙开放 ssh/socks5 端口给 dmz ,不过 ssh 、socks5 等于开放整个内网,安全性比较差,强烈不推荐。

“通过 sni 聚合 3 个 tcp 端口”是最安全的方式,甚至比开放 3 个 tcp 端口更安全,因为 sni 名称天然就是一个密码锁。(看不懂可以发给 ai )
badbay
2 天前
@yinmin 谢谢佬 我去试试
badbay
2 天前
@julyclyde 我刚入职,不是我设计的
badbay
2 天前
@zjyl1994 我感觉也是,有点离谱
iamwin
2 天前
用什么 DMZ 啊,直接在对外服务器上 VPN ,一切过 VPN 访问内网
yinmin
2 天前
@badbay #23 如果临时用几天,最快最安全的方式是内网安装 stunnel server 将 3 路 tcp 聚合成 1 路 tls (根据 sni 区分),然后 dmz 区安装 stunnel client 将这路 tls 根据 sni 还原成 2 路 tcp ,你可以让 ai 写一下 stunnel 配置。
daxin945
2 天前
这不是技术问题 是责任问题,出了事儿就麻烦了
goodryb
2 天前
不要搞什么奇技淫巧,老板怎么说就怎么做,按照流程来, 端口该申请就申请,流程长就长,你着什么急
julyclyde
2 天前
@badbay 你刚入职,不是你设计的
如果实施失败,那就是设计方的责任
如果实施成功了然后被黑了,那就是变更方的责任
你看着办吧
tabliu
2 天前
用 openvpn 直接打通
hahaha121
2 天前
easytier 直接打通内网
kiracyan
2 天前
这几个理论上不允许外网访问的吧 最多 vpn 访问
moioooo
2 天前
对外服务放 dmz ,你领导说的没问题呀。
一劳永逸的事。另外再加个 waf 吧
snoopygao
2 天前
得有安全意识啊,这种情境用 vpn 或零信任,其他都是高风险扯淡
badbay
1 天前
@yinmin #20 最后利用 stunnel 解决了,在 dmz 部署 stunnel client ,在内网部署 stunnel server 。为每个应用客户端配置一个 stunnel client ,每个 client 配置不同的 sni name 。server 端根据 sni name 转发到不同的应用服务上就 ok 。另外,sni 到 ip 的映射我是手动添加在 hosts 文件中的
yinmin
1 天前
@badbay #36 喜欢折腾(专研)的话,可以试试:
( 1 )去掉 stunnel client ,应用程序直连 stunnel server 加密后的 mysql/redis/minio tls 端口;
( 2 )将 stunnel server 改成 nginx (用 stream 配置)

将( 1 )( 2 )折腾好了,基本上可以应对公司内部网管的质疑了,因为这个新方案更具安全性,nginx 是公认的、可靠的、基于网络 7 层的负载均衡器,而且启用了 sni 鉴证、tls 加密,更安全,没什么可以质疑的。
ysc3839
1 天前
用 WireGuard 等 VPN 连接就好了,只需要一个端口。
ysc3839
1 天前
@yinmin 个人认为最快的方案是直接用 VPN ,不需要单独配置端口,VPN 方案的安全性一般也比手动配置 TLS 好。
如果担心 VPN 能访问到其他端口,也可以配合 firewalld 等防火墙进行拦截。

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

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

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

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

© 2021 V2EX