web-dev-qa-db-ja.com

SSHトンネルを使用してWebを閲覧する

セットアップ:

  • 完全な管理者権限を持つWindowsワークステーション。
  • 非常に制限の厳しいhttpプロキシですが、ポート80およびポート443への接続のみを受け入れます。
  • 私が完全に制御できるインターネット上のLinuxボックス。

現在、私が行っていることは機能しています。

  • Linuxボックスはsshdを実行し、ポート443でリッスンします。
  • PuTTYでは、プロキシ設定パネルでプロキシをHTTPプロキシとして設定するだけで、Linuxボックスに接続できます。

私が達成したいこと:

私のWindowsボックスでブラウザを実行し、ある種のsshトンネルを使用して、制限なしでWebを閲覧します。

これはプロキシバウンス、またはこのようなものと呼ばれていると思います。しかし、私は少し道に迷っていることを認めなければなりません。

私が理解したことから、たとえばWindowsボックスのポート8889でリッスンするなど、PuTTYへのトンネルを構成する必要があります。その後、localhost:8889にあるプロキシを使用するようにブラウザを構成できます。

物事がぼやけてきている瞬間は今です。

Linuxボックスでは、ポートフォワーディングを実行するためにSSH構成ファイルまたはそのようなものでProxyCommandを構成する必要がありますか?さらに、Linuxボックスでsquidのようなプロキシを実行する必要がありますか?ある種のチュートリアルI found Apacheを使用したセットアップについて説明します。

または、完全に間違った方向に進んでいて、WindowsとLinuxボックスの両方でProxyTunnelを実行する必要がありますか?

ご協力いただきありがとうございます。

編集:実際には、質問はもっとあります:トンネルのLinux側で何をしなければならないのですか?

3
David

これを機能させるには2つの部分があるので、別々に説明します。

サーバーへの接続:

話すことができるのは443と80のプロキシだけであると述べたように、プロキシを介してSSH接続をトンネリングする必要があります。これを行うには、PuTTYにプロキシサーバーを使用して接続するように指示します。 「プロキシ」メニューの下。 [HTTP]を選択し、企業プロキシの詳細を入力します。

あなたの投稿から、接続は正常に機能しているようです。

ローカルマシン上にSOCKSプロキシを作成するようにPuTTYを構成します

PuTTYとOpenSSHはどちらも、SOCKSプロキシのオープンをサポートしています。 OpenSSHの場合、以下を使用します。

ssh -D <port>

次に、ブラウザをそのポートに向けます。 PuTTYでは、「動的」ポートフォワードを作成します。トンネルメニューの下にあります。目的のリスニングポートを入力してから、宛先として好きなものを入力します(動的転送では無視されます)。次に、ブラウザのプロキシ設定をそのlocalhost:<port>に向けると、機能するはずです。

詳細については、PuTTYドキュメントの関連部分が http://tartarus.org/~simon/PuTTY-snapshots/htmldoc/Chapter3.html#using-port-forwarding にあります。


他の人が投稿したように、それはあなたが説明したいと思うかもしれないものではないので、あなたは企業のフィルタリングを回避したくないかもしれません:)。

2
Frenchie

Sshを使用すると、「動的ポート転送」を設定できます。手順については、 http://www.panix.com/~ruari/censorship.html を参照してください。基本的には、SOCKS5プロキシのように見えるポートをローカルマシンに設定するだけです。次に、localhost:portをプロキシとして使用するようにブラウザーを構成します。

そんなことをする前によく考えます。一部の環境では、このような企業セキュリティのバイパスが解雇の理由になります。

4
Chad Huneycutt

通常のポートフォワーディングでは、その方法で1つのサイトしか閲覧できません。

ローカルプロキシ設定を編集できる場合(これはできないと思います)、SSHサーバー側でプロキシを実行し、それにポートフォワードすることができます。

一部のSSHクライアントおよびサーバーは、アレンジメントのような低レベルのVPNをサポートしますが、完全な管理者制御がない限り(説明が非常にロックダウンされた環境を暗示しているため、サポートしていないと思います)。

1つの解決策は、ポートフォワードを使用して、VNCまたはRDCなどを実行しているリモートエンドのマシンにアクセスすることです。そのマシンをリモートコントロールできるようになると、それを使用して閲覧できますが、もちろんこれは遅くなります。

2
David Spillett

ローカルのsshトンネルを設定するとうまくいくと思います。

  1. linuxボックスのポートxxxxにhttpプロキシを設定します
  2. linuxボックスをsshローカルトンネルに接続します。sshclientコマンドは次のようにします。

    ssh -L 8899:127.0.0.1:xxxx user @ remote -p 443

PuTTYも同様ですが、ダイアログを使用します。

0
Sam Liao

残念ながら、実際にディープパケットインスペクションルーターの下にいる可能性があります。その場合、任意のポートを介したSSHトラフィックが破棄されます。

その問題の解決策は、SSHと組み合わせたSTunnelです。

私が個人的に使用しているプロキシは、セットアップと使用が簡単なprivoxy.orgです。

0
hova

この古くて良いライフハッカーの記事 は、Windowsでこれを行う方法に関する非常にユーザーフレンドリーなチュートリアルがあります。 PLUG_ALERT: ここに別のチュートリアルがあります 、まあ、私によって書かれました:-)

0
Kyle Brandt