VPN 的开放端口是否可以防止黑客攻击?

ale*_*lex 2 networking security vpn openvpn

我正在尝试实施 VPN。
我读到了有关在 Windows(内置)上配置 VPN 服务器的信息,以及一些 3d 方软件,例如 OpenVPN 等。但是所有这些都需要在 VPN 路由器中打开一个端口才能工作 - 但打开端口可能会暴露服务器给黑客。
那么VPN本身是否对这个开放端口有保护,或者即使使用VPN,服务器也可能被黑客攻击?解决办法是什么?

use*_*686 33

\n

服务器需要一个开放端口,因此该端口可能存在危险。即使我选择Wireguard或开放VPN,我认为他们需要一个开放端口

\n
\n

港口并没有“处于危险之中”。无法攻击端口。一种仅攻击在这些端口上运行的服务。(就像你可以拨打一个电话号码,但你不是在与一个电话号码交谈,你是在与电话号码背后的一个人交谈,而且无论他们有一个还是五个电话号码,都是同一个人。)

\n

因此,如果您希望从外部访问某个服务,则不可避免地意味着无论“端口”如何,它都会受到外部攻击。

\n

处理这个问题的方法是仔细选择要公开的服务,因为这些服务是存在漏洞的;端口数量无关。

\n

大多数 VPN 服务器已经针对攻击进行了强化 \xe2\x80\x93 ,它们的全部目的就是暴露给公众 \xe2\x80\x93 但您可以根据受欢迎程度、历史 CVE 计数等对它们进行排名。一般来说, OpenVPN 和 WireGuard 都可以。

\n

  • @iBug:不,我特别不想只回答标题中的问题。在我看来,整个问题帖子的基础是对“开放端口”的作用缺乏了解;如果只字面地回答并让他们继续下去,这对OP来说是一种伤害。 (2认同)

dav*_*dgo 11

我认为您可能误解了 VPN 提供的安全模型。

我的第一条评论是,许多 VPN 客户端不需要打开端口(服务器可以说是这样做的),并且开放端口本身并不会使系统容易受到攻击 - 任何漏洞都将归结为可以通过以下方式完成哪些操作开放端口。

只要 VPN 实施稳健,开放端口给攻击者带来的唯一优势就是知道有某种设备提供某种服务(并且可能指示其上运行的 VPN 类型)。就是这样。它根本没有给系统提供任何立足点。

如果您正在运行 VPN 服务器并且对此感到担忧,您可以通过几种方法来缓解上述问题。看看“端口敲门”,它是一种保持端口关闭的方法,直到路由器收到一系列隐藏的数据包(并且路由器不需要响应这些数据包)。您还可以限制可以连接到 VPN 的 IP/范围,这可以显着降低 VPN 服务器被探测的可能性。类似地,您始终可以运行 Web 服务器,并要求不同系统上(可能在不同网络上)的特定 URL 被命中,然后可以信任该 URL 发送一条指令,以打开到适当 IP 的 VPN 端口地址。

另一种方法可能是启动基本服务器/VPS(例如AWS EC2实例),并让您的VPN“服务器”全部作为客户端连接到该实例。这样,除了通过 VPN 服务器之外,无法直接访问实际的 VPN 端点 - 可以如上所述锁定该服务器。

另一件需要考虑的事情是 VPN 协议的选择。Wireguard 非常小且轻,并且经过了良好的安全审核,因此它可能是一个不错的选择。

如果您更喜欢隐匿性的安全性,您可能需要考虑在与真实 Web 服务器共享的端口 443 上运行 OpenVPN(例如https://serverfault.com/questions/187915/openvpn-port-share-with-apache-ssl)。

  • 如果您想提供任何类型的服务,例如 VPN,请做好准备,**将会**有人尝试闯入使用该服务。这就是为什么我们倾向于“关闭未使用的端口”——不要太担心意外启动的服务。 “开放端口”本身不会带来任何风险——所有风险都在于监听它的软件。这就是为什么答案提到 VPN 软件需要“健壮”,例如至少没有已知的漏洞。您还需要使用良好的安全实践(例如安全密码等)。并监控使用情况,检测并阻止尝试中的破坏。 (4认同)
  • 因此,实施该解决方案。我当然信任 OpenVPN 胜过那个特定的解决方案 (4认同)
  • @alex 我有一种感觉,你误解了 VPN 的目的和典型的威胁模型。通常,您有一个强化的入口点(网关),以及隐藏在其后面的整个基础设施,至少受到一定程度的保护(即没有 root 访问权限、合理的密码等)。即使预算有限,完全在本地部署,您的基础机器和生产数据库也应该分开,并且生产数据库永远不会直接暴露在互联网上。你的描述让我担心目前确实如此,如果是这样的话,VPN 是你现在最不关心的问题。 (4认同)
  • @alex 您对 Lodinn 的评论表明这是一个 XY 问题 - 您应该关注您正在尝试缓解的威胁,而不是 VPN 的开放端口。在您上述评论的背景下,您可以忘记 VPN 开放端口的安全风险,与您更广泛的问题相比,它是微不足道的。您应该将 VPN 视为缩小谁可以访问您网络的范围的一种方式 - OpenVPN 或 Wireguard 会为您做到这一点。这里 VPN 的想法是,在黑客可以访问数据库之前,需要对 VPN 进行攻击...... (3认同)
  • 不,并非所有这些协议都是坏的。 PPTP 是。我没有对 IPSEC 做过太多的研究,但它相当不错地经受住了时间的考验。设置起来很复杂。我没有研究过 SSTP 或 IKEV2。在查看 https://en.wikipedia.org/wiki/Secure_Socket_Tunneling_Protocol 时,我突然看到以下一行 - SSTP 仅用于远程客户端访问,它通常不支持站点到站点 VPN 隧道 - 这告诉我对我来说,这不是一个合适的 VPN 协议,然后问题是“为什么要使用 VPN,只需使用远程访问”... (2认同)
  • 关于预算 - 您可能将所有内容都放在一台 PC/VM 上,并将数据库服务器配置为不接受非本地连接。最近用于隐藏个人在线身份的 VPN 广告扭曲了人们对 VPN 作为一项技术的看法,但这正是 VPN 的初衷——为工程师提供一种远程安全地处理公司数据的方法。如果这是内部数据库,所有授权工作人员必须首先通过 VPN 连接到您的本地子网才能访问它。如果您通过网络提供服务,软件工程师必须有能力防止 SQL 攻击。 (2认同)