
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 서비스를 엽니다.