Windows7に接続したいAmazonEC2インスタンスでstrongSwanを実行しているサーバーがあります。strongSwanサーバーはプライベートネットワーク(ネットワーク172.16.0.0/17のIPアドレス172.16.1.15)にあり、トラフィックが転送されています。パブリックIPアドレスからのプライベートアドレス-これはAmazonが「ElasticIP」と呼んでいるものです。
別のプライベートサブネット(10.127.0.0/22)からクライアントアドレスを割り当て、2つのプライベートサブネット間でトラフィックをルーティングしたいと思います。 172.16.0.0/17サブネットはAmazonによって管理されていますが、10.127.0.0/22サブネットは現在(私のipsec.conf以外)何によっても管理されていないことに注意してください。
私のWindowsクライアントはVPNに接続しますが、プライベートネットワーク上のどのホストにも接続できません。私の理論では、クライアントルーティングの問題、またはサーバーでのiptables呼び出しの欠如に関連していますが、どちらのドメインについてもあまり知識がなく、行き詰まってしまいました。
ipsec version
レポートLinux strongSwan U4.5.2/K3.2.0-52-virtual
echo 1 > /proc/sys/net/ipv4/ip_forward
これは/etc/ipsec.confです:
config setup
plutostart=no
conn %default
keyexchange=ikev2
dpdaction=clear
dpddelay=300s
rekey=no
conn dlpvpn
left=172.16.1.15
leftauth=pubkey
leftcert=openssl-cert.pem
leftid=vpn.example.com
leftsubnet=172.16.0.0/17
right=%any
rightsourceip=10.127.0.0/22
rightauth=eap-mschapv2
rightsendcert=never
eap_identity=%any
auto=add
これは/etc/ipsec.secretsです:
: RSA openssl-key.rsa
TESTDOMAIN\testuser : EAP "testpassword"
これは/etc/strongswan.confです:
charon {
threads = 16
dns1 = 172.16.3.246
}
スプリットトンネリングを使用したい-プライベート172.16.0.0/ 17ネットワークのトラフィックのみがVPNを通過し、インターネットに向かうトラフィックはクライアントのローカルゲートウェイを使用します。これを行うには、[リモートネットワークでデフォルトゲートウェイを使用する]をオフにし、Windowsクライアントで[クラスベースのルート追加を無効にする]をオンにしました。
接続は正常に完了します。 ipconfig /all
は以下を示しています:
PPP adapter strongswan:
Description . . . . . . . . . . . : strongswan
IPv4 Address. . . . . . . . . . . : 10.127.0.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . : 172.16.3.246
ただし、172.16.0.0/17ネットワーク上のホストにpingを実行できません。実際、nslookupを実行すると、strongswan.confで指定したDNSサーバーに接続しようとしますが、そのDNSサーバー上のWiresharkは何も受信していないことを示しています。 strongSwanサーバー自体の172.16.1.15アドレスにpingを実行することすらできません。
ルートルールはWindowsで手動で追加する必要があることを理解しています。しかし、彼らは何である必要がありますか?私が思いついた唯一の答えは、コマンドroute add 172.16.0.0/17 172.16.1.15 if 45
を使用して、VPNサーバーのアドレスをゲートウェイとして使用するために172.16.0.0/17ネットワークのルートを追加することでした。しかし、それは何も変わりませんでした-私のVPNクライアントからのトラフィックは172.16.0.0/17ネットワークに到達しませんでした。
助けていただければ幸いです。ありがとう。
ここの@ecdsaの助けと、#strongswan ircチャネルの助けのおかげで、ようやくこれが機能するようになりました。
VPNクライアントのルートルールが不完全でした。これらのルールの両方を追加する必要がありました。
route add 172.16.1.15/32 10.127.0.1
route add 172.16.0.0/17 172.16.1.15
1つ目は、VPNサーバーのプライベートIPアドレスのルートを追加し、クライアントのVPNによって割り当てられたIPアドレスをゲートウェイとして指定します(route print
は、これをon-link
AKAローカルとして表示します) 。 2つ目は、質問のルートルールで実行しようとしていたことを実行します。これは、VPNサーバーをゲートウェイとして指定して、プライベートネットワーク全体のルートを追加します。
サーバーでleftsubnet=172.16.0.0/17
を指定する必要がありました。そうしないと、ルートが何であっても、IPsecポリシーでサブネットへのトラフィックが許可されませんでした。
サーバーでleftfirewall=yes
を指定して、適切なルールをiptablesに挿入する必要がありました。
Amazonインスタンスで「送信元/宛先チェック」を無効にする必要がありました。 VPNサブネットからAmazonVPCダッシュボードのセキュリティグループへのトラフィックを許可していましたが、別の設定があることに気づきませんでした。 EC2ダッシュボードで、インスタンスを右クリックして[ソース/宛先チェックの変更]に移動できます。このチェックはデフォルトで有効になっており、VPNトラフィックがVPNサーバーを離れることを防ぎます(また、他のVPCホストからVPNサブネットへのトラフィックがVPNサーバーに入るのを防ぎます)。