Ipsec

strongswan:完全虛擬子網

  • July 28, 2013

我最近設置了一個 strongswan IPSec VPN 來從我的 android 智能手機訪問我的家庭伺服器的一些非公共服務。我在其他一些設備上使用 OpenVPN 來完成相同的任務,但為手機選擇了 strongswan,因為 IKEv2 應該(如果我錯了,請糾正我)在移動設備上對資源非常友好。

目前(openvpn)設置由一台伺服器(虛擬 ip:10.0.0.2)和多個客戶端(都在 10.0.0.0/24 子網中)組成。所有各方的路由都設置為僅通過專用於該子網的 vpn 路由數據包。(我不想從客戶端訪問我伺服器的本地子網,我也不想通過伺服器路由我的客戶端的所有流量)

現在我設法讓strongswan(伺服器:5.0.4,客戶端:官方strongswan android app 1.3.0)順利進行,但我還沒有完全做到。首先,伺服器配置:

config setup

conn %default
 keyexchange=ikev2

conn android
 left=%any
 leftauth=pubkey
 leftcert=serverCert.pem
 leftid=vpn.mydomain.com
 leftsourceip=10.10.10.128
 leftfirewall=yes
 right=%any
 rightsourceip=10.10.10.0/24
 rightauth=pubkey
 rightcert=clientCert_mymobilephone.pem
 rightauth2=eap-mschapv2
 auto=start

這會將 IP 10.10.10.1 分配給我的電話,但如果其介面上的伺服器沒有 IP,這將是我想要的。我仍然可以使用本地 IP (192.168.1.2) 通過 VPN 訪問我的伺服器,這並不是我真正想要的 ;)

我想將所有客戶端(主要是筆記型電腦)從 OpenVPN 遷移到 strongswan,但上述問題阻止了我進行切換。我嘗試了許多不同的 strongswan 配置,但沒有一個能匹配我的 OpenVPN 配置。這甚至可能嗎,如果可以,怎麼辦?

請注意,與 OpenVPN 相反,StrongSWAN 不打算以這種方式使用 - 它不創建虛擬介面,也不為隧道的兩側分配虛擬 IP 地址。您絕對可以做的是將地址 10.0.0.2 添加到伺服器端的一個介面中

ip addr add 10.0.0.2/32 dev eth0

並將適當的“leftsubnet”指令添加到您的配置中,使其成為 IPSEC 第 2 階段交換的一部分。不用說,在這種情況下,您需要將 ESP 與隧道一起使用。

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