站点到站点 OpenVPN 和 pfSense 无法传输流量的问题

站点到站点 OpenVPN 和 pfSense 无法传输流量的问题

我正在尝试在嵌入式路由器上运行的 pfSense 1.2.3-RELEASE 上建立 OpenVPN 隧道。

我有一个本地局域网 10.34.43.0/254。远程局域网是 10.200.1.0/24。本地 pfSense 配置为客户端,远程配置为服务器。

我的 OpenVPN 隧道内部使用 IP 范围 10.99.89.0/24。远程端还有一些额外的 LAN 通过隧道路由,但问题不在于这些 LAN,因为我的连接在链路中的该点之前就失败了。

隧道进展顺利,原木看起来完好无损。我发现了以下内容:-

  • 我可以从本地 pfSense 盒的 shell ping 和 telnet 到远程 LAN 和其他远程 LAN。
  • 我无法从本地网络 ping 或 telnet 到任何远程 LAN。
  • 我无法从远程 LAN 或远程 pfSense 盒的 shell ping 或 telnet 到本地网络。
  • 如果我 tcpdump 两侧的 tun 接口并从本地 LAN 执行 ping 操作,我会看到数据包在本地到达隧道,但它们不会出现在远端(如果我 tcpdump 的话,它们也不会出现在远程 LAN 接口上)。
  • 如果我 tcpdump 两侧的 tun 接口并从本地 pfSense shell 执行 ping 操作,我会看到数据包在本地到达隧道,然后退出远程端。我还可以 tcpdump 远程 LAN 接口并看到它们也从那里通过。
  • 如果我 tcpdump 两侧的 tun 接口并从远程 pfSense shell 执行 ping 操作,我会看到数据包到达远程 tun,但它们不会从本地 tun 中出现。

这是远程端正在使用的配置文件:-

#user nobody
#group nobody
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
dev tun
proto udp
cipher BF-CBC
up /etc/rc.filter_configure
down /etc/rc.filter_configure
server 10.99.89.0 255.255.255.0
client-config-dir /var/etc/openvpn_csc
push "route 10.200.1.0 255.255.255.0"
lport <port>
route 10.34.43.0 255.255.255.0
ca /var/etc/openvpn_server0.ca
cert /var/etc/openvpn_server0.cert
key /var/etc/openvpn_server0.key
dh /var/etc/openvpn_server0.dh
comp-lzo
push "route 205.217.5.128 255.255.255.224"
push "route 205.217.5.64 255.255.255.224"
push "route 165.193.147.128 255.255.255.224"
push "route 165.193.147.32 255.255.255.240"
push "route 192.168.1.16 255.255.255.240"
push "route 192.168.2.16 255.255.255.240"

这是本地配置:-

writepid /var/run/openvpn_client0.pid
#user nobody
#group nobody
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
dev tun
proto udp
cipher BF-CBC
up /etc/rc.filter_configure
down /etc/rc.filter_configure
remote <host> <port>
client
lport 1194
ifconfig 10.99.89.2 10.99.89.1
ca /var/etc/openvpn_client0.ca
cert /var/etc/openvpn_client0.cert
key /var/etc/openvpn_client0.key
comp-lzo

您可以在此处查看从 pfSense 中提取的路由表的相关部分http://pastie.org/5365800

本地防火墙允许来自 LAN 的所有 ICMP,我的 PC 允许任何位置的所有流量。远程防火墙将其 LAN 视为受信任的,并允许该接口上的所有流量。

有人能解释一下为什么这不起作用吗?我下一步可以尝试什么?

答案1

对于 SSL/TLS 站点到站点 VPN,您需要服务器上的路由和客户端特定覆盖中的 iroute。这里的描述听起来好像您缺少那个 iroute。与共享密钥不同,服务器上的路由就足够了。对于这样的 VPN,服务器上的路由会将该流量发送到特定的 OpenVPN 实例,并且其内部路由(通过 iroutes)必须知道哪个客户端要路由该特定网络。

在 VPN>OpenVPN 的“客户端特定覆盖”选项卡下,添加一个新条目。对于“通用名称”,请输入客户端证书中的 CN。在“高级”框中,填写“iroute 10.34.43.0 255.255.255.0”(不带引号)。保留其余的默认设置,单击“保存”。从客户端系统上的“状态”>“服务”重新启动 OpenVPN 客户端,一旦重新连接,如果确实是缺少的 iroute,它应该可以正常工作。

相关内容