
我一直在嘗試使用 StrongSwan IKEv2 協定設定從 Ubuntu 18.04 伺服器(客戶端)到 Watchguard Firebox 的分割隧道。最後,我希望這是一個站點到站點的連接,但我首先從一側開始。
我已經能夠成功連接到 Watchguard 並獲得 IP 位址,但我不希望僅針對某些子網路透過隧道發送所有流量。我已經添加了路由ip route add
,當我建立連接時,如果我已經tcpdump
運行,我可以看到流量(192.168.1.0/24)正在通過我設置的接口,但我沒有得到響應。任何幫助將不勝感激。
這是 IPSec 的設定檔。
我取出了伺服器位址和用戶名。就像我說的,我已經成功連結了。rightsubnet
因為我想透過命令定義它,所以它被註解掉了ip route
。如果我取消註釋並建立連接,我可以成功 ping 定義的每個子網,但這不會分割流量,最終我將製定規則以僅允許某些設備訪問 VPN。
conn dealers
right=xxxxxxxx
rightid="O=WatchGuard, OU=Fireware, CN=ike2muvpn Server"
#rightsubnet=192.168.1.0/24,192.168.20.0/24,192.168.40.0/24,192.168.3.0/24,192.168.5.0/24
rightauth=pubkey
leftsourceip=%config
leftid=xxxxxxxx
leftauth=eap-mschapv2
eap_identity=%identity
auto=add
這是我的ip route
桌子
default via 192.168.2.1 dev eth0 proto dhcp src 192.168.2.196 metric 100
10.0.10.0/24 via 192.168.115.1 dev dealers_tunnel
192.168.1.0/24 via 192.168.115.1 dev dealers_tunnel
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.196
192.168.2.1 dev eth0 proto dhcp scope link src 192.168.2.196 metric 100
192.168.115.0/24 dev dealers_tunnel proto kernel scope link src 192.168.115.29
我有一個腳本可以連接 VPN,然後設定介面並新增路由。為了進行測試,我僅添加 192.168.1.0/24 網路。
#!/bin/bash
#
#./ikev2-up.sh
#
/usr/sbin/ipsec up dealers
ip tunnel add dealers_tunnel local 10.0.10.1 remote 192.168.115.29 mode are til 255
ip link set dealers_tunnel up
ip addr add 192.168.115.29/24 dev dealers_tunnel
ip route add 192.168.115.0/24 dev dealers_tunnel
ip route add 10.0.10.0/24 via 192.168.115.1 dev dealers_tunnel
ip route add 192.168.1.0/24 via 192.168.115.1 dev dealers_tunnel
我還沒有製定任何規則iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
我知道我缺少一些東西,但就是無法弄清楚。再次預先感謝您的幫助
答案1
如果您進行設定(假設對等方允許這樣做),並且對等方也指派了虛擬 IP 位址(用戶端透過 要求),rightsubnet=0.0.0.0/0
則您將不需要隧道裝置。leftsourceip=%config
charon.install_routes
只需透過in禁用 StrongSwan 的路由安裝強天鵝配置文件然後透過自訂安裝您自己的路線向上腳本配置在leftupdown
.使用 updown 腳本很重要,因為客戶端事先不知道虛擬 IP 位址。只有來自該虛擬 IP 的封包才會符合 IPsec 原則並透過隧道傳輸,因此透過來源路由強制執行這一點非常重要。
例如,要將流量透過隧道傳輸給192.168.115.0/24
您,可以使用類似以下腳本的腳本(預設情況下,strongSwan 在表220 中安裝路由,以避免與主表中的路由發生衝突,因此我將在此處使用相同的腳本):
#!/bin/bash
set -o nounset
set -o errexit
case "${PLUTO_VERB}" in
up-client)
ip route add 192.168.115.0/24 dev "${PLUTO_INTERFACE}" src "${PLUTO_MY_SOURCEIP}" table 220
;;
down-client)
ip route del 192.168.115.0/24 table 220
;;
esac