V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
guoguobaba
V2EX  ›  程序员

小团队开发测试环境怎么解决

  •  
  •   guoguobaba · 8 天前 · 6083 次点击

    小团队,没有专门的 it 人员,分散在各地,测试环境,生产环境都有。生产环境还好,测试环境,各地的开发人员习惯直接把测试数据库端口映射到公网,然后自己对接上去,还有些 ssh 能登录的环境,也都是 root 登录,总之挺混乱的。

    现在主要是某些人离职后,想禁止他在访问测试环境,就得把所有密码再改一遍。ssh 这块还好说,基本上都是删除公钥的防止禁止他再访问。但是数据库每次改密码就很麻烦。

    有什么好的解决方案吗?

    第 1 条附言  ·  8 天前
    这里有几个问题,说一下:

    1 、硬件环境有云服务器和私有的物理服务器,因为用的是共享办公环境,所以私有的物理服务器通过 frpc/frps 在云服务器上暴露端口;云服务器主要担当跳板环境。

    2 、软件环境包括 ssh 服务,数据库服务,以及应用服务器,应用服务器主要是些 java 应用,也是可以公网访问的,通过 frpc+k8s+ingress ,使用不同的域名访问不同的应用。测试用户的账号密码我看了一下,很简单,这个也准备收归到内网,然后使用权限管控。
    第 2 条附言  ·  4 天前
    1. 目前的方案,设置一个跳板机,自动从 gitlab 同步用户的 key ,只有添加到 dev 组的用户才可以使用跳板机 ssh 登录,然后访问内部的数据库。

    2 、测试的应用系统还没有改造,准备使用 wireguard ,同样,自动从 gitlab 同步用户的 key ,等 wireguard 连接后,手动设置域名访问测试的应用系统。
    51 条回复    2025-07-26 18:40:34 +08:00
    infun
        1
    infun  
       8 天前
    MySQL 我记得是可以创建独立用户的吧,而且可以针对用户分配权限
    入职分配用户名,离职直接删除对应用户就可以了
    guoguobaba
        2
    guoguobaba  
    OP
       8 天前
    @infun 就是有 n 个 ssh 环境,m 个数据库环境,每个环境设账号密码,离职的时候还要手动删除,这个就很麻烦。
    ronen
        3
    ronen  
       8 天前 via Android   ❤️ 3
    人教人,教不會,事教人,一教就會。
    先把 vpn 搞好,禁了公網訪問吧。
    brianinzz
        4
    brianinzz  
       8 天前   ❤️ 1
    能上 vpn 上 vpn
    没法上 vpn 就只开 ssh 的端口出去,每个人一个账号,访问其他应用都让他们走 ssh 隧道.
    用的时候他们本地启动一个隧道转发就行了 xshell mobaxterm 这些都支持
    最不济 cmd/terminel 直接一行命令 ssh -N -L 本地端口:127.0.0.1:服务端口 root@外网 ip -p ssh 外网端口
    最最不济你把这行命令搞到 bat 里封个脚本让他们一键启动
    这样就只需要到管理 服务器账号 就行了
    lyusantu
        5
    lyusantu  
       8 天前
    给测试环境/生产环境的数据库端口设置 IP 白名单
    infun
        6
    infun  
       8 天前
    @guoguobaba
    不用手动吧, 系统管理员用脚本跑呢?
    javalaw2010
        7
    javalaw2010  
       8 天前
    用 zerotier 之类的工具虚拟组网。
    infun
        8
    infun  
       8 天前
    当然最好是上 VPN
    lumen
        9
    lumen  
       8 天前   ❤️ 8
    企业里面很多事情看似是技术问题,其实不是
    这种事情你做了不费力不讨好
    只有等真的出事故了老板才会重视起来
    所以你唯一要做的就是,等着出事故:-)
    ropon
        10
    ropon  
       8 天前
    各地 比如借助 OA 动态添加 IP 白名单,白名单有时效;或者 VPN
    YangQingLin
        11
    YangQingLin  
       8 天前
    我们公司是使用自部署的一个堡垒机([JumpServer]( https://jumpserver.org/))服务作为统一的访问入口的。

    每个人入职会分配一个堡垒机账号,每个账号能访问哪些资源(服务器 ssh 、数据库等)都是可以配置的。

    想要连接拥有的那些资源,可以直接通过堡垒机网站连接,或者点击获取一个临时的账号密码(堡垒机实时生成)然后放到软件里面,体验上和直连没什么区别;而且权限配置操作是图形化的,使用起来很方便。

    个人也可以把自己电脑的公钥放到堡垒机上,这样连接某些资源就不再需要每次输密码了。

    不过连接了服务器之后也还是可以手动把公钥写进去的,而且连接之后会展示一些欢迎信息,其中包含了跳转地址的 IP ,所以如果你比较注重资产安全的话最好把堡垒机服务部署在可以内网连接其它资源的地方,只把堡垒机的公网 IP 暴露出来。
    huangsen365
        12
    huangsen365  
       8 天前
    你们这种情况缺运维,我是专门做运维很清楚。
    你需要找个会运维的朋友咨询一下专业做法,多少涉及网络安全领域了
    oneisall8955
        13
    oneisall8955  
       8 天前
    至少要搞个 VPN ,测试环境被渗透,搞到公司内网就 G 了
    duanxianze
        14
    duanxianze  
       8 天前
    管他呢,出了事再说
    pota
        15
    pota  
       8 天前
    配置个 vpn 所有环境必须走 VPN 才能连接。必须要开放服务器 ssh 的上堡垒机 这样的话只需要管理 vpn 和堡垒机账号就行了
    brom111
        16
    brom111  
       8 天前
    最简单就是 服务器环境搞白名单算了。。
    guanyujia5444
        17
    guanyujia5444  
       8 天前
    VPN+堡垒机,Jumpserver+anylink 这两个开源产品就可以实现,而且很优秀
    EastLord
        18
    EastLord  
       8 天前
    你如果不是领导就不管
    guanyujia5444
        19
    guanyujia5444  
       8 天前
    人员权限管控,就用域账户接入 Jumpserver+anylink ,离职人员直接禁用域账户,就解决了
    la2la
        20
    la2la  
       8 天前
    不是领导管这个干啥
    记得使用 root 权限谨慎一点,不要给自己惹麻烦
    xuxuxu123
        21
    xuxuxu123  
       8 天前
    建议使用 jumpserver
    项目管理、代码开发、环境部署 可以考虑阿里云云效
    Vegetable
        22
    Vegetable  
       8 天前
    vpn / jumpserver 都行。
    kcccc
        23
    kcccc  
       8 天前
    感觉不是解决方案的问题,是没有人想管,也没有人管的问题。
    不管用了啥方案,都还得是有人要专门管理的,要不也一样觉得麻烦。
    yiyiniu
        24
    yiyiniu  
       8 天前
    @guoguobaba https://ex.noerr.eu.org/t/1145352#reply0 这个就是专门为 IT 团队,管理每个人数据库的工具。可以给每个团队员工分配用户账号,连接哪个数据库,他们使用代理,在 MySQL 客户端配置上直接连就行。 后面等项目解散了,你这边统一取消员工的关联资产(数据库) 目前我们在使用中,可以给申请个授权试试。
    yiyiniu
        25
    yiyiniu  
       8 天前
    @guoguobaba 你给他们分配的是代理连接账号,根据不需要 SSH 、Root 等信息。
    linzyjx
        26
    linzyjx  
       7 天前
    至少搞个 vpn 吧。wireguard 或者 openVPN 啥的部署很简单。
    非对外服务不要暴露到公网,统一走 vpn 访问。
    离职的话把 vpn 公钥或者配置文件吊销就可以了。

    再高级点上零信任,或者买个 waf 对公网 web 做统一接入(雷池现在有这功能)
    lhsakudsgdsik
        27
    lhsakudsgdsik  
       7 天前
    你的意思是服务数据库都在本地的私有服务器,云服务器只是搭 frp 起到转发的作用吗?如果是这样的话,核心就是云平台权限控制了,只要不给云服务器账号密码,云服务器设置白名单只允许指定 IP 访问就行了,人员离职后知道数据库密码也访问不了啊
    chfight
        28
    chfight  
       7 天前
    可以从路由器上连通多个内网,不需要开发人员任何额外的操作
    chendl111
        29
    chendl111  
       7 天前
    收回权限,vpn 控制
    linuxsir2020
        30
    linuxsir2020  
       7 天前
    Jump Server .... 另外鼓励基于 Role 分配权限, 尽量不要给单独账号赋权....
    cumt21g
        31
    cumt21g  
       7 天前
    ldap, vpn, jumpserver
    谁特么私自搞隧道,vpn 的一律开除
    3dward
        32
    3dward  
       7 天前 via Android
    试试 teleport ,有一点点学习门槛
    guanzhangzhang
        33
    guanzhangzhang  
       7 天前
    先办公网 vpn ,让人能在家办公,这样解决了 frpc 啥的,其次再堡垒机或者 acl 审计 vpn 网络访问策略
    alexsz
        34
    alexsz  
       7 天前
    如楼上 V 友所说,根据你目前的状态,启用云服务器的安全组 IP 白名单 是简单有效的方案
    对于开发人员使用动态 IP 的情况,可以使用通过云服务平台的 API 接口自动增删 IP 白名单,不用登录云服务器控制台修改
    LitterGopher
        35
    LitterGopher  
       7 天前
    最简单的办法: 不要在测试环境放任何有价值的东西,
    LitterGopher
        36
    LitterGopher  
       7 天前
    1. 不要在测试环境放任何有价值的东西, 崩了就崩了.
    2. 隔绝测试环境和生产环境, 不要让测试环境成为生产环境的跳板.
    3. 除非你是负责人, 否者不要费力两头不讨好.
    salmon5
        37
    salmon5  
       7 天前
    vpn ,所有测试环境,s2s vpn 到一个内网,离职后,回收 vpn 权限
    collery
        38
    collery  
       7 天前
    vpn 跳板机
    icecoffee531
        39
    icecoffee531  
       7 天前
    最根本解决方案还是 VPN 走内网,数据库暴露公网本身就不是什么安全的方式
    如果 k8s 本身能访问数据库可以考虑用 kt-connect 直接跟 k8s 网络打通。这样也可以不用部署 vpn 了
    MXMIS
        40
    MXMIS  
       7 天前
    堡垒机或者 VPN 是比较合适的方案,成本也不高
    zhuangzhuang1988
        41
    zhuangzhuang1988  
       7 天前
    easytier 简简单单。
    22too
        42
    22too  
       7 天前
    最简单的方案,就是 vpn 。 有效,安全,可以快速革除历史问题。

    然后继续细化堡垒机等等策略。
    lcsoul
        43
    lcsoul  
       7 天前
    公安报备下 VPN 然后用 VPN 吧 我之前公司就是非公司网络 使用 VPN 访问内部环境
    xubeiyou
        44
    xubeiyou  
       7 天前
    VPN
    duzhuo
        45
    duzhuo  
       7 天前
    映射到公网,怎么想出来的
    kaedea
        46
    kaedea  
       7 天前 via Android
    是不是对大团队的测试环境 & 框架工具有什么误解?
    yiyiniu
        47
    yiyiniu  
       7 天前
    @guoguobaba 我们测试环境和你的类似,可以给你沟通下管理策略,可以留个 V
    lm930129
        48
    lm930129  
       7 天前
    可以用堡垒机( jumpserver 之类的)做内网资源访问,frp 这种东西,就应该禁用。然后对于内网的访问,大部分情况应该使用 sd-wan 技术来打通内网,开源可以考虑 tailscale 或 easytier ,这东西使用你的网络就可以直接访问内网资源。
    然后网段也可以分一下
    mm2x
        49
    mm2x  
       7 天前
    frp 映射有插件 支持多用户还有面板。你到时候直接禁止了不就好了
    smallparking
        50
    smallparking  
       6 天前 via Android
    或者使用统一认证的软件 比如都用 ldap 认证?
    bingfengfeifei
        51
    bingfengfeifei  
       5 天前
    肯定要 VPN 啊,如果没有公网 IP 的话,至少也是自建 planet zerotier 这种穿透的 VPN 方案。
    这种暴露端口的,你们如果不是专门的网络安全人员,没有一些基本的安全意识,很可能会被搞的。除非 IPv6
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5484 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:02 · PVG 11:02 · LAX 20:02 · JFK 23:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.