すべてのトラフィックをStrongSwan VPN経由でルーティングする

すべてのトラフィックをStrongSwan VPN経由でルーティングする

私はこの分野は初心者なので、無知な点をお許しください。他の同様の質問をたくさん調べましたが、役に立ちませんでした。

StrongSwan VPN を設定して、クライアント C がホスト H に接続し、仮想 IP アドレスを割り当てられ、H のネットワークにアクセスできるようにしようとしています。(設定とテスト中の実際的な制限により、C と H は現在同じネットワーク上にあります。実際、これらは同じ物理 PC 上の VM であり、ネットワークはブリッジ モードになっているため、独自の IP アドレスを取得します。)

StrongSwan 5.3.0、Ubuntu 14.04 (C と H の両方) を使用しています。

C 上で実行しipsec up home、接続が確立されているように見えます。H は C に割り当てられた仮想 IP アドレス (192.168.0.1) に ping を実行でき、C は仮想 IP アドレスに送信される ping を確認できます (tcpdump を使用して確認済み)。

しかし、私が理解する限り、C 上のすべてのトラフィックは、トンネルを経由せず、C のネットワーク接続を介して直接送信されます。3 番目のテスト サーバー (T) で実行し、C から ping を実行すると、C の実際の IP アドレスを持つ要求が表示されます。Cから T にtcpdump ip proto \\icmpping を実行した場合も同じです。wget

私の設定は次のとおりです:

# ホスト上の /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 は、ローカル ネットワーク上の他のマシンと、インターネット上の一部のマシン (すべてではないが、その理由は私にはわからない) を表示できるようになりました。

関連情報