标题可能说法有点怪,理论上本地化部署的服务,应该是纯内网环境,不走互联网的。但是公司接的本地化项目越做越混乱了,不仅需要支持内网访问,同时也可以在互联网上访问到这个服务。
以我自己的认知水平,大概就是需要提供一个能接到互联网的电脑,并且也能访问内网环境,只有满足于这个条件下,在这台电脑上做文章,比如用 nginx 反代,或者 VPN 通道等方式,才能实现。
我们的甲方都是医院。目前接了多个本地化项目,有些不严谨的,直接就是开个互联网服务器,限制端口,走 nginx 转发访问到内网部署的服务。但是更多的医院是完全不同意出互联网的,最主要是安全问题,nginx 反代这种基本不可能同意。因此现在这个所谓本地化的项目,也不知道要如何推进了。
不知道 v 友们有没有类似 遇见过这种需求的,想知道这种内网服务部署,但是互联网也能访问的,安全是要怎么保证,或者有什么方式实现。

因公司也没什么正儿八经的架构师,就全是业务开发的水平。所以这种安全架构方向的东西基本上毫无了解。也不知道有什么通用方案。

医院一般都有公网 IP 吧? 直接部署一个雷池开源 WAF ,需要外网访问的系统挂到 WAF 上面,也能抵挡一下攻击扫描。

先接 VPN 再用内网访问

VPN 方案请

你这个典型的 zero trust 场景,如果小公司,搞个 cloudflare 的免费版就行了,大公司找国内云买。

是不是搞个网闸会比较合适

公有云基本都能提供混合部署方案 :)

这要看你的内网是什么要求。如果内网只是一个网络中的一个安全域,用 VPN 、反代的方式解决。如果是物理隔离的独立网络,可是用网闸。如果是接收公文的那个网络,直接去公安局自首。

可以考虑这样处理:

  1. 内网服务不连接互联网
  2. 内网的机器上部署 jumpserver
  3. jumpserver 本身可以配置 MFA ,增加安全性
  4. 对内网的操作通过 jumpserver 完成,jumpserver 内审功能,可以对内网访问进行记录和审计
  5. jumpserver 通过 cloudflare tunnel 暴露为公网服务

    docs.olares.xyz/zh/manual/concepts/network.html

需要鉴权的服务走 tailscale 类 vpn 服务
不需要鉴权,对外公开访问的服务放到 CND 和反向代理后( Cloudflare Tunnel 最简单)

网闸
不过没实际搞过

基本就是走 VPN 方案了

VPN:其实我就是用来做这个的,翻墙只是副业 👻

我咋觉得 lz 的意思不是服务器需要被外网访问而是需要让本来没有外网访问权限的服务器可以访问授权内网

我咋觉得 lz 的意思不是服务器需要被外网访问而是需要让本来没有外网访问权限的服务器可以访问有限/经过审计的外网

所有访问都必须启用 vpn 不就行了。

我大概能理解你说的情况。你们公司接了项目,但是可能因为某些原因。不想驻场,只想通过互联网去访问内网的服务进行开发。
一般来说最安全的是 vpn ,但是这个需要甲方同意并且通过正规渠道和接口进行部署。这很明显不符合你们对甲方的要求。
我遇到这个情况,一般是偷偷摸摸用类似向日葵、或者 toDesk 这类工具,在连接内网又连接外网的某一台电脑上开启就好了,这样就可以远程在内网进行开发,而且请求也不会经过外网。当然这也涉及安全性问题和监管问题,有些甲方会明令禁止此类操作。
如果甲方对此监管不严,还有个更好办法就是 frp ,这个本身也和向日葵比较类似,但是是基于独立部署(也会被检测),里面有一种叫做 stcp 的工作方式,特别适合这类工作需求。他是和向日葵一样,需要一台独立 ip ,其次,所有服务并非被暴露在外网(只有端口被暴露在外网而且无法被直接访问),起到了类似 VPN 一样的效果,而且部署成本更低(不需要甲方的网络来提供 vpn )

VPN

#15 嘶,对实际上是这个需求。主要是要让用户外网能访问。我们运维可以去现场运维,我的描述可能不太对。

kvm 向日葵控控 A2 ,转发屏幕画面模拟键鼠操作,应该可以满足你的需求