10

除了 VPN,还有什么安全方式在外网访问公司资源?

 8 months ago
source link: https://www.v2ex.com/t/1003747
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  信息安全

除了 VPN,还有什么安全方式在外网访问公司资源?

  cndenis · 7 小时 33 分钟前 · 3741 次点击

公司内有个内容管理平台,有些编辑同事想在公司外使用,目前的方式是先连 OpenVPN 。

但是多数的编辑同事都不是技术,使用 OpenVPN 对于他们来说有点麻烦,有什么办法可以提供类似于 OpenVPN 的安全性但又更简单使用方法吗?

内容管理平台本身有登录,也已经放在 WAF 后面了,期望的效果是类似于 VPN 一样,未连 VPN 的用户连内容管理平台登录页都发现不了。

61 条回复    2023-12-27 17:00:39 +08:00
alfawei

alfawei      7 小时 30 分钟前

我们是 web 远程桌面+ 手机身份验证
DIO

DIO      7 小时 28 分钟前   ❤️ 2

openvpn 不已经几乎最简单了吗,双击连接然后访问网页就行了。webvpn 、vnc 之类的反而麻烦了呀
alfchin

alfchin      7 小时 27 分钟前 via iPhone   ❤️ 1

zero trust
helee9199

helee9199      7 小时 27 分钟前

使用 DDNS 把服务端口转出去可行?访问 DDNS+服务端口
laozhoubuluo

laozhoubuluo      7 小时 27 分钟前

HTTPS 双向认证,客户端必须装指定的客户端证书才能打开内容管理平台登录页,这种可以保证没有客户端证书的情况下触发不了业务漏洞。
dsb2468

dsb2468      7 小时 26 分钟前   ❤️ 1

cndenis

cndenis      7 小时 26 分钟前

@DIO 我们这边给 OpenVPN 加了动态口令,所以就更麻烦了。编辑们都是文科生,不要对他们的技术有什么要求
opengps

opengps      7 小时 26 分钟前

如果你确定你系统足够安全,那直接暴露端口即可。
实际上太多人不懂网络安全,自己方面密码乱丢,系统方面权限验证不够等等太多情况了
cndenis

cndenis      7 小时 22 分钟前

@opengps 问题就是不能确定系统足够安全,希望在系统外再加一层壳。
luxor

luxor      7 小时 8 分钟前

VPN != OpenVPN
Achophiark

Achophiark      7 小时 7 分钟前

headscale+tailscale+hd-ui
Kinnice

Kinnice      7 小时 7 分钟前 via Android

knock 外网白名单
tsanie

tsanie      7 小时 6 分钟前

异地组网 wireguard
nothingistrue

nothingistrue      7 小时 2 分钟前

在你们当前的框架下,比 VPN 还更方便的安全使用方式,无。

VPN 本身需要技术,但 OpenVPN 这种大众 VPN 软件的使用,不需要技术。不要被编辑骗,他们不是不会用,就是觉得用着麻烦。你们大概率公司内网还有访问控制,譬如不能用微信,而 OpenVPN 是全局 VPN ,编辑在外面的时候就需要频繁进出 OpenVPN 来适应不同的工作场景。

你需要的是跳出框架,既然有在外面编辑内容管理平台的需要,那就把内容管理平台,或者至少其中的外部编辑功能,放到公网上。
xingjue

xingjue      7 小时 1 分钟前

cndenis

cndenis      6 小时 57 分钟前

@nothingistrue 不是被编辑骗的问题,而且我们部门开发的新系统希望推广给别的部门用,要是太麻烦他们不想用的话,就很难推广了。大家是平级的,没法用行政命令强制别人使用,要把系统做得好用,别人才愿意用。
ZXCDFGTYU

ZXCDFGTYU      6 小时 56 分钟前

SSLVPN ,类似于深信服的那种 easy connect 的
arischow

arischow      6 小时 56 分钟前

@nothingistrue

> 而 OpenVPN 是全局 VPN

并不是...可以配置代理路由
Masoud2023

Masoud2023      6 小时 55 分钟前

还有 VPN ,VPN 和 VPN
4rat

4rat      6 小时 55 分钟前

Masoud2023

Masoud2023      6 小时 54 分钟前

wireguard 配置好路由,发给同事,点一下就能连上,很难操作吗?


这都不会用建议解决不会用的人。
tomatocici2333

tomatocici2333      6 小时 54 分钟前

既然只是访问资源,搞个堡垒机吧。jumpserver
arischow

arischow      6 小时 53 分钟前

OpenVPN 算简单了,IT 想想怎么把它配置自动化和适合业务,再加上(原本应该有的) SSO 这样的鉴权
sampeng

sampeng      6 小时 52 分钟前   ❤️ 1

@cndenis 这个我也能理解你的痛点,唯一办法,升级,让上一级的人要求。安全应该是红线
jurassic2long

jurassic2long      6 小时 48 分钟前

连 VPN 都觉得麻烦的话,就只能直接暴露在公网了,该做安全措施做好就行
limiter

limiter      6 小时 47 分钟前

开放到外网
JamesR

JamesR      6 小时 39 分钟前

部署 FRP ,用 STCP 模式,STCP 是安全的 TCP 内网代理,不需要在服务端暴露端口。用户访问时候是用 localhost:XXXX 这种地址访问的。
loginv2

loginv2      6 小时 36 分钟前

无解,只要客户端系统不安全,那怎么都不安全,再不济可以录屏和保留新文件来盗取信息。还是要限定死设备,专人专用
D33109

D33109      6 小时 35 分钟前

Netbird 自建
lifekevin

lifekevin      6 小时 22 分钟前

简单的就是 vpn ,再折腾也就只是换一种 vpn 工具而已
或者去了解一下腾讯 IOA 这种零信任方案
Dawnnnnnn

Dawnnnnnn      6 小时 8 分钟前   ❤️ 3

@cndenis 你应该想想你做的系统的目的到底是什么?是为了安全还是为了提高效率?如果是为了安全,它必须是一个行政命令才能推的动。如果是为了提高效率,你想在保证安全的情况下实现这个目标,应该对平台本身的安全性下功夫并且寻求安全部门的建议,根据他们的建议去做安全性的改进
coolcoffee

coolcoffee      6 小时 6 分钟前

你如果想要简单,就自己打包一个 openvpn 客户端,里面绑定上通过企业微信、飞书这类登录认证来自动获取 openvpn 的配置信息。

所以就看你们想要麻烦开发还是麻烦用户,没有两全其美的事情。
CheckMySoul

CheckMySoul      6 小时 1 分钟前

用商业版的 SSLVPN 或者云桌面之类的,只需要打开网页,下载安装插件登录账号密码动态码即可。更方便就是不要安全远程桌面直连。
ysc3839

ysc3839      6 小时 0 分钟前 via Android

OpenVPN 直接用一个配置文件就能连呀,难不成是连打开文件都不懂的人?
Puteulanus

Puteulanus      5 小时 55 分钟前

敲门加暴露端口的方式感觉可以,比如你们敲门单独用一个 web 页面,登陆之后把他的 IP 加到白名单半个小时
对他们来说就是两步,第一步在敲门的页面登陆自己的账号,第二步打开内容管理平台的网页
mantouboji

mantouboji      5 小时 43 分钟前

如果你们公司没有什么特别的知识产权保护意识,没有什么商业机密保护的需求,通过 VPN 访问内部是可以的,至于具体用哪种 VPN 协议倒是可以讨论。一般用户肯定希望那种仅需要输入一个密码没有其他乱七八糟的方案。这种情况下不妨去调研一下 cisco 等品牌厂商的产品,不要用 OpenVPN 和 wireguard 等,免得给自己添麻烦。
Tumblr

Tumblr      5 小时 40 分钟前

Best practice: 迁移到 SaaS 平台,开启 MFA ,开放公网访问
简单版: 部署一套 VDI
winson030

winson030      5 小时 15 分钟前

@cndenis 如果已经有公司的 VPN ,那把管理平台暴露在 VPN 内网,然后配置一下内网的 dns 域名指向平台。
这样在内网下输入域名就能用了
noahhhh

noahhhh      5 小时 13 分钟前 via Android

@coolcoffee 配个手机微信扫码过认证,现在大部分人都更习惯这样
jeremyl313

jeremyl313      5 小时 10 分钟前

自己在家 ssh 公司电脑用的是自己服务器的 frp
shangyu7

shangyu7      5 小时 3 分钟前

不会用的开掉就是了,这么简单还不会,不长脑子吗
yufeng0681

yufeng0681      5 小时 3 分钟前

1 、买一台有公网 IP 的云主机, 把前端搭建在上面,和后台服务对接上 [仅仅能通过这个通道访问后台系统,其他业务系统无法访问]

2 、让同事们在外网访问这个前端,进行业务操作。
wheat0r

wheat0r      4 小时 46 分钟前

@DIO #2 分发配置文件是一个问题
taro0822

taro0822      4 小时 32 分钟前

zerotier 开启后使用内网 ip 访问内网资源 免费的套餐有 100 个名额应该足够用了
配好网设置开机自启后 可能是最无感的方式之一了
cheng6563

cheng6563      4 小时 29 分钟前

我司用的敲门砖,调用一个接口填入秘钥就将调用者的外网 IP 加入安全组白名单。秘钥由钉钉机器人申请。这样能保证基本的安全并且不用装那些奇奇怪怪的 VPN 客户端。
dode

dode      4 小时 4 分钟前

IP 白名单
clino

clino      4 小时 0 分钟前

citrix 也是一种可能的选择,不过客户端只支持 windows
cshlxm

cshlxm      3 小时 59 分钟前

说个运行商级的方案,5G 随行专网,sim 卡开专门流量包套餐,公司拉条专线,即可享受,不拨 vpn 直接访问公司内网。
ihipop

ihipop      3 小时 52 分钟前 via Android

@cheng6563 手机数据网络和很多地方的家庭宽带是走 Nat 的,一个 IP 下面好多人,而且有可能出口还会来回跳
ryan4290

ryan4290      3 小时 51 分钟前

不要自己做决定,要和上面沟通好。

我这边有一个开发,自己搞了一个 frp 穿透,在家里用。差点被开掉。
adoal

adoal      3 小时 49 分钟前

最大的问题不是用什么技术方案,而是让管理层认可安全的重要性。
crac

crac      3 小时 44 分钟前

参考阿里云 防火墙白名单
wowpaladin

wowpaladin      3 小时 21 分钟前

ZTNA + SAML 单点登录
8355

8355      3 小时 13 分钟前

低权限普通人员短信验证码 扫码登陆 这样可以防止他们乱存乱发密码
业务系统危险权限需要 vpn 核心业务开关或设置
服务器 ssh 需要配置证书
3 个层级
simplove

simplove      2 小时 55 分钟前

jumpserver 有个 web 的功能,就是在内网装一台 windows server2016 以上的机器,所有人通过 jumpserver 连接上来,它会创建 100 个随机账户,每人通过 jumpserver 连接上来会占用一个账户。断开后释放。
然后通过这个来连接内网资源,带监控的。很安全
yumusb

yumusb      2 小时 53 分钟前

开发一个浏览器插件,然后插件里面访问这个域名的时候做鉴权。需要访问的人就安装插件。服务端判断如果是内网 IP 或者通过鉴权的才允许访问。
yjd

yjd      2 小时 53 分钟前

你这种需求确实 OpenVPN 不是很合适,整个网络走 vpn ,不走还得加静态路由表。
之前也有类似这种需求,写个批处理执行 ssh 客户端自动连接加端口转发,再打开网址。key 下发认证没做。
要更安全,需要套一层认证,微信扫码等等+公网 ip 限制通过后下发 key
cndenis

cndenis      2 小时 24 分钟前

@clino 只支持 Windows 可不行,桌面端有人喜欢用 Mac ,后续有可能还要求手机端访问
doveyoung

doveyoung      2 小时 6 分钟前   ❤️ 1

专门登录上来回复一下。

看到楼上都在为 VPN 打抱不平,其实 OP 的问题我也遇到过……
你说安装个 VPN 真的很难吗?不难,拿到配置后下一步下一步就好了;
你说安装个 VPN 很容易吗?不容易,“那你能帮帮我吗”。

根本问题不在 VPN ,而是客户端需要额外配置这一个动作,即使客户端是技术人员,也有那种不会不学不想的人。
如果换掉 VPN 用另外一个产品也需要客户端做配置的话,没什么意义,他们仍然不愿意。

幸好 OP 遇到了我,不然你就遇不到我了。

假设你的业务是 BS 架构
关键字:nginx + auth + vouch + OIDC
nginx auth 模块先验证浏览器的 IP ,如果在白名单,直接请求到你的 web
如果不在白名单,auth 模块请求 vouch ,转给 OIDC 协议的产品;
OIDC 可以用 okta ,auth0 ,站内有个老哥做了 logto 也很不错,认证方式支持邮箱验证码、用户名密码、短信验证码等等。建议用邮箱验证码,心智负担小;
OIDC 认证完之后给浏览器发 token ,浏览器再到 nginx 验证 token 后放行,到业务界面,原来怎么登录还怎么登录;
如果你的 nginx 是付费版本的,可以不用 vouch ,免费版本的 nginx 无法对接 OIDC 所以才需要 vouch

客户端访问就变成了:
浏览器访问业务网站 --> 业务最外层的 nginx --> nginx auth --> vouch --> OIDC 登录验证 --> 验证通过 --> 业务登录页面
整个过程客户端只会看到浏览器多跳了几个网站,多输入一次验证码,我觉得推动起来没啥难度。


如果实际的业务也是你负责的,你可以做点改动,OIDC 验证完之后到业务那里就不用登录了,不过这是后话,不想改可以不改

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK