
我最近在兩個不同的網站和兩個不同的 ubuntu 伺服器上部署了 Strongswan IKEv2 遠端存取 VPN。一切都很好,但現在我想使用站點到站點 VPN“合併”這兩個站點,這樣我就可以只留下一個遠端訪問 VPN 並訪問兩個子網路。問題是如何做?我的想法是在兩個站點之間使用 Strongswan 並在兩個站點路由器上使用靜態路由來管理流量的 IPSec 隧道。
這些站點配置如下:
A)
Only One Public IP : x.x.x.x
Subnet : 10.5.5.0/24
B)
One Usable Public IP : x.x.x.x
Subnet : 192.168.5.0/24
問題是:
- 我可以在同一個 Strongswan 實例上執行這兩個服務(IKEv2 遠端存取和 IPSec 隧道)嗎?我對此的回答是否定的,如果是這種情況,我準備使用另外兩個 ubuntu 伺服器作為網關來新增一個新的 Strongswan 實例。
- 但是,如果我在網站中使用兩台不同的伺服器,則會出現另一個問題,每個網站只有一個公用 IP,我如何消除 IPSec 和 IKEv2 的衝突,因為兩者都應該使用相同的連接埠?我可以更改 IPSec 隧道使用的連接埠嗎?或者也許我不需要 IPSec 隧道的連接埠轉送?
這是我對 IPSec 隧道的參考。 https://www.howtoing.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/
關於如何解決這個混亂的問題有什麼想法嗎?我是否總是需要兩個不同的 IP 位址來運行兩個 VPN 伺服器?開源 DMVPN 可以提供協助嗎?
提前致謝。
答案1
回答你的問題
- 是的,您可以在同一個 StrongSwan 實例上執行遠端存取(又稱 Roadwarrior)和站點到站點隧道。
- 您可以透過身份驗證方法區分網站到網站連線和遠端存取連線。
這是一個工作設置
connections {
site {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = MyCA.cer
id = "CN=site2.example.com"
}
children {
site {
local_ts = 10.218.2.0/24, ::/0
remote_ts = 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
win {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = LloydsCertificateAuthorityG2.cer
}
children {
win {
local_ts = 0.0.0.0/0, ::/0, 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
}
pools {
ipv4 {
addrs = 10.218.2.3-10.218.2.254
dns = 10.218.1.99
netmask = 255.255.255.0
subnet = 10.218.2.0/24,10.218.1.0/24
}
ipv6 {
addrs = 2001:470:ffff:2::3-2001:470:ffff:2::ffff
dns = 2001:470:ffff::99/64
subnet = 2001:470:ffff:2::/64,2001:470:ffff::/64
}
}
網站 2 使用 IKEv2 協定和機器憑證連接 CN=site2.example.com
憑證儲存在網站 1 的
/etc/swanctl/rsa/site1.example.com.pem (private key)
/etc/swanctl/x509/site1.example.com.pem (public key)
/etc/swanctl/x509ca/MyCa.cer (Root CA)
重新載入配置swanctl --load-all
為遠端存取用戶端啟用 NAT
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -j MASQUERADE