公网部署 Nacos 被入侵了...

32 天前
 kerb15

去年部署了单机模式的 nacos 并开放了公网,然后今天才发现在 520 有一个陌生的配置写进来了, dataId=nacos.cfg.dataIdfoo ,配置内容为 helloworld ip 是美国的

google 了一下“nacos.cfg.dataIdfoo”,发现了 nacos 存在鉴权绕过的漏洞,《 GHSL-2020-325: Authentication bypass in Nacos - CVE-2021-29441, CVE-2021-29442 》

在 github 仓库也发现了对应的 issue ,Report a security vulnerability in nacos to bypass authentication

并且论坛也曾经有人讨论过,nacos 出现严重安全漏洞

这个漏洞 21 年就被发现了,然而我去年在根据文档部署的时候,丝毫没有注意到关于该鉴权的强调,刚刚回头去看了眼文档,在[权限认证]的子栏目,才发现上面赫然写着:

Nacos 是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。

只好赶忙把 nacos 服务下掉了,如果有兄弟们部署了最好自查一下。

3208 次点击
所在节点    程序员
16 条回复
LightHiding777
32 天前
我的也出现了
yannxia
32 天前
是一个老问题了……公司的 WAF 早就屏蔽了
wuzzispacelake
32 天前
服务发现为什么要放公网,我的理解是不应该这么做
adoal
32 天前
每次看到这种把内部 infra 暴露到公网的安全案例,第一反应是羡慕豪横,可以任性把花钱买来的或者走申请流程签字才拿到手的公网 IP 这么珍贵的资源用在不需要从外部访问的资源上。
Foxkeh
32 天前
如果只是运维需要, 建议至少开个 IP 白名单
cyaki
32 天前
这个端口随便扫, 能扫出一大堆
totoro52
32 天前
nacos 开公网就是一个伪命题,就好比你把冰箱放家门外面问为什么大家都要开我家冰箱一个道理。
caola
32 天前
防火墙直接限制,允许指定对应 IP 的访问
james122333
32 天前
从来都不用这种乱七八糟的东西 公司就除外搂
heqingpan
32 天前
OP 暴露 nacos 到外网的目的是什么?

如果只是想用控制台做运维,可以试试用 r-nacos (用 rust 重新实现的兼容服务)。

r-nacos 的控制台支持对外网暴露。
控制台使用独立端口号,然后对这个端口号所有请求加上登录与鉴权验证。
控制台登陆接口内置错误频次限制与验证码,避免对账户的暴力遍历破解。
OnionJuice
31 天前
nacos 早期版本非常搞笑,登陆只是前端验证,API 没登陆也可以随便调。
kerb15
31 天前
@wuzzispacelake
@adoal
@totoro52
@heqingpan
主要是使用动态配置的功能,因为我有一台远程主机在跑程序(没有公网的),然后我需要在公网随时随地的下发配置。
heqingpan
31 天前
@kerb15 如果只是通过公网下发配置,那换 r-nacos 应该能满足你的场景。

部署 r-nacos 后只暴露独立的控制台网络端口到外网,用于下发配置。
sdk 网络端口只给内网应用使用,不要对外网暴露保证安全。
wuzzispacelake
31 天前
@kerb15 那么你应该想办法做一个虚拟网络而不是直接把某个设施暴露在公网,FRP 或者 TailScale 之类的就可以,比直接暴露好太多了
ztcaoll222
31 天前
关掉外网,然后搭个 vpn
lambdaq
30 天前
alibaba 的。哈哈哈

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

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

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

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

© 2021 V2EX