web-dev-qa-db-ja.com

HTTP / sを介したあらゆる種類のTCPトラフィックのトンネル

RDPまたは他のバイナリをトンネリングするソフトウェアを探していますTCPトラフィック。多くのクライアントはHTTP/Sのみを許可しているため(ファイアウォールでポート80と443のみが開いています)。

ただし、DMZ=のマシンからRDP(および他のプロトコル)をクライアントに転送する必要があります。

Function description7 大きな関数の説明を表示

この問題に対応するオープンソースまたはエンタープライズソフトウェアはありますか?

悪い解決策

F5 big ip のようなソリューションには、このソフトウェアで接続構成を作成する必要があるという問題があります。 APIを使用してこれを実行できる場合は、良い解決策になります。しかし、ゲートウェイソフトウェア全体を使用せずにトンネルコンポーネントのみを取得することを好みます。自分のソフトウェアからトンネル(1000ds)を作成する必要があるため、許可されたユーザーにトンネルアクセスを制限する必要があるため(セッションCookieで識別)

良い解決策

http://http-tunnel.sourceforge.net/

トンネルクライアントが専用サーバーではなく、クライアントブラウザー内で実行されるフラッシュのアプレットJava)である可能性がある場合は、100%一致します。

23
GreenRover

TCP over HTTP(S)をトンネリングする膨大な数のプロジェクトがあります。ニーズに最適なものを選択するために少し作業を行う必要があります(そしておそらくそれを少し変更します) 。

  • SuperTunnel (Java)。良さそうに見えますが、彼らは行儀の悪いプロキシにどう対処するかを考えているようです。

  • JHttpTunnel (Java)。 gnu httptunnelのポート、私は同じネットワークプロトコルを使用すると思います。

  • Netty HTTPトンネル(Java、Nettyの一部、非常に素晴らしいネットワークライブラリ; サンプルコード )。これにはクライアントとサーバーの両方がNettyを使用する必要があると思いますが、それ以外はNettyの通常のソケットのドロップイン置換です。

  • ProxyChains (C、Unix、非常に人気があります)

  • GNU httptunnel (C、HTTPSサポートなし、これはおそらくすべてのhttpトンネルの祖父です)

  • node-http-tunnel (Node.js)、 Net :: HTTPTunnel (Perl)、 nRedir (Python)、Corkscrew、htunnel、。 ..

SuperTunnelとJHttpTunnelはどちらもアプレットに含めることができると思うか、クライアント側でJava独自のアプリです。スタンドアロンプ​​ロキシとして実行する必要はありません。

Nettyもそれを行いますが、(私は思う)あなたのサーバーもNettyを使用する必要があります:つまり、通常のTCP connect()をサーバーに置き換えることができますTCP-over-HTTP connect()でNettyを使用しますが、他のサーバーへの任意の接続をプロキシしません(独自の単純なプロキシを作成しない限り)。

27
Alex I

Windowsの世界にいるなら、Windows 2008/2008R2/2012 SSTP VPNサービスをご覧になることを強くお勧めします。 443ポートを使用し、IIS(443))と共ホストできます。WindowsVista/7/8では魅力のように動作します。MacOSXソリューションについて聞いたことはありますが、まだそこに。

ただし、SSHの古き良きソリューションがあります。

Linuxの場合、openssh-serverをインストールするだけです。 Windowsの場合は、OpenSSHサーバーを取得してインストールします(itefix https://www.itefix.no/ からのcopSSHなど)。デフォルトの22の代わりに443を使用するようにポートを変更します。

クライアント側では、PuTTY( http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html )またはkitty( http:// kitty.9bis.net/ )Windowsまたは任意のOSの任意の種類のSSHクライアントで、ポート443(SSHサーバーがリッスンしている)を介してサーバーに接続します。

たとえば、PuTTYを介したトンネリングの手順は、いくつかのサイトにあります。

これを行うには、ローカルホストを指す必要があることを常に覚えておいてください。

Windowsには、トンネルの構成とメンテナンスの手順を簡素化するMyEnTunnel( http://nemesis2.qx.net/pages/MyEnTunnel )もあります。

ブラウザでこのトンネルを悪用するのは非常に簡単です:クライアント(PuTTY、kitty、myentunnelなど)で設定したローカルポート(e.h. localhost 8080)にソックスプロキシがあることをブラウザに伝えるだけです。

5
gkakas

Sshhという名前を書きました。 http://sourceforge.net/projects/sshh/

私は少し気を使いましたが、実際にはそれを介して後方に接続することができます。

2
stu