透過 StrongSwan VPN 路由所有流量

透過 StrongSwan VPN 路由所有流量

我對此很陌生-請原諒我的無知。我瀏覽了許多其他類似的問題但無濟於事。

嘗試設定 StrongSwan VPN,以便用戶端 C 可以連接到主機 H、分配虛擬 IP 位址並存取 H 的網路。 (由於我設定和測試時的實際限制,C和H目前位於同一網路上 - 事實上它們是同一台實體PC上的虛擬機,網路處於橋接模式,因此它們擁有自己的IP位址。)

使用 StrongSwan 5.3.0、Ubuntu 14.04(C 和 H 上)。

ipsec up home在 C 上運行並且連接似乎已建立。 H 可以 ping 指派給 C 的虛擬 IP 位址 (192.168.0.1),而 C 可以看到 ping 到其虛擬 IP 位址(使用 tcpdump 確認)。

然而,據我所知,C 上的所有流量仍然直接通過 C 的網路連接而不是通過隧道 - 如果我tcpdump ip proto \\icmp在第三個測試伺服器 (T) 上運行,並從 C ping 它,我查看帶有C真實IP位址的請求。如果我wget從 C 到 T也是如此。

我的配置如下:

# 主機上的 /etc/ipsec.conf (H)

config setup

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2

conn rw
    left=192.168.196.50
    leftcert=moonCert.pem
    [email protected]
    leftfirewall=yes
    right=%any
    rightsourceip=192.168.0.0/16
    auto=add

-

# /etc/ipsec.conf - 在客戶端 (C)

 config setup

 conn %default
     ikelifetime=60m
    keylife=20m
     rekeymargin=3m
     keyingtries=1
     keyexchange=ikev2

 conn home
     left=192.168.198.74
     leftsourceip=%config
     leftcert=carolCert.pem
     [email protected]
     leftfirewall=yes
     right=192.168.196.50
     [email protected]
     auto=add

H的真實IP位址是192.168.196.50。 C的真實IP位址是192.168.198.74。

答案1

我需要跑

sudo sysctl net.ipv6.conf.all.forwarding=1
sudo sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -j MASQUERADE

在主機上,使其將流量路由出去。

我的客戶 C 現在可以看到本地網路上的其他機器,以及網路上的一些(但不是全部,我不明白)機器。

相關內容