本地网络:192.168.2.0/24 #远程网络:192.168.3.0/24 #并发连接数:2 #其余默认/空白

本地网络:192.168.2.0/24 #远程网络:192.168.3.0/24 #并发连接数:2 #其余默认/空白

我目前正在使用 2 个 pfSense 设备 (2.0.2) 构建 s2s VPN。隧道已建立,但我无法将流量从一侧路由到另一侧,请检查我的测试实验室:


好的,我构建了一个新的测试实验室来缩小错误范围。以下是我所做的:

  • 为了确保这不是版本问题,我切换到了 pfSense 2.0.1
  • 网络 A:192.168.3.0/24
  • 网络 B:192.168.2.0/24
  • “Internet模拟网络”:10.10.10.0/24

PFSense 站点 A:

  • em0:广域网,10.10.10.10
  • em1:局域网,192.168.3.10

客户地点A:

  • if0:局域网,192.168.3.100,网关:192.168.3.10
  • 防火墙已禁用,ping gw 有效。

PFSense 站点 B:

  • em0:广域网,10.10.10.20
  • em1:局域网,192.168.2.20

客户站点 B:

  • if0:局域网,192.168.2.100,网关:192.168.2.20
  • 防火墙已禁用,ping gw 有效。

PFSense 站点 B 配置:

  • 每个接口上的所有防火墙规则都设置为允许任何
  • 没有添加网关或路由,因此 pfSense 仅知道默认接口网络
  • 使用 pfSense GUI 创建的测试 CA
  • 使用 pfSense GUI 创建的服务器(类型:服务器)证书以及创建的 CA
  • 使用 pfSense GUI 创建的客户端(类型:用户)证书
  • 导出客户端证书的私钥和公钥
  • 导出 CA 证书的公钥
  • 创建了一个新的 Open VPN 服务器,没有使用向导,而是单击“添加”(因为我想要一个向导不提供的点对点 OVPN)
  • 配置如下:#服务器模式:点对点(SSL / TLS)#协议 TCP#设备模式:TUN#接口:WAN#端口 443#禁用 TLS 身份验证进行测试#使用创建的 CA 和创建的服务器证书。#默认加密#隧道网络:172.16.0.0/24

    本地网络:192.168.2.0/24 #远程网络:192.168.3.0/24 #并发连接数:2 #其余默认/空白

  • 添加了新接口 OPT1 (ovpnc1)
  • 启用OTP1接口(类型:无)
  • 是:OVPN 接口上的 FW 规则也设置为允许任意到任意
  • 禁用并重新启用 openvpn 服务器
  • 检查路由:使用 ovpnc1 NIC 存在到远程网络的路由

PFSense 站点 A 配置:

  • 每个接口上的所有防火墙规则都设置为允许任何
  • 没有添加网关或路由,因此 pfSense 仅知道默认接口网络
  • 使用其公钥从站点 B 导入 CA
  • 使用公钥和私钥导入站点 B 的客户端证书
  • 通过单击“Open VPN 客户端”部分中的“添加”图标创建一个新的 Open VPN 客户端
  • 配置如下:
  • 服务器模式:点对点 (SSL / TLS) #协议 TCP #设备模式:TUN #接口:WAN #端口 443 #服务器主机或地址:10.10.10.20

    服务器端口:443 #禁用 TLS 身份验证以进行测试 #使用导入的 CA 和导入的客户端证书。#默认加密 #隧道

    网络:172.16.0.0/24 #远程网络:192.168.2.0/24 #其余默认/空白
  • 添加了新接口 OPT1 (ovpnc1)
  • 启用OTP1接口(类型:无)
  • 是:OVPN 接口上的 FW 规则也设置为允许任意到任意
  • 禁用并重新启用 openvpn 服务器
  • 检查路由:使用 ovpnc1 NIC 存在到远程网络的路由

--> VPN 隧道已启动,我看到 pfSense 两端都处于正常运行状态。 pfSense 中没有配置任何其他内容

测试:

站点 A 上的客户端无法 ping 通站点 B 上的客户端,反之亦然。pathping 显示路由在客户端的 gw(PFSense LAN 端口)处结束。

站点 A 上的 PFSense 无法使用 LAN 和 WAN 接口 ping 站点 B 上的客户端,但使用 OTP1 接口可以成功。但是,站点 B 上的客户端无法 ping 站点 A 上的 PFSense。

然而,从站点 B 上的 PFSense ping 站点 A 上的客户端时,情况并非如此:从任何接口都无法 ping 通。同样,从站点 A 上的客户端 ping 站点 B 上的 PFSense 失败。

此外,站点 B 上的 PFSense 无法 ping 站点 A 上的客户端,反之亦然。使用 WAN、LAN 和 OTP1 接口发送 ping 进行测试。

奇怪:站点 A 上的 PFSense 能够 ping 站点 B 上的 PFSense,但反之则不行!

结果:

只有直接客户端(即站点 A 上的 pfSense)似乎能够与远程网络上的任何东西(pfSense 或任何客户端)进行通信。尝试通过 pfSense 路由的客户端无法通信,即使它们与 pfSense 位于同一子网,因此远程站点应该知道该网络。此外,在服务器站点(B)上开始的通信似乎无法到达客户端站点(A)上的任何内容。

这引出了两个问题: - 我如何告诉 PFsense / OpenVPN 也通过 pfsense 路由的任何客户端(来自同一子网)的 VPN 传输流量(我猜 NAT 会起作用,但真的没有其他办法了吗?) - 我如何允许在我的服务器站点(B)上生成的流量通过 VPN 传输到客户端站点?

编辑编号 2

我将其添加到服务器端的高级配置中,除了在测试中上面描述的效果外,没有任何效果:

route 192.168.2.0 255.255.255.0;push "route 192.168.3.0 255.255.255.0";

此外,使用 pfsense 2.0.1 我意识到当建立 vpn 连接时,我现在有一个网关,其 ovpn 接口的 IP 添加到我的网关,这允许我使用该接口向远程网络添加静态路由。我在站点 A 和站点 B(或者如果您愿意,客户端和服务器)上都执行了此操作。

编辑编号 3

以下屏幕显示了路线:站点 B(服务器)路线: 站点 B(服务器)路由

站点 A(客户): 站点 A(客户)

答案1

在 s2s 情况下,我会使用静态路由而不是推送路由。或者根据网络的复杂程度使用 OSPF 来交换路由。但说实话,我从未尝试过在 s2s 情况下推送路由。对于简单的设置,它可能工作得很好。

为了在 pfSense 上使用 openvpn 设置 s2s,配置 openvpn 服务器/客户端后,您需要执行两件事。

  1. 您需要在每个路由器的接口->分配中添加 s2s 隧道作为接口。
  2. 默认情况下,防火墙将阻止这些接口上的所有流量,因此您需要向这些接口添加一些允许所有规则。一旦一切正常,您就可以根据需要应用规则

相关内容