
我的實體電腦能夠與我的可存取互聯網的 VPS 建立 IPsec 隧道(使用 Strongswan),以便我的實體電腦的網路流量通過我的 VPS。
我還嘗試並成功地在我的實體機上運行的虛擬機器中設定了 Strongswan。預計我的虛擬機器可以透過我的 VPS 存取互聯網。
我想做的是讓 Strongswan 在我的實體電腦上運行,以便我所有虛擬機器(192.168.122.0/24)的流量都通過我的 VPS。我認為這應該可以透過站點到站點配置來實現(示例如下:https://www.strongswan.org/testing/testresults/ikev2/net2net-cert/),但是我還沒能讓它工作。我不確定我的問題是與 Strongswan 配置有關,還是與我的虛擬機器網路配置有關,或者兩者兼而有之...
我的實體機上的 ipsec.conf:
config setup
charondebug="ike 2, cfg 2"
conn kvm-test
rightsubnet=0.0.0.0/0
keyexchange=ikev2
ike=aes256gcm128-sha512-modp8192!
esp=aes256gcm128-sha512-modp8192!
leftcert=client.pem
auto=add
right=123.123.123.123 # not my VPS's actual IP
rightcert=vpn_server.pem
leftsubnet=192.168.122.0/24
left=192.168.1.2
我的 VPS 上的 ipsec.conf:
config setup
# strictcrlpolicy=yes
# uniqueids = no
conn %default
keyexchange=ikev2
leftfirewall=yes
auto=add
leftsubnet=0.0.0.0/0
left=123.123.123.123 # not my VPS's actual IP
ike=aes256gcm128-sha512-modp8192!
esp=aes256gcm128-sha512-modp8192!
conn kvm-test
leftcert=vpn_server.pem
rightcert=client.pem
rightsubnet=192.168.122.0/24
透過此配置,連接已成功建立,但是我的虛擬機器的流量不會通過它。我應該注意,它ip route show table 220
沒有顯示任何內容,這與上面鏈接的示例不同,而且我不確定應該放在那裡......ip route add table 220 default via 123.123.123.123 proto static
不起作用。有什麼想法嗎?
答案1
如果您的虛擬化解決方案將流量從 192.168.122.0/24 NAT 到主機的實體 IP (192.168.1.2),您需要避免這種情況,並新增一條接受與 IPsec 策略相符的流量的規則。例如 (更多細節):
iptables -t nat -I POSTROUTING -s 192.168.122.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT