Vpn

站點到站點 OpenVPN 和 pfSense 無法通過流量的問題

  • November 14, 2012

我正在嘗試在嵌入式路由器上執行 pfSense 1.2.3-RELEASE 上的 OpenVPN 隧道。

我有一個本地 LAN 10.34.43.0/254。遠端 LAN 為 10.200.1.0/24。本地 pfSense 配置為客戶端,遠端配置為伺服器。

我的 OpenVPN 隧道在內部使用 IP 範圍 10.99.89.0/24。遠端側還有一些額外的 LAN 通過隧道路由,但問題不在於那些,因為我的連接在鏈中的那個點之前失敗。

隧道很好,原木看起來很健康。我發現是這樣的:-

  • 我可以從本地 pfSense 盒子的外殼 ping 和 telnet 到遠端 LAN 和其他遠端 LAN。
  • 我無法從本地網路 ping 或 telnet 到任何遠端 LAN。
  • 我無法從遠端 LAN 或遠端 pfSense 盒子的外殼 ping 或 telnet 到本地網路。
  • 如果我 tcpdump 雙方的 tun 介面並從本地 LAN ping,我會看到數據包在本地到達隧道,但它們不會出現在遠端端(如果我 tcpdump,它們也不會出現在遠端 LAN 介面上)。
  • 如果我 tcpdump 雙方的 tun 介面並從本地 pfSense shell ping,我會看到數據包在本地到達隧道,然後退出遠端端。我還可以 tcpdump 遠端 LAN 介面並看到它們也經過那裡。
  • 如果我對兩邊的 tun 介面進行 tcpdump 並從遠端 pfSense shell ping,我會看到數據包到達遠端 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 視為受信任的,並允許該介面上的所有流量。

誰能建議為什麼這不起作用,以及我接下來可以嘗試什麼?

使用 SSL/TLS 站點到站點 VPN,您需要伺服器上的路由,以及客戶端特定覆蓋中的 iroute。這裡的描述聽起來像你錯過了那個 iroute。與共享密鑰不同,伺服器上的路由就足夠了。對於這樣的 VPN,伺服器上的路由將流量發送到特定的 OpenVPN 實例,並且其內部路由通過 iroutes 必須知道哪個客戶端路由該特定網路。

在 VPN>OpenVPN,客戶端特定覆蓋選項卡下,添加一個新條目。對於“通用名稱”,從客戶端的證書中輸入 CN。在高級框中,填寫“iroute 10.34.43.0 255.255.255.0”(無引號)。其餘的保持預設,點擊保存。從客戶端系統上的狀態>服務重新啟動 OpenVPN 客戶端,一旦它重新連接,如果它確實是失去的 iroute,它應該可以工作。

引用自:https://serverfault.com/questions/448163