为什么通过 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 增加的安全性体现在哪里?

6979 次点击
所在节点    程序员
43 条回复
ruxuan1306
2023-04-23 01:35:04 +08:00
单点网关,好审计。
mohumohu
2023-04-23 01:49:12 +08:00
- 场景 1 GitLab 有未修复的漏洞,被公网扫描到该服务进行攻击。VPN 避免了这个情况。
- 场景 2 Github 也无法保证安全,只是平台足够大修复漏洞更及时。
- 场景 3 你说的问题是存在的,但现在的商用 VPN 都有动态口令功能,就是手机上下个谷歌验证器或者类似的验证器,你只拿账号密码登不上。
- 场景 4 NAS 的系统有 0day ,甚至有被植入勒索木马的可能,VPN 避免了这个情况。
sky96111
2023-04-23 01:51:07 +08:00
减小服务存在漏洞时的受攻击面,而不是保障密码泄露后的安全
yfugibr
2023-04-23 01:51:38 +08:00
越复杂的系统潜在漏洞越多吧,vpn 本身实现很简单,服务端只需要暴露 vpn 服务,攻击面小很多
jones2000
2023-04-23 01:53:57 +08:00
公司和个人使用是不一样的。 出了问题公司是需要有人出来背锅的。
放公网,出了问题, 是运维部门的问题, 如果是公司人员滥用 vpn 导致公司数据泄露, 是员工的问题。
autoxbc
2023-04-23 01:54:31 +08:00
VPN 一般是密钥验证,强度非常高,比绝大多数服务自行实现的验证好
qmm0523
2023-04-23 02:08:56 +08:00
“既然 Github 能保证安全,为什么换成公司的 Gitlab 就不安全了呢”
恕我愚钝,这二者之间除了都使用了 Git 协议,还有什么共同点嘛?

一个问题想要证伪,只需要一个反例就可以:
- 把 Gitlab 暴露在公网上: Gitlab 未授权 RCE CVE-2021-22205
- 把 NAS 暴露在公网上: Synology NAS Audio Station 未授权 RCE
可见想通过这些公网的服务进入你的内网,获取密码并不是唯一途径,甚至不是最简单的途径。
那么有人会说,VPN 也会出现这样的问题呀?确实如此, 但是城墙上只开一个门,远比城墙上开满大大小小的门要好得多。
fzinfz
2023-04-23 02:34:27 +08:00
通过 vpn 进内网只是 step 1 ,然后才能进行 step 2 hack app ; step 1->2 需要时间 = 补救时间
如果直接服务暴露公网,等于直接帮黑客快进到 step 2
dcsuibian
2023-04-23 04:12:03 +08:00
基本就如前几楼所说,可以减少攻击面。
配 https 就挺麻烦的,本来就是内网服务,数量一多更是如此。
另外,跟大公司没有可比性。人家是提供公开服务来盈利的,有安全部门,有冗余有备份,有漏洞还可以半夜找人来修。
murmur
2023-04-23 08:07:39 +08:00
你说的对,所以还有 vpn+跳板机,都是现成的产品,买就可以了
msg7086
2023-04-23 08:19:58 +08:00
如果你家里也有像 GitHub 那么大的专门负责网络和系统安全的团队 24 小时盯着,那确实是可以保证安全的。

你不会以为 GitHub 也是像你一样把网站往服务器上一放然后就不管了吧?
masterclock
2023-04-23 08:20:14 +08:00
"而平时访问网站是能保证安全的"

??
这个观点是怎么来的??
huijiewei
2023-04-23 08:23:55 +08:00
因为只暴露一个服务就只需要关注一个服务的漏洞修复即可
sofukwird
2023-04-23 08:32:23 +08:00
在使用 http 提供的服务时,你的账号密码会被中间人(路由器,运营商)看光光的,所以 http 需要在可信网络下使用,可信网络一般使用 VPN 搭建(毕竟拉专线不太可能)
Chuck123
2023-04-23 08:40:56 +08:00
公司只需要开启 VPN 服务即可,而且对 VPN 账号都有审计。
Soler
2023-04-23 08:51:38 +08:00
我认为所有的安全,都是让人不能简单的访问,增加访问步骤。
Greenm
2023-04-23 08:53:54 +08:00
你以为的 Github: 没有漏洞,从来没被攻击过。

实际上的 Github: 从 16 年到现在,在 hackerone 上共花了 395 万美元,一共修复了 1312 个漏洞报告,过去 3 个月中给白帽子 34 万美元奖励。来源: https://hackerone.com/github?type=team

你们公司有多少做安全的人,Github 有多少安全研究人员,Github 尚且如此。
MartinWu
2023-04-23 09:01:03 +08:00
“我理解把内网设备暴露在公网从外面访问就跟平时访问网站是差不多的,而平时访问网站是能保证安全的。”: 那你说说是什么原因使得那些网站是安全的?
nothingistrue
2023-04-23 09:24:10 +08:00
你以为的 VPN ,就是个用户名密码,而且登录完之后就不用了。实际上可不是这样,而且实际上怎么样一般人也不知道,要网络专家才能回答。
Jhma
2023-04-23 09:34:30 +08:00
针对场景 4 ,很多商用 VPN 都有二次认证,如手机验证码,USB KEY 等,不过我用开源路由实现了用户+密码+证书+手机 APP 动态码,实现了 0 费用高安全的 VPN 接入

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

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

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

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

© 2021 V2EX