
Citrix 用 SOCKS プロキシ。
Ica2Tcpは、C言語で開発されたツールで、Citrix ICA接続内で任意のTCP接続をプロキシすることができます。これは、Citrixにとって、SSHにおけるssh -Dに相当するものです。
追加情報はこちら: https://www.sstic.org/2022/presentation/ica2tcp/
このツールはインターンシッププロジェクトとして開発されたもので、現在も開発中です。「現状のまま」公開されているため、コードの一部はまだ少し汚い状態です。したがって、まれにクラッシュが発生する可能性があります。よりクリーンなバージョンは進行中で、まもなくリリースされる予定です。 ただし、このバージョンに関するコメントは大歓迎です!
サーバー側のスタンドアロンバイナリと、クライアント側の共有ライブラリの両方をビルドする必要があります。 詳細については、対応するREADMEを参照してください:
便宜上、必要なすべてのCitrixヘッダーとライブラリ(Linux64クライアントおよびWin32サーバー向け)がこのリポジトリ(citrix_sdk_files/内)に含まれています。これらはすべて、公開されているVirtual Channel SDKおよびWFAPI SDKに由来します:
このリポジトリ内のCMakeLists.txtファイルを使用すると、含まれているファイルでサーバーおよびクライアントのバイナリをビルドできます。最新のSDKファイルを使用したい場合や、別のターゲットアーキテクチャ向けにビルドしたい場合は、自由にSDKを手動でダウンロードしてインストールしてください。ただし、対応するCMakeLists.txtを変更する必要があるかもしれません。
すべてがビルドされたら、クライアント共有ライブラリをインストールする必要があります。
まず、ビルド出力ファイルDRIVER.DLLを<CITRIX_INSTALL_FOLER>/ICAClient/<DRIVER_NAME>.DLLにコピーします。
次に、<CITRIX_INSTALL_FOLER>/ICAClient/config/module.ini設定ファイルを次のように変更します:
[ICA 3.0]セクションのVirtualDriverリストに<VIRTUAL_DRIVER_NAME>を追加します(<VIRTUAL_DRIVER_NAME>は任意の名前に置き換えてください)。[ICA 3.0]セクション内に、<VIRTUAL_DRIVER_NAME>=Onの行を追加します。[<VIRTUAL_DRIVER_NAME>]セクションを追加します:DriverName = <DRIVER_NAME>.DLL
LogPath = /path/to/logs/folder/
Port = <PORT_NUMBER_FOR_SOCKS> //default: 33556
Address = <LISTENING_IP_ADDRESS> //default: 127.0.0.1, use 0.0.0.0 to open the socks for non local clients
これで完了です!
クライアント側ドライバーが正しくインストールされていれば、サーバーバイナリをサーバーにコピーし、アクティブなICAセッションから実行するだけです。
これにより、module.iniファイルで指定されたアドレスとポートで、クライアント側にSOCKSサービスが開かれます。