V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kerb15
V2EX  ›  程序员

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

  •  
  •   kerb15 · 31 天前 · 3199 次点击

    去年部署了单机模式的 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 服务下掉了,如果有兄弟们部署了最好自查一下。

    第 1 条附言  ·  30 天前
    op 的需求是:有一个友好的前端界面可以随时随地在公网动态下发配置,拉取配置的机器是不具备公网的某台远程主机。
    16 条回复    2024-05-27 09:23:37 +08:00
    LightHiding777
        1
    LightHiding777  
       31 天前
    我的也出现了
    yannxia
        2
    yannxia  
       31 天前
    是一个老问题了……公司的 WAF 早就屏蔽了
    wuzzispacelake
        3
    wuzzispacelake  
       31 天前
    服务发现为什么要放公网,我的理解是不应该这么做
    adoal
        4
    adoal  
       31 天前
    每次看到这种把内部 infra 暴露到公网的安全案例,第一反应是羡慕豪横,可以任性把花钱买来的或者走申请流程签字才拿到手的公网 IP 这么珍贵的资源用在不需要从外部访问的资源上。
    Foxkeh
        5
    Foxkeh  
       31 天前
    如果只是运维需要, 建议至少开个 IP 白名单
    cyaki
        6
    cyaki  
       31 天前
    这个端口随便扫, 能扫出一大堆
    totoro52
        7
    totoro52  
       31 天前
    nacos 开公网就是一个伪命题,就好比你把冰箱放家门外面问为什么大家都要开我家冰箱一个道理。
    caola
        8
    caola  
       31 天前   ❤️ 1
    防火墙直接限制,允许指定对应 IP 的访问
    james122333
        9
    james122333  
       30 天前 via Android
    从来都不用这种乱七八糟的东西 公司就除外搂
    heqingpan
        10
    heqingpan  
       30 天前 via Android
    OP 暴露 nacos 到外网的目的是什么?

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

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

    部署 r-nacos 后只暴露独立的控制台网络端口到外网,用于下发配置。
    sdk 网络端口只给内网应用使用,不要对外网暴露保证安全。
    wuzzispacelake
        14
    wuzzispacelake  
       30 天前
    @kerb15 那么你应该想办法做一个虚拟网络而不是直接把某个设施暴露在公网,FRP 或者 TailScale 之类的就可以,比直接暴露好太多了
    ztcaoll222
        15
    ztcaoll222  
       29 天前
    关掉外网,然后搭个 vpn
    lambdaq
        16
    lambdaq  
       28 天前
    alibaba 的。哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:29 · PVG 22:29 · LAX 07:29 · JFK 10:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.