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