web-dev-qa-db-ja.com

Windows7クライアントを搭載したstrongSwanサーバーはトラフィックをルーティングしません

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呼び出しの欠如に関連していますが、どちらのドメインについてもあまり知識がなく、行き詰まってしまいました。

  • サーバーにUbuntu12.04とstrongswan-ikev2をインストールしました。
  • ipsec versionレポートLinux strongSwan U4.5.2/K3.2.0-52-virtual
  • クライアントとサーバーの両方が背後にあることに注意してくださいNAT(ローカルオフィスネットワーク上にあるためクライアント、Amazonのクラウド上にあるためサーバー)。UDPポート500と4500のブロックを解除しましたAmazonダッシュボードとクライアントのファイアウォールで。
  • サーバーでIPv4転送を有効にしました:echo 1 > /proc/sys/net/ipv4/ip_forward
  • 172.16.0.0/17サブネットのAmazonのVPC管理UIにアクセスし、10.127.0.0/23サブネットとの間のすべてのトラフィックを許可しました。
  • これは/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ネットワークに到達しませんでした。

助けていただければ幸いです。ありがとう。

2

ここの@ecdsaの助けと、#strongswan ircチャネルの助けのおかげで、ようやくこれが機能するようになりました。

  1. 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サーバーをゲートウェイとして指定して、プライベートネットワーク全体のルートを追加します。

  2. サーバーでleftsubnet=172.16.0.0/17を指定する必要がありました。そうしないと、ルートが何であっても、IPsecポリシーでサブネットへのトラフィックが許可されませんでした。

  3. サーバーでleftfirewall=yesを指定して、適切なルールをiptablesに挿入する必要がありました。

  4. Amazonインスタンスで「送信元/宛先チェック」を無効にする必要がありました。 VPNサブネットからAmazonVPCダッシュボードのセキュリティグループへのトラフィックを許可していましたが、別の設定があることに気づきませんでした。 EC2ダッシュボードで、インスタンスを右クリックして[ソース/宛先チェックの変更]に移動できます。このチェックはデフォルトで有効になっており、VPNトラフィックがVPNサーバーを離れることを防ぎます(また、他のVPCホストからVPNサブネットへのトラフィックがVPNサーバーに入るのを防ぎます)。

3