为什么通过 VPN 访问内网数据比直接把服务器暴露在公网更安全?

2023-04-23 01:31:50 +08:00
 UserName99

看到本站经常有人讨论把家里某台内网设备暴露在公网上时怎么增加安全性,很多人会建议使用 VPN 访问内网设备。很多企业也是使用 VPN 访问内网服务器数据的。但是为什么使用 VPN 就会更安全呢?我理解把内网设备暴露在公网从外面访问就跟平时访问网站是差不多的,而平时访问网站是能保证安全的。比如下面几个常见场景:

场景 1:在家里登录公司 VPN ,通过 VPN 往公司内网 GitLab 服务器提交代码。 场景 2:把公司 GitLab 服务器暴露在公网上,直接在家往 GitLab 提交代码。 场景 3:假设家里光猫有公网 IP ,通过 DDNS 和端口映射,可以实现在外面访问家里的 NAS 管理页面。 场景 4:把场景 3 改造一下,NAS 不暴露在公网上,先在树莓派上搭个 VPN 服务器,从外面先连接树莓派上的 VPN ,然后再访问内网 NAS 。

假设上面几种情况 VPN 、Git 、NAS 都是用账号密码的方式登录的,NAS 、GitLab 已开启 https 。

场景 2 和往 GitHub 提交代码安全性应该是一样的,既然 GitHub 能保证安全,为什么换成公司的 GitLab 就不安全了呢? 场景 4 里面,别人获取到 VPN 的账号密码就能进入内网,在场景 3 里别人获取 NAS 账号密码就能拿到 NAS 上的数据,拿到 VPN 的账号密码和拿到 NAS 的账号密码难度应该也是一样的。

此时场景 1 和场景 4 里面,VPN 增加的安全性体现在哪里?

6978 次点击
所在节点    程序员
43 条回复
lvzw
2023-04-23 09:40:57 +08:00
我的理解:
VPN:入户门装锁,每个卧室不装锁
公网暴露:入户门不装锁,每个卧室装锁
AlisterTT
2023-04-23 09:53:11 +08:00
1.一般企业内网业务多,VPN 用来减少互联网暴露面,统一互联网出口也更方便部署别的设备防火墙 WAF 流量清洗之类的。
2.现在 VPN 应该都在推零信任了,对连接用户的行为和权限进行实时确认,并不是你一个连接加密就完事的。
nullpoint007
2023-04-23 10:00:22 +08:00
把安全问题汇聚到 VPN 这里, 而不用担心别的服务的漏洞, 当然了, 入户门加锁, 室内门也加锁那就更安全了, VPN 可以用证书加密码的方式增强安全性的, 非对称加密的安全性还是杠杠滴
xpn282
2023-04-23 10:05:24 +08:00
@lvzw 很形象的比喻了,通俗易懂
eb0c6551
2023-04-23 10:11:09 +08:00
楼主的想法很合理。谷歌就是淘汰 vpn ,访问内网不需要 vpn ,而是 zero trust model: https://cloud.google.com/beyondcorp
riggzh
2023-04-23 10:23:02 +08:00
GitLab 没事就报漏洞
qsnow6
2023-04-23 10:24:14 +08:00
@lvzw #20
不是
VPN:入户门装锁,每个卧室装锁
公网暴露:入户门不装锁,每个卧室装锁

公网暴露相当于直接让别人直接来到你的卧室门前。
weijancc
2023-04-23 10:26:28 +08:00
使用 vpn 后所有流量都通过 vpn, 无需单独在路由器配置端口转发, https 虽然安全, 但如果有人知道你的 ip 和端口, 且这个服务有网页, 直接访问那就有可能导致泄露一些隐私信息..
Jhma
2023-04-23 10:33:10 +08:00
VPN 有全局代理和局部代理之分,不同种类 VPN 配置方法不同,可以通过策略路由指定你要访问的重要目标机器,而其他流量仍然走本地互联网
Jhma
2023-04-23 10:33:47 +08:00
@weijancc VPN 有全局代理和局部代理之分,不同种类 VPN 配置方法不同,可以通过策略路由指定你要访问的重要目标机器,而其他流量仍然走本地互联网
blankmiss
2023-04-23 10:33:53 +08:00
7 楼的比喻的非常好
blankmiss
2023-04-23 10:36:47 +08:00
@dcsuibian 配置 https 其实不太麻烦 大部分家宽公网都没有 80 443 像我就是用 10443 来作为反向代理 根据域名不同 分发到不同的服务 https 就用阿里给的免费 1 年证书就行了 还有就是找那种支持自定义端口回源的 cdn 进行反向代理 不过这种情况增加了 成本
blankmiss
2023-04-23 10:38:34 +08:00
@eb0c6551 内网组网 我感觉好像也是 VPN
blankmiss
2023-04-23 10:39:27 +08:00
tailscale 通过自己 derp server 进行内网组网 也是一个不错的选择
weijancc
2023-04-23 11:19:47 +08:00
@Jhma 这个我知道, 刚才回复有点急, 我重点是想说 vpn 和单独开放端口的区别
lvzw
2023-04-23 11:36:29 +08:00
我的理解:
VPN:入户门装锁,每个卧室不装锁
公网暴露:入户门不装锁,每个卧室装锁
@qsnow6 是的,你的理解更准确
adoal
2023-04-23 12:10:39 +08:00
维护一堆公网可访问系统的各自安全性,成本远大于维护一个访问接入服务的安全性。
salmon5
2023-04-23 12:37:57 +08:00
分 2 种情况:
1 ,个人:VPN 的漏洞极少,应用软件由于业务逻辑复杂,漏洞多。
2 ,企业:理由包含个人,另外理由是统一管理
3kkkk
2023-04-23 13:12:23 +08:00
这是 GPT 的回答
VPN:VPN 是一种建立安全连接的方式,可以用于远程访问内部网络。VPN 可以提供加密和身份验证等安全功能,因此在使用 VPN 时,用户可以通过一个安全的通道访问内部网络资源。VPN 通常被认为是比较安全的方式,因为它可以确保所有流量都通过安全的隧道传输,而且只有经过身份验证的用户才能访问内部网络。但是,VPN 也有其局限性,例如需要配置和管理 VPN 服务器以及客户端,并且可能需要使用额外的硬件或软件,这可能会增加管理和维护成本。

OpenVPN:OpenVPN 是一种基于 SSL/TLS 协议的 VPN 解决方案,提供了加密和身份验证等安全功能。OpenVPN 可以在不同的操作系统和设备上运行,因此是一种比较灵活和可扩展的解决方案。OpenVPN 也可以提供访问控制和身份验证等功能,从而可以保护内部网络资源的安全性。但是,OpenVPN 的安全性也取决于配置和管理,如果没有正确配置和管理,仍然会存在安全风险。

将 GitLab 暴露在公网:将 GitLab 暴露在公网上,可以让外部用户访问 GitLab 服务器,但这也会带来一些安全风险。如果没有采取适当的安全措施,GitLab 可能会受到恶意攻击,例如 SQL 注入,跨站点脚本( XSS )攻击和拒绝服务攻击等。因此,为了保护 GitLab 服务器的安全,必须采取适当的安全措施,例如使用访问控制和认证机制、定期更新软件和使用安全套接字层( SSL )等。

谈谈我的认识伤公司使用 vpn 针对的不只是 GitLab ,有可能涉及多业务系统。多角色。通过角色划分:
业务人员:包括运营、客服等他们有可能有远程查询内部业务系统的需要,这个可以提供 vpn 账号,比把一些做的比较垃圾的后台系统暴露在公网要安全。
技术人员:涉及运维、开发、测试。涉及多个系统和业务服务,不可能每个都暴露在公网。
管理销售人员:远程对一些系统查看,给客户提供展示。
lyc8503
2023-04-23 14:25:57 +08:00
内网的服务可能有很多,全部暴露的话要确保每一个都是安全的,否则有一个漏洞整个系统就可能被入侵。

使用 VPN 相当于在所有服务前加了一层十分强的保护。(正确配置的 Wireguard / OpenVPN 很难被攻破)

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

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

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

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

© 2021 V2EX