我正在尝试实施 VPN。
我阅读了有关在 Windows(内置)上配置 VPN 服务器的信息,以及一些第三方软件,如 OpenVPN 等。但所有这些都需要在路由器上打开一个端口才能使 VPN 工作 - 但打开端口可能会将服务器暴露给黑客。
那么 VPN 本身是否对这个开放端口有保护,或者即使使用 VPN,服务器也可能被黑客入侵?解决方案是什么?
答案1
服务器需要开放端口,因此该端口可能存在危险。即使我选择 Wireguard 或 open vpn,我认为它们也需要开放端口
港口并不“处于危险之中”。人们不能攻击港口。人们只能攻击服务在这些端口上运行。(就像你可以拨打电话号码,但你没有和......说话一个电话号码,你就是在和号码背后的人通话,而且无论他们有一个电话号码还是五个电话号码,通话的人都是同一个人。
因此,如果您希望从外部访问某个服务,那么不可避免地意味着无论“端口”是什么,它都可能受到来自外部的攻击。
处理这个问题的方法是仔细选择哪个要公开的服务,因为服务中存在漏洞;端口的数量无关紧要。
大多数 VPN 服务器已经针对攻击进行了强化——这有点像他们的全部目的向公众公开——但你可以对它们进行排名,例如按受欢迎程度、历史 CVE 数量等。一般来说,OpenVPN 和 WireGuard 都可以。
答案2
我认为您可能误解了 VPN 提供的安全模型。
我的第一条评论是,许多 VPN 客户端不需要打开端口(服务器可以说需要),并且开放端口本身并不会使系统变得脆弱 - 任何脆弱性都取决于可以通过开放端口执行的操作。
只要 VPN 实现稳健开放端口给对手带来的唯一好处是知道有某种设备提供某种服务(可能还有迹象表明在其上运行着哪种 VPN)。仅此而已。它根本不会给对手提供任何进入系统的立足点。
如果您正在运行 VPN 服务器并且对此感到担忧,那么您可以使用几种方法来缓解上述问题。请查看“端口敲击”,这是一种保持端口关闭直到路由器收到一系列隐藏数据包(路由器无需响应这些数据包)的方法。您还可以限制可以连接到 VPN 的 IP/范围,这可以大大降低 VPN 服务器被探测的可能性。类似地,您可以始终运行 Web 服务器并要求访问不同系统(可能在不同网络上)上的特定 URL,然后可以信任该 URL 向适当的 IP 地址发送打开 VPN 端口的指令。
另一种方法可能是启动一个基本服务器/VPS(例如 AWS EC2 实例),并让您的 VPN“服务器”全部作为客户端连接到该实例。这样,实际的 VPN 端点就无法直接访问,除非通过 VPN 服务器 - 可以像上面一样锁定 VPN 服务器。
另一个需要考虑的事情是 VPN 协议的选择。Wireguard 非常小巧轻量,并且经过了良好的安全审核,因此它可能是一个不错的选择。
如果你喜欢通过隐蔽性来实现安全性,你可能需要考虑在与真实 Web 服务器共享的 443 端口上运行 OpenVPN(例如https://serverfault.com/questions/187915/openvpn-port-share-with-apache-ssl)。
答案3
首先,在所有与安全相关的事物中,您都应该开始假设一切都可能被黑客入侵。而且,如果暴露在互联网上,您的服务每天都会受到探测。这并不是为了吓人:这只是您在网上发布内容时看到的内容。您的目标是将风险降至最低……
我认为您需要做出的第一个选择是:谁来管理这项服务?可能是您,但这不是唯一的选择。无论如何,如果您的主机的安全性很重要,您应该问问自己是否真的可以自己做还是信任专业人士/服务。
回到“端口”...开放端口没有什么问题:它只是服务“监听”请求的方式。您需要专注于使用安全软件(即开放VPN) 已正确配置。
此外,一些 VPN 甚至不需要打开端口,因为它们会在主机之间中继数据。此类服务的一个例子是零层。
我希望这可以帮助您做出明智的选择,并且可能不会自己在生产中运行您的第一个 VPN 服务。