私はこれに不慣れです-私の無知を許してください。私は他の多くの同様の質問を調べましたが無駄でした。
クライアントCがホストHに接続し、仮想IPアドレスを割り当て、HのネットワークにアクセスできるようにStrongSwanVPNをセットアップしようとしています。 (セットアップとテスト中の実際的な制限により、CとHは現在同じネットワーク上にあります。実際、これらは同じ物理PC上のVMであり、ネットワークはブリッジモードであるため、独自のIPアドレスを取得します。)
StrongSwan 5.3.0、Ubuntu 14.04(CとHの両方)を使用します。
Cでipsec up home
を実行すると、接続が確立されているように見えます。 HはC(192.168.0.1)に割り当てられた仮想IPアドレスにpingを実行でき、Cはその仮想IPアドレスに送信されるpingを確認できます(tcpdumpを使用して確認)。
ただし、私が理解できる限り、Cのすべてのトラフィックは、トンネルではなく、Cのネットワーク接続を介して直接送信されます。3番目のテスト、サーバー(T)、およびpingでtcpdump ip proto \\icmp
を実行した場合Cからの場合、Cの実際のIPアドレスでリクエストが表示されます。 CからTにwget
を実行した場合も、同じことが言えます。
私の設定は次のとおりです。
#/ etc/ipsec.conf on the Host(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です。
私は走る必要がありました
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は、ローカルネットワーク上の他のマシンと、インターネット上の一部(すべてではありませんが、私にはわかりません)を見ることができます。