带有 OpenVPN 的 pfSense Site-toSite VPN 连接但不会路由流量

ned*_*edm 4 openvpn site-to-site-vpn pfsense kvm-virtualization

使用两个 pfSense 路由器,我在两个站点之间创建了一个共享密钥 VPN。两个路由器都是 pfSense 1.2.2。客户端站点的 pfSense 框是该站点的网关路由器,但在服务器站点,pfSense 不是该 LAN 的网关。客户端站点连接到服务器站点正常,并且我收到“初始化序列已完成”日志消息,表明连接成功。

从客户端站点,我可以使用客户端 LAN 上的任何机器在其 LAN 地址上 ping 服务器站点上的 pfSense 框(甚至可以通过 Web 界面对其进行配置,因此 VPN 至少可以用于该地址)。我还可以 ping “接口 IP”(客户端配置)/“地址池”(服务器配置)IP 范围中的两个地址,它们是相同的私有子网并且不在客户端或服务器 LAN 范围内。

问题是我无法访问服务器站点 LAN 上的任何其他 IP。我不需要能够从服务器站点访问客户端站点 LAN 上的机器,但我确实需要能够从客户端站点访问更多的服务器。目前,客户端 LAN 上的任何人都可以 ping 到服务器的 LAN 接口,并且客户端 LAN 上的任何人都可以从 pfSense 服务器本身 ping 通,但不能从服务器 LAN 上 ping 通。我在服务器上的 LAN 接口防火墙规则上添加了 any <> any 规则。

如果我在服务器的 LAN 接口上捕获流量,我会看到从客户端 LAN 站点传递的数据包,但是如果我嗅探,我看不到这些数据包进入服务器的 LAN。正如我所说,我在 LAN 接口上添加了一条规则以允许如下任意对任意,那么我还需要做什么来允许从隧道到 LAN 的流量,反之亦然?

更新: 我在客户端 pfSense 上为服务器 LAN 添加了推送路由,反之亦然。我还尝试升级到 pfSense 1.2.3 的 RC 并添加一个 Opt1 接口设置为 tun0,然后在 opt1 和 LAN 之间添加允许规则。仍然没有运气。

更新 2:需要按照已接受的答案中的描述在服务器 LAN 上设置正确的路由,但我忽略了服务器 pfSense/OpenVPN 单元作为 KVM 下的来宾操作系统运行,问题的另一半是 IP 转发需要在主机操作系统的 /etc/ufw/before.rules 中启用。这就是我没有更彻底地解释设置的结果。

gal*_*ets 8

这可能是一个问题。假设您有以下网络:

address pool: 10.1.1.0/255.255.255.0
router: 10.1.1.1
internal interface on internal vpn server: 10.1.1.2
some external machine that VPNs to network: 10.2.2.2
some internal client machine: 10.1.1.90
Run Code Online (Sandbox Code Playgroud)

当您尝试从外部 VPN 盒访问 SIC 时,流量路由如下所示:

  • 10.2.2.2
  • VPN(互联网)
  • 10.1.1.2
  • 10.1.1.90
  • 好的

看起来不错,但是,为了使流量流动,10.1.1.90 机器应该能够响应,这意味着来自它的数据包也必须可路由到 10.2.2.2。内部客户端显然有 ip:10.1.1.90,掩码:255.255.255.0 和路由器:10.1.1.90。因此,数据包将像这样路由:

  • 10.1.1.90
  • 10.1.1.1(因为它是路由器,而 10.2.2.2 不能直接寻址)
  • 互联网
  • 未找到

基本上,回复数据包甚至不会到达 VPN。你能做什么?显然,将起作用的是将路由添加到内部客户端以将所有数据包路由到 10.2.2.2 而不是 VPN 框而不是路由器,例如(Windows 框):

route add 10.2.2.0 mask 255.255.255.0 10.1.1.2
Run Code Online (Sandbox Code Playgroud)

这将解决单机级别的问题。回复包会去:

  • 10.1.1.90
  • 10.1.1.2(显式路由)
  • VPN(互联网)
  • 10.2.2.2

要解决网络级别的问题,您必须以同样的方式修改路由器,将所有去往 10.2.2.0 的流量重定向到 10.1.1.2。这样回复包会去:

  • 10.1.1.90
  • 10.1.1.1
  • 10.1.1.2
  • VPN(互联网)
  • 10.2.2.2

另一种解决方案是:在 10.1.1.2 接口上将您的 VPN 盒设置为 NAT。对于内部机器,这种方式看起来好像所有流量都来自 10.1.1.2,而回复将转到 10.1.1.2。不过,我建议通过路由,因为 NAT 将需要 VPN 盒上的额外资源用于连接跟踪器