我们将所有局域网流量都封装在vpn中,而没有速度限制


在上一篇文章中,我们研究了如何匿名处理来自单个主机的所有Internet通信。 现在,让我们通过用VPN封装整个局域网来提高安全级别。 同时,我们将摆脱从尚未配置的设备访问Internet的危险,并将提供商的地址与此设备相关联。

为此,如果路由器允许,您可以简单地在网关上配置VPN客户端。 但是,这种解决方案的后果是Internet速度下降,路由器负载增加,此外,如果某些客户端断开与VPN的连接,则它们会立即通过主连接发送所有流量。 不要忘记,即使领先的VPN提供商也无法为其服务器提供100%的正常运行时间。

那么我们的目标是什么:

  • 通过VPN传递所有传出流量
  • 尽快完成
  • 不依赖于VPN提供商的临时问题
  • Internet上的最大匿名性

准备工作


我们需要一个功能强大的路由器,可以高速加密流量。 他将充当VPN网关。 我们在AliExpress上找到了出色的微型PC来完成此任务:四核Intel Celeron,对AES-CBC,AES-XTS,AES-GCM,AES-ICM的本地支持以及多达四个RJ-45端口。 默认情况下,在它们上安装了pfSense。 我们将与她合作。

如果您的ISP需要特殊的连接设置,则可以再使用两个路由器并共享对Internet和本地网络的访问,并在它们之间放置一个VPN网关。 在另一种情况下,您可以将提供商的电线直接连接到VPN网关,然后在其后面将家庭路由器与局域网相连。 在pfSense上进行Internet连接的初始设置超出了本文的范围。

客制化


本文假定Internet连接到第一个端口,PC或家庭网络连接到第二个端口,并且在配置VPN之前,您可以联机。

为避免进一步的问题,让我们登录到您最喜欢的VPN提供商并查找有关设置pfSense的说明。 如果您的提供商没有提供在pfSense中进行手动配置的说明,则可以从我最喜欢的提供商那里使用此工具: www.expressvpn.com/support/vpn-setup/pfsense-with-expressvpn-openvpn-要点不会改变。 上面带有图片的文章介绍了如何使用pfSense完全配置新购买的路由器。

这是设置新VPN的简短清单:

  • 系统-证书。 经理-CA。 添加VPN CA证书
  • 系统-证书。 经理-证书。 添加VPN服务器证书
  • VPN-OpenVPN-客户端。 我们根据VPN提供商的指示创建一个新客户端
  • 接口-分配。 将客户端添加为接口
  • 系统-路由。 检查网关是否已出现。
  • 防火墙-NAT。 为每个客户端添加NAT规则
  • 防火墙-规则-LAN。 通过网关添加来自网络的所有流量的重定向
  • 系统-路由。 对于活动的VPN-a,通过对将要检查VPN-a的ping命令,在网关设置中指定Monitor IP。

VPN在状态-OpenVPN中重新启动。 查看状态-程序包日志-OpenVPN中的日志。

在此阶段,我们停止并检查是否可以通过VPN进行Internet访问,并且在断开与VPN的连接后,访问会完全消失。 如果没有互联网,我们在某个地方犯了错误,请查看VPN日志,然后再次检查设置。 如果断开连接后,VPN通信开始通过主网关,则它们在防火墙-规则-LAN中混乱了。

现在开始有趣的部分。 如果您的提供商每秒发出20 Mbit的消息,然后在晚上发出消息-那么在此阶段,您已经收到一个由VPN-ohm完全关闭的局域网,该局域网以最快的速度运行。 但是,如果您的频道更宽呢?

可扩展


根据上述说明,我们为不同的服务器设置了多个VPN客户端。 您不需要添加CA和服务器证书,我们选择已经添加的证书。 另外,我们不会对“防火墙-规则-LAN”执行此步骤,我们将在以后执行。 通过每个单独服务器的速度测量结果,根据经验确定所需的客户端数量。

完成后,我们应该具有以下图片:

-在VPN中-OpenVPN-客户端已创建并激活了客户端

VPN-OpenVPN-客户端

-接口-为每个客户端创建和激活分配的接口

接口-分配

-在状态-OpenVPN中,所有客户端均处于“启动”状态

状态-OpenVPN

-网关出现在系统-路由中,并为它们指示ping IP地址。
(如果您找不到要ping的用户,请打开shodan.io并找到所有的Google IP)

系统-路由

现在,我们去系统-路由-网关组。 单击添加。 在组名中输入一个难忘的名称。

系统-路由-网关组

现在注意网关优先级表。 网关组的工作方式如下:按级别进行故障转移,在一个级别内进行平衡。 “层”列指示此网关将在什么级别上使用。 最简单的选项是在第一级中指定所有活动的VPN网关。 慢速Internet的一种选择是创建两个客户端,并将它们放在第一层和第二层上,但是在这种情况下,只会存在容错功能。

在下面找到触发电平。 在这种情况下,网关会暂时从组中排除。 除Member Down以外的其他选项使您可以在超过完全丢失之前就停止向网关发送数据包-通过超过数据包丢失阈值和/或通过高ping操作。 在系统-路由-网关中分别为每个网关设置丢失和ping阈值。

选择用于将网关划分为各个级别的便捷选项后,单击“保存”。

是时候将流量转发到一组新的网关了。 我们转到防火墙-规则-局域网,打开之前创建的重定向规则,转到带有网关的列表,然后查看在此列表中创建的组。 我们选择它,保存规则并应用更改。 就是这样,现在每个新连接都将通过组中的新VPN客户端。

测试时间:打开api.ipify.me ,禁用缓存并保持活动状态,然后重新加载页面。 如果您是网络上的唯一用户,则对于每个页面更新,您应该看到的新IP地址都不同于您的家庭IP地址。 如果您看到相同的地址,请使用Ctrl + F5(在罂粟花上使用Command + Shift + R)完全刷新页面,或打开一个新的专用标签。 如果没有帮助,则表示他们在某个地方错误设置了组设置,或者未更改防火墙规则中的网关。

现在说坏了。 不幸的是,如果您在本地网络的路由器(而不是交换机)的前面使用此解决方案,则该解决方案会有一个难以捉摸的错误。 迟早会有一个VPN客户端掉下来,将他赶出该群组,一切正常,直到VPN恢复。 由于所有用户都位于NAT后面,并且VPN路由器仅看到一个IP地址和65,000个端口,因此随着时间的推移,它将所有端口与那些永不掉线的VPN客户端相关联。 因此,VPN客户端一上升,就不会有流量通过。 客户端完全处于活动状态,ping和一些稳定的服务流量通过它,但是客户端流量没有通过它。 从理论上讲,这可以通过重置连接表来解决,为此在pfSense设置中甚至有一个复选标记,但是在我的研究中,此复选标记完全阻止了对路由器的所有访问,因为客户端开始陷入周期,同时从网络上删除了新建立的连接。界面,这使得修复该问题非常困难。 如果没有此复选标记,则如果有两个以上的VPN,它们将保持平衡,从而始终可以通过至少一个进行访问。 最后,我配置了监视条件“如果接口上的五分钟每秒不到1000字节的流量,请告诉我”,在特别高级的情况下,我手动重新启动了僵尸VPN客户端以重置连接表。

因此,我们得到了一个完全通过多个分布式VPN传递的网络。 由于几个不同的VPN服务器的组合,我们并不单独依赖每个VPN服务器的可用性,并且网络速度仅受通道减去加密的限制。 如果突然之间一个路由器不足以满足您的需求-它们也可以缩放,但这是另一篇文章的主题。

Source: https://habr.com/ru/post/zh-CN475068/


All Articles