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

2023-12-27 10:47:25 +08:00
 cndenis

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

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

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

20394 次点击
所在节点    信息安全
104 条回复
LinePro
2023-12-27 17:00:39 +08:00
除了楼上老哥说的 vouch ,oauth2-proxy 也可以实现相同功能
https://github.com/oauth2-proxy/oauth2-proxy
https://github.com/vouch/vouch-proxy
xz410236056
2023-12-27 18:25:52 +08:00
度管家,使用如流扫码登录 [doge]
beyondstars
2023-12-27 18:55:10 +08:00
我们一般都是让在办公室的同事“微信截图发我”的。
winterx
2023-12-27 19:07:30 +08:00
@alfawei 能分享一下具体哪套系统实现的吗?有点感兴趣
fengyaochen
2023-12-27 19:44:44 +08:00
不能学习一下吗,谁说麻烦的就解雇谁,你不学有的是人学
alfawei
2023-12-27 19:49:53 +08:00
@winterx 我们是 office365 , 用 rdweb…域名就可以登录 windows server 服务器,需要 office365 账号也就是邮箱账号密码登录,同时需要微软身份验证器批准
MC
2023-12-27 19:58:17 +08:00
ZeroTier?
IDAEngine
2023-12-27 20:01:55 +08:00
N2N
NatsumeMio
2023-12-27 21:46:13 +08:00
个人使用我还是推荐 zerotier ,轻量化,快速(就算跨墙也可用,看线路质量)
Proxy233
2023-12-27 21:58:25 +08:00
我们是直接把端口映射到公司的公网 ip 上,然后开放了一个认证页面,每次认证 10 小时有效期,过期了就再认证一下。每个人的认证信息每周一跟新一次。
ysmox
2023-12-27 22:45:37 +08:00
其实前面有不少朋友都提到了“零信任”甚至“oauth2-proxy”,但只是提及个名词就作罢,实质上核心都是“访问控制”。

传统的 VPN 打通了局域网与内网,但如果 ACL (访问控制列表)没做好,一旦工作人员的设备被侵入,公司内网将面临危机,对于入侵者而言就是一览无余。

「零信任」的核心理念就是八个字:“永不信任、持续验证”。在业界,厂商的简单实现通常就是做好“访问控制”。

站在应用角度,主要分为以下两种应用场景:

- Web 代理应用:“编辑想在公司外访问内容管理平台”,如果「内容管理平台」是一个 Web 应用,那么只需在 Web 应用前面的网关加上“认证”机制。当公网上访问 URL 时,未登录用户无访问权限,将被重定向到登录页面;登录后才能访问「内容管理平台」。这解决了「零信任」中的一种场景。

- 隧道应用:这种场景是将应用隐藏在公司防火墙后面,不对外暴露服务。通常的解决方式是安装厂商提供的客户端(适用于 Windows 、Mac 、Linux 、Android 、iOS ),用户登录后,设备只会和“被授权”的内网应用建立隧道连接。这样,只有授权的人才能知道内网应用的存在并访问到。因为这需要建立隧道才能访问,没有登录的人自然无法发现「内容管理平台」,即使登录了没有权限也是一样,这也是「零信任」能解决的另一种场景。

综上所述,对于暴露在公网的 Web 应用,我们应只允许“授权用户”访问,并通过网关为当前会话连接赋予“身份”;对于不想暴露在公网的应用,就像传统 VPN 一样,使用隧道技术,只允许与“授权应用”建立连接,当然要比传统的 VPN 做得更好。

类似 oauth2-proxy 、authelia 这样的开源组件,都是不错的解决方案,但不一定能提供最佳体验。例如,如果有一个 docs 应用隐藏在 authelia 的网关之后,未登录的用户会被重定向到 authelia 的登录页面,但由于 authelia 目前仅支持账号密码、LDAP 方式登录,并不支持主流的 OAuth2.0 、OIDC ,因此在公司层面可能难以推广,这毕竟只是一个开源项目。

当然还有很多其他方面值得注意,但先就这样吧。
cndenis
2023-12-27 23:10:19 +08:00
@ysmox 谢谢你的详细回答。
想请教一下,Web 代理应用 有没有安全成熟好用的产品推荐?最好能满足体制内的安全要求。

我们系统本身是需要登录才能使用的,也就是未登录用户会跳转到登录页,但很难向别人证明这系统的登录机制足够安全没有漏洞,也很难说会不会被别人绕过登录攻击。所以希望在外面再套一层安全机制,但又不想用户用起来太麻烦。
ysmox
2023-12-28 00:37:03 +08:00
@cndenis

你的业务场景其实不复杂,当前企业内部使用的系统通常都有身份认证这套系统,即“访问前登录”。但由于各种原因,内部开发的业务系统以及购买、订阅的第三方系统均无法证明足够安全。

业界通常如何解决这种问题呢?这里我讲一下我所知道的一种解决方案,即在业务系统前套一层「零信任」的网关。

先讲一下用户登录访问的流程,这里以本地用户(业务系统本身创建的用户)和 IAM 身份源举例:

- 本地用户:访问 Web->未登录重定向业务系统登录页面->登录成功进入 Web 应用。
- IAM 身份源:1. 访问 Web->2. 未登录重定向业务系统登录页面->3. 重定向至 IAM 登录页->4. 登录成功重定向到业务登录页面->5. 进入 Web 应用

注:如果不清楚 IAM 是什么的话,你可以将上面的第 3 步的 IAM 登录页理解为“微信扫码登录”、“钉钉扫码登录”、“google 登录”、“github 登录”等登录方式。

这种情况下,发布在公网的业务系统在登录前是可以被爆破的,无法确保哪些 API 不会存在漏洞。

「零信任」是怎么做的呢,简单来讲就是在业务系统前加了个「零信任网关」,用户访问业务系统均由「零信任网关」代理访问业务系统。如果你熟悉 nginx ,可以将「零信任网关」想象为一个具有身份鉴权能力的增强版 nginx 。

任何访问业务系统请求的流量,均会经过「零信任网关」,未登录的流量均会被拦截。只要当用户在「零信任」上线后,被“授权”的用户才能顺利地经过「零信任网关」访问到业务系统。这是一种关键的安全机制,它在网关层面拦截所有不可信的访问请求。

使用「零信任」后的用户访问流程:1. 访问 Web -> 2. 「零信任网关」判断请求无“身份”信息重定向至「零信任」的登录页面 -> 3. 「零信任」登录后放通请求,重定向至业务系统登录页面 -> 4. 业务系统登录成功进入 Web 。

一般人看到这里会觉得第 3 步和第 4 步都要登录,用户用起来很麻烦需要登录两次,但绝大部分情况下只需要登录一次,怎么做到的呢?这里我讲两种常用的方案:

1. 上面提到过的 IAM 身份源,如果「零信任」和业务系统的身份源都是同一个 IAM 系统,那么登录一次后,当用户访问其他业务系统时,会重定向跳转至 IAM 页面,此时会自动完成登录再回到登录后的业务系统页面。例如:我们访问 A 服务用的是 google 的身份,第一次需要登录 google 账号,后面访问 B 服务、C 服务等,若业务系统本身默认使用 google 账号登录,那么访问时便自动完成这个登录动作。

2. 对业务系统进行简单改造,用「零信任」的身份登录系统。什么意思呢?当第 3 步完成后,用户已经成功上线「零信任」系统了,此时用户访问业务系统,业务系统本身并不知道当前用户是谁,但业务系统可以去请求「零信任」拿到身份信息,完成用户上线。

以上两种方案本质上其实是同一种,对于用户而言它只需要登陆一次即可,当然厂家提供的登录方式不止于此。

「零信任」是个理念,上述是「零信任」的一种实现、一种解决方案。

至于你问的有没有成熟好用的产品推荐,并且满足体制内的安全要求(例如等保、信创)。在网络安全厂商里是可以找到相应的「零信任」解决方案的,尤其是国内头部的网络安全厂商如“深信服”、“奇安信”,又或者其他互联网大厂,你可以直接联系他们了解更多。
yunisky
2023-12-28 02:10:33 +08:00
搞个云桌面或者堡垒机,在访问层把内外网分开,这样还能阻断剪贴板复制粘贴盗取公司资源
datocp
2023-12-28 06:45:03 +08:00
哎,别说了,公司里那些人就差喊我不会用电脑了。。。不会用电脑还有脸说这说那,人就是这么奇怪都是别人的错。他们要的是全自动化,最好哪天自动化的连他们都被优化了。

Openvpn 这种点一下都不会,浏览器挂 stunnel 估计也会叫,话说写个使用教程也不是长篇吧?
winterx
2023-12-28 08:39:23 +08:00
@alfawei #66 原来是巨硬全家桶,谢谢!
knightgao2
2023-12-28 08:47:32 +08:00
不论是啥方案,注意合规,不要自己做决定,这种涉及到重大风险的,请示领导
chaoschick
2023-12-28 08:51:24 +08:00
向日葵吧
cndenis
2023-12-28 09:08:11 +08:00
@knightgao2 领导不会给方案, 领导需要你给出解决方案, 并且证明方案的可行且合规
gogogo2000
2023-12-28 09:16:27 +08:00
sstp vpn ,Windows 都自带,mac 没有……如果用 mac 就用 l2tp ,国内内部使用这类系统标准的 vpn 并不会有查水表的问题,而且比 openvpn 之类更方便

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

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

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

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

© 2021 V2EX