为VM子网路由IPsec VPN


1

我的物理计算机能够建立一个IPsec隧道(使用Strongswan)到我的互联网可访问的VPS,以便我的物理计算机的互联网流量通过我的VPS。

我也试过并成功地在我的物理机器上运行的VM中设置Strongswan。预计,我的VM可以通过我的VPS访问互联网。

我想做的是让Strongswan在我的物理计算机上运行,​​以便我所有VM的流量(在192.168.122.0/24中)通过我的VPS。我认为应该可以使用站点到站点配置(例如:https//www.strongswan.org/testing/testresults/ikev2/net2net-cert/),但是我无法让它工作。我不确定我的问题是Strongswan配置,还是我的VM网络配置,或者两者兼而有之......

我物理机上的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

使用此配置,连接已成功建立,但我的VM流量未通过它。我应该注意到ip route show table 220没有显示任何内容,这与上面链接的示例不同,我不确定我应该放在哪里...... ip route add table 220 default via 123.123.123.123 proto static不起作用。有什么想法吗?


您的虚拟化解决方案是否将从192.168.122.0/24的流量NAT到您的主机物理IP(192.168.1.2)?如果是这样,您必须避免这种情况,并添加一个接受与IPsec策略匹配的流量的规则(请参阅此处)。
ecdsa 2017年

ecdsa,非常感谢 - 这很有效!请提交您的评论作为答案,我会接受。
rantam0ct

Answers:


0

如果您的虚拟化解决方案将从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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.