web-dev-qa-db-ja.com

VPN接続経由のSSH

AWS EC2サーバーがあり、オフィスネットワーク内からのみ(SSH経由で)アクセスできるように構成されています。明らかに、これは、誰かがEC2インスタンスに接続する必要があり、出張中など、オフィスの外でリモートで作業しているリモート配置には理想的ではありません。

PPTP=を介してVPNをセットアップし、オフィスネットワークに接続できます(wlan0からのローカルIPとppp0からのローカルIPの2つがあります)。どこにいても関係ありません。ただし、 EC2インスタンスにSSHで接続しても、ネットワークの外部からまだsshを実行しようとしていることがわかっているため、引き続き拒否されます。

問題は、sshトラフィックをVPNを経由するようにルーティングできないことです。これをどのように達成できるかについてのアイデアはありますか?

私のもう1つのオプションは、オフィスネットワーク内のマシンにsshを実行し、そのマシンを使用してEC2インスタンスにsshを実行することですが、過度に見えるため、これを行うのをためらっていました。

11
turntwo

AWSがSSH経由でIP "your.ec2.ip.address"に到達できると仮定しましょう。いくつかのNAT変換を適用するルーターを介してオフィスのネットワークがインターネットにアクセスしていて、オフィスのPCがインターネット上でIP "your.office.external.ip 」.

また、あなたがオフィスの[〜#〜] [〜#〜]の外にいて、世界中でラップトップが接続されているとします。

  • ローカルインターネットプロバイダーによって割り当てられたメインIPアドレス(192.168.0.33とネットマスク255.255.255.0およびdef-gw 192.168.0.1を使用するとします)。
  • リモートサーバーによってラップトップに割り当てられたPPP0アドレスPPTP(VPNトンネルが正常に確立されたら)。PPP0がリモートP2P the.remoteの.local.ppp0.ipであるとしましょう。 pptp.address。つまり、ラップトップはthe.local.ppp0.ipであることがわかり、VPNトンネルの反対側に、VPN経由でPPTPサーバーに到達できることを知っています。 、.remote.pptp.addressにあります。

そのようなシナリオで、あなたがnable-あなたのノートブックから-あなたのAWSに "your.ec2.ip.address"で到達するなら、私は問題が-推測-ルーティング:「your.ec2.ip.address」に向けられたSSHトラフィックは[〜#〜]ではありません[〜#〜]ネットブックをVPNが、代わりに、共通の外部VPNパスを通過します(別名:ローカルゲートウェイに送信されます:192.168.0.1)。

この問題を診断するには、次の方法で非常に簡単なチェックを実行できます。

  • Linux:tracepathコマンド(es .: "tracepath -n your.ec2.ip.address")
  • windows:「tracert」コマンド(例:「tracert -d your.ec2.ip.address」)

出力から、2番目のステップがPPTP=アドレスかどうかを報告するかどうかを確認できます。

トラフィックが間違ったパスに沿って移動している場合、VPN内でトラフィックをルーティングする簡単な修正は次のとおりです。

  • Linux: "route add -Host your.ec2.ip.address gw the.remote.pptp.address"
  • Windows: "route add your.ec2.ip.address mask 255.255.255.255 the.remote.pptp.address"

上記のルートを設定した後、tracert/tracepathでルーティングを再度確認できます

ルーティングが適切に設定されると、オフィス内で問題が発生する可能性が少しあります。PPTPサーバーがである場合[〜#〜]ではありません[〜 #〜]IP転送とNAT変換を行うと、IP転送または「非対称ルーティング」(の場合)がない場合に「フィルタリング」が発生する可能性が高くなります。ノートブックとyour.ec2.ip.addressの間にNATがありません:

  • お客様からアマゾンへのトラフィックは、VPNに沿ってオフィスに移動し、その後、アマゾンに移動します。
  • アマゾンからあなたへの戻りトラフィック、一般的なインターネットパスに沿ってルーティングされます...可能性は高く、どこかにドロップされます。

再度:tracepath/tracertは問題のチェックに役立ちます。

Linuxボックスでは、もう1つの非常に便利な友達が「tcpdump」です。いくつかの便利なtcpdumpコマンドは次のとおりです。

  • "tcpdump -n -iinterfaceicmp"着信/発信PING要求/応答を確認します。
  • "tcpdump -n -i Hostan.ip.add.ress)"は、an.ip.add.ressに到着/送信されたトラフィックをチェックします。
15