クライアント A が TCP/IP ソケットを介してサーバー B に接続するとします。これを行うためにプロキシのようなサーバーを作成することは可能ですか?
クライアント A はプロキシ X に接続します。サーバーへの認証を試みました(認証データを送信します); プロキシ X はそれらのデータを受信してサーバー B に送信し、サーバー B からの応答を取得して、結果をクライアント A に返します。
出来ますか?利用可能なソースコードはありますか?
クライアント A が TCP/IP ソケットを介してサーバー B に接続するとします。これを行うためにプロキシのようなサーバーを作成することは可能ですか?
クライアント A はプロキシ X に接続します。サーバーへの認証を試みました(認証データを送信します); プロキシ X はそれらのデータを受信してサーバー B に送信し、サーバー B からの応答を取得して、結果をクライアント A に返します。
出来ますか?利用可能なソースコードはありますか?
SOCKSについて説明しているようです。
Mentalis.orgには、 C#のProxySocketとプロキシ サーバーの実装があります。
プロキシを制御できる場合は、プロキシで使用される認証モジュールを変更して、サーバーBに対して認証することができます。XとBの両方が本物であることを確認するには、いくつかのセキュリティ問題に注意する必要があります。これは、相互認証されたSSLまたは署名されたメッセージを使用して行うことができます。
この種の認証は、ISPによって広く使用されています。彼らが通常使用するプロトコルはRADIUSであり、
http://en.wikipedia.org/wiki/RADIUS
ほとんどのプロキシサーバーには、RADIUS用の認証モジュールが組み込まれています。
ソースが利用可能なDeleGateは、すべてのデータがローカルマシンの任意のポートから任意の host:port に渡される「リレー」を設定できます。(ドキュメントの「tcprelay」コマンドを参照してください)。
これは、SSH トンネルを使用して実行できます。これを行うさまざまなサードパーティ製品があります。自分で再実装することはお勧めしません。