VPN 仅适用于单个程序

VPN 仅适用于单个程序

我正在创建一项新的 VPN 服务,以便《孤岛危机 1》、《孤岛危机战争》和《孤岛危机 2》游戏玩家能够在本月底在线多人游戏关闭后继续玩游戏。

此 VPN 服务的目的是提供一个私人局域网,玩家可以连接到 VPN 并查看局域网服务器列表以连接到服务器(服务器显然也必须连接到 VPN)。

这就是问题所在;我只希望 VPN 服务器支持此服务器网络,而不允许人们访问互联网。这是因为如果他们下载种子、观看视频等,VPN 服务器就会变慢。显然,我可以阻止所有网络访问,但不幸的是,大多数玩家喜欢在玩游戏时浏览互联网、在 YouTube 上播放音乐等。

在 Windows 上是否可以只允许游戏和服务器使用 VPN,同时强制用户绕过 VPN 进行其他互联网通信?是否有一些 Windows 防火墙规则可以应用来创建此行为?我只希望游戏服务器和游戏使用 VPN 服务器。

如果这不可能,那么可以通过编程实现吗?C++ 和 Lua 只能用于此。

VPN 在 Linux 上。

答案1

有两种简单的方法可以实现此目的:Microsoft 极其不安全的 PPTP 和 OpenVPN。

PPTP 内置于 Windows,不需要玩家下载。问题在于交换的数据并不安全 - 专门的攻击者将能够侵入数据流,因为 PPTP 使用的加密存在缺陷。由于这是一项几乎没有损失的游戏服务(除了几场多人比赛),这可能是一个可以接受的风险,但您并不完全清楚所有组件如何组合在一起,以及什么是“可接受的”。您需要在 Linux 机器上安装 pptpd 服务并从那里进行配置。安装后,它将接受任何拥有正确用户名/密码对的人的连接。

OpenVPN 稍微有点重,但可以提供完全的安全性。它可以单独下载和安装。此服务的设置超出了问题的范围 - 它有点复杂。可以说,它不仅需要为您的玩家下载和安装客户端,还可能需要交换 SSL 证书文件。它将提供合理的安全性,并且延迟不会太可怕,因此如果您必须拥有良好的安全性,这是一个很好的解决方案。

关于互联网访问,iptables路由将阻止玩家获得外部访问权限。本质上,您将在网络端口上创建一个子网,阻止所有试图离开子网的流量。这将阻止玩家将您的服务器变成他们自己的私人 ISP/路由器。

最后,Windows 应该足够智能,能够将数据包路由到适当的网络。实际上,这意味着发往您的游戏服务器的任何数据包都将通过 VPN 管道传输,其他所有数据包都将通过“常规”连接传输。因此,如果您正确设置了它,并且您的玩家拥有正确的设置,那么这不会有任何问题。

为了简单起见,我建议使用 PPTP 版本,稍微加强一下安全性,并密切关注访问日志。您可能希望合并自定义脚本,fail2ban以便针对 PPTP 的字典攻击会导致锁定。

答案2

我建议使用 OpenVPN。客户端配置中有一个名为“redirect-gateway”的选项,如果启用,它将通过 VPN 重定向来自客户端的流量。显然,您不会希望客户端的 OpenVPN 配置中包含此选项。在服务器端,您可以使用“iptables”来阻止客户端通过 VPN 访问互联网。这关联链接包含有关如何配置 OpenVPN 的信息,在标有“配置客户端特定规则和访问策略”的部分中,它将指导您为用户提供有限的网络访问权限。在您的班级中,您可能希望默认放弃并仅将数据包转发到 Crysis 服务器。

答案3

因此我会使用 tunggle,因为它非常稳定且易于设置。您还可以设置专用网络。请查看http://www.tunngle.net

答案4

如果你使用 Linux 并使用 openVPN,VPNShift效果非常好。

相关内容