web-dev-qa-db-ja.com

3台目のコンピューターなしでNATとファイアウォールの背後にある2台のコンピューターをSSH接続する方法

自宅のLinuxボックスにSSH接続しようとしています。私の家は寮スタイルの環境です-NATそしてArchLinuxを実行している個人用ラップトップを備えたファイアウォール。私の仕事は企業スタイルのWindows7です-NATとプロキシファイアウォール、管理者権限はありません。

実行中の2つのTeamViewerポータブルを接続できます。しかし、これは私が本当に探しているものには合いません。自宅のLinuxボックスにSSHで接続し、Linuxボックスを完全にログアウトしたままにしておきたいと思っています。基本的に、そこにいないときはヘッドレスです。

トンネリングについて読んだことがありますが、トンネリングを正しく理解している場合は、両方のコンピューターが接続できるサードパーティのサーバーが必要です。私はそのようなサーバーを持っておらず、そのようなものにもお金を払いたくありません。


仕事からラップトップにSSH接続するためのシンプルで安全なソリューションは何ですか?無料で安全な「サードサーバー」はありますか?私はグーグルを上下しているが、ますます混乱しているようだ。

9
user1026169

pwnat は、おそらくこの問題に対処するオープンソースツールです。それは言う:

pwnatは、NATの背後にある任意の数のクライアントが、個別のNAT with no port forwarding and no DMZ相互に直接通信するために、任意のルーターにセットアップします。サーバーは、接続しようとしているクライアントについて何も知る必要はありません。

仲介者、プロキシ、サードパーティ、UPnP/STUN/ICE、なりすまし、DNSトリックは必要ありません。

さらに重要なことに、クライアントは、任意のリモートホスト上の任意のホストまたはポート、またはサーバーによって決定された固定ホストおよびポートに接続できます。

pwnatはこの種の接続を確立します:

マシンA(IP:192.168.1.3)-> NAT A(IP:122.xxx)->インターネット-> NAT B(IP:59。 xxx)->マシンB(192.168.2.10)

pwnatはLinuxでのみ配布されますが、記事 PWNAT:Windows準拠バージョン には Windowsバージョン が含まれています。同じ作者による PWNAT:例 も参照してください。

Pwnatで使用される方法は信じられないほど巧妙ですが、それがご使用の環境で機能するという保証はありません。

16
harrymc

個人的には、3台目のサーバーをまだ所有していない場合でも、トンネリングが最善の選択肢だと思います。

Amazon EC2は 無料利用枠 の価格設定オプションを提供しており、新規のお客様はLinux/Windowsのマイクロインスタンスを最大750時間/月、無料で1年間実行できます。私自身はこのサービスを使用していませんが、必要なときにのみ仮想サーバーを実行すると、SSHトンネルが無料で稼働すると想定しています。あなたはサービスがお金を払うことを正当化するのに十分安いと思うかもしれませんか?

Hak5 (永続性を備えた)トンネリングの優れた入門書を作成しました。 EC2インスタンスを起動してから数分以内にラップトップにアクセスできるように、仮想サーバーへの接続を試行するようにCRONトリガースクリプトを設定することもできます...

5
danielcraigie

可能な場合はポート転送を設定するのが最善のオプションですが、キャンパスがファイアウォールを実行していて、自分でポート転送を実行できない場合は、この提案を使用してください。

はい、無料の3番目のサーバーがあり、すでにそれを使用しています、TeamViewer。 TeamViewerがサービスとしてインストールされていることを確認してください(または同等のLinuxの場合は、Windowsバージョンのみを使用します)。次に、VPNドライバーを職場と自宅にインストールします。これで、職場からVPNを使用して接続できるようになり、自宅のマシンに7.x.x.xのIPアドレスが割り当てられます。次に、ターミナルセッションに参加する場合は、VPNリンクを介してSSHを実行します。

VPNのインストールオプションは詳細設定の下にあります。 enter image description here

これにより、実行できる接続の種類に応じた「VPN」オプションが追加されます。 enter image description here

3

ホームルーター/ファイアウォールでポート転送(ポート22)を設定できるはずです。そして、仕事中に自宅のパブリックIPアドレスに接続します。自宅に静的パブリックIPがない場合は、dyndnsのようなものを使用できます。

1
NetworkFish

パブリックXMPP/Toxサーバーを「3番目のサーバー」として使用できます。つまり、 TuntoxPPPoAT (PPP over Any Transport)のようなプロジェクトがあり、これらはこれらのインスタントメッセージングプロトコルをトランスポート層として使用します。

XMPPをサポートするPPPoATを試しましたが、PWNATとは異なり、このメカニズムは実際に機能します。

これを使用するには、パブリックサーバーに2つのXMPPアカウントが必要です。1つはログインするサーバー用、もう1つはクライアント用です。サーバーでpppoatを開始した後、クライアントで(両方とも適切な構成パラメーターを使用して)、すぐに接続を開始できます。

ssh [email protected]

もちろん、直接接続よりも遅くなり、速度は選択したXMPPサーバーに依存する可能性が高いですが、通常のコンソールアクティビティには十分です。

セキュリティに関しては、SSHはすでに独自の暗号化を実装しているため、完全に安全でないネットワークで機能する可能性があります。したがって、SSHを使用する場合、XMPPベースの接続が安全であるかどうかは実際には関係ありません。

0
Ruslan