私の質問は、以下の抽選を見ると分かりやすくなりそうです。そのアイデアは、何らかの理由で(会社のイントラネットにアクセスしたり、私たちの会社だけがアクセスできる一部のWebページにアクセスするなど)、自宅で会社のIPを使用してインターネットを閲覧したいということです。問題は、自分のコンピュータ「内部」にアクセスするには、正面玄関を通過する必要があることです。
もちろん、1つの解決策はGateにログインしてからマイコンピュータにアクセスしてを使用することですssh -X
。ログインすると、自宅のコンピュータにポップアップするFirefoxウィンドウを開くことができます。このアプローチの問題は、インターネットパケットだけでなくネットワーク経由でGUI全体を送信する必要があるため、非常に遅いことです。
この問題を解決するためのより良いアイデアは、で説明されているようにssh -D8080 ip.remote.company
トンネルを作成し、自分の自宅のコンピュータにFirefoxを設定し、リモートコンピュータをプロキシとして使用して、このセキュリティチャネルを介してインターネットパケット(GUIではない)を送信することです。多くのウェブページ。
もちろん、問題はゲートを通過する必要があります。これは複雑さを増すので、図の赤いトンネルではなく2つのトンネルを設定する必要があります。
図に示すように、外部から企業ネットワークを介してインターネットにトンネリングするようにポート転送(または同様のもの)を設定するにはどうすればよいですか。もちろん、3台のコンピュータすべてにアクセス権とアカウントがあります。
答え1
UnixベースのソースPCがあります...
ssh -t -l gateuser -L7777:127.0.0.1:7778 gate "ssh -l inside_user -D7778 -N inside_pc"
次に、localhostポート7777をソックスプロキシとして使用します。
接続を維持するには、autosshを使用することをお勧めします。これは別の問題かもしれません。
説明:localhostは、ポート7777をゲートウェイのポート7778に転送します。 SSHプロンプトに応答できる端末を割り当てます。ゲートで参照されているsshコマンドを実行して、ゲートのポート7778で動的転送を実行します。 (初期PCの7777に配信)
答え2
この方法を試してください。 SSHクライアント構成ファイルに次の構成を追加します(例:)~/.ssh/config
。
Host mypcinside
# replace 10.1.2.3 with the IP of your PC in the local network
# as seen from the gate.
ProxyCommand ssh -q gate nc -q0 10.1.2.3 22
DynamicForward 8080
Host gate
# replace with real hostname
Hostname gate.mycompany.com
これにより、ゲートウェイを介してコンピュータへのポート22への通常のTCP接続トンネルが作成され、ゲートウェイと同様にSSH接続が開始されます。使用
$ ssh mypcinside
つながる
要件の1つは、ゲートウェイをnc
インストールする必要があり(または他のnetcatと同様のツールで置き換える必要があります)、SSHクライアントを使用せずに通常のTCPポート22接続を開始できることです。標準構成ではこれは完全に可能ですが、これが発生しないようにするためのいくつかの重要な安全対策があります。