Vpn

通過 StrongSwan VPN 路由所有流量

  • February 11, 2018

我是新手-請原諒我的無知。我已經查看了許多其他類似的問題,但無濟於事。

試圖建立一個 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 (192.168.0.1) 的虛擬 IP 地址,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
   leftid=@moon.strongswan.org
   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
    leftid=carol@strongswan.org
    leftfirewall=yes
    right=192.168.196.50
    rightid=@moon.strongswan.org
    auto=add

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

我需要跑步

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 現在可以看到本地網路上的其他機器,以及網際網路上的一些(但不是全部,我不明白)。

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