Openvpn

帶有 OpenVPN 的 pfSense Site-toSite VPN 連接但不會路由流量

  • November 16, 2009

使用兩個 pfSense 路由器,我在 2 個站點之間創建了一個共享密鑰 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 中啟用。這就是我沒有更徹底地解釋設置的原因。

這可能是一個問題。假設您有以下網路:

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

當您嘗試從外部 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

這將解決單機級別的問題。回複數據包會去:

  • 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

另一種解決方案是:讓您的 VPN 盒在 10.1.1.2 介面上進行 NAT。這樣,對於內部機器,它看起來好像所有流量都來自 10.1.1.2,並且回復將轉到 10.1.1.2。不過,我建議通過路由,因為 NAT 將需要 VPN 盒上的額外資源用於連接跟踪器

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