
Socks5/4/4a प्रॉक्सी समर्थन Remote Desktop Protocol / Terminal Services / Citrix / XenApp / XenDesktop के लिए
यह टूल Terminal Services (या Remote Desktop Services) और Citrix (XenApp/XenDesktop) में SOCKS प्रॉक्सी की क्षमता जोड़ता है। यह Dynamic Virtual Channel का उपयोग करता है जो हमें फ़ायरवॉल पर नया सॉकेट, कनेक्शन या पोर्ट खोलने की आवश्यकता के बिना एक खुले RDP/Citrix कनेक्शन पर संचार करने में सक्षम बनाता है।
आपको अपने क्लाइंट कंप्यूटर पर एक प्लगइन (.dll) स्थापित करने की आवश्यकता है जिसका उपयोग आप RDP/Citrix सर्वर से कनेक्ट करने के लिए करते हैं। RDP/Citrix सर्वर पर आपको प्रोजेक्ट के दूसरे हिस्से .exe का उपयोग करना होगा, जो प्लगइन और सर्वर एक्ज़िक्यूटेबल के बीच चैनल बनाता है। अधिक विवरण नीचे पाए जा सकते हैं। यदि आप इसे Citrix/XenApp/XenDesktop के साथ उपयोग करना चाहते हैं तो कृपया Citrix अनुभाग तक स्क्रॉल करें।
यदि DLL ठीक से पंजीकृत है, तो इसे हर बार प्रारंभ होने पर mstsc.exe (Remote Desktop Client) या Citrix Receiver द्वारा लोड किया जाएगा। जब सर्वर एक्ज़िक्यूटेबल सर्वर साइड पर चलता है, तो यह एक डायनामिक वर्चुअल चैनल पर DLL से वापस जुड़ता है, जो Remote Desktop Protocol की एक विशेषता है। चैनल स्थापित होने के बाद, क्लाइंट कंप्यूटर पर एक SOCKS प्रॉक्सी चालू हो जाएगी, डिफ़ॉल्ट रूप से 127.0.0.1:1080 पर। इस सेवा का उपयोग किसी भी ब्राउज़र या टूल से SOCKS5 प्रॉक्सी के रूप में किया जा सकता है।
डायनामिक वर्चुअल चैनल Window Server 2008 और Windows Vista SP1 में पेश किए गए थे। और इनसे कुछ भी उपयोग के लिए ठीक होने चाहिए। अभी क्लाइंट mstsc.exe (Remote Desktop Client) के साथ काम करता है। यदि आप इसे Unix से उपयोग करना चाहते हैं, तो FreeRDP आज़माएँ, इसने इस टूल के रिलीज़ होने के लगभग उसी समय एक समान मॉड्यूल जारी किया है। Citrix Microsoft के समान अंतर्निहित API का समर्थन करता है, हालाँकि यह सुनिश्चित नहीं है कि इसे कब पेश किया गया था, यह 2013 से पहले था, इसलिए प्लगइन को अधिकांश Citrix समाधानों के साथ काम करना चाहिए।
आप पूरे प्रोजेक्ट को प्राप्त करके स्वयं संकलित कर सकते हैं या रिलीज़ अनुभाग से संकलित बाइनरी का उपयोग कर सकते हैं। यह महत्वपूर्ण है कि सभी मामलों में सही बाइनरी का उपयोग किया जाए, कृपया संबंधित आर्किटेक्चर के लिए सही एक का चयन करें (यदि आपका क्लाइंट 32-बिट है लेकिन सर्वर 64-बिट है तो 32-बिट dll और 64-बिट exe लें)। .dll को क्लाइंट कंप्यूटर पर किसी भी निर्देशिका में रखा जाना चाहिए (दीर्घकालिक उपयोग के लिए, इसे %SYSROOT%\system32\ या %SYSROOT%\SysWoW64\ में कॉपी करने की अनुशंसा की जाती है) और निम्न कमांड के साथ एक उन्नत उपयोगकर्ता (अर्थात Administrator) के रूप में इसे स्थापित करें:
regsvr32.exe SocksOverRDP-Plugin.dll
यदि आपका उपयोगकर्ता व्यवस्थापक नहीं है, तो आपको अपने उपयोगकर्ता के अंतर्गत रजिस्ट्री सेटिंग्स भी आयात करनी होंगी। कृपया इसके लिए SocksOverRDP-Plugin.reg फ़ाइल का उपयोग करें।
यदि आप इसे हटाना चाहते हैं:
regsvr32.exe /u SocksOverRDP-Plugin.dll
अब से जब भी आप किसी RDP सर्वर से कनेक्ट होंगे, यह प्लगइन लोड होगा और रजिस्ट्री में निर्दिष्ट अनुसार स्वयं को कॉन्फ़िगर करेगा (नीचे देखें)।
.exe को सर्वर पर कॉपी करके किसी भी उपयोगकर्ता द्वारा निष्पादित करने की आवश्यकता है।
यह टूल Citrix Receiver के साथ काम करता है जिसका उपयोग Citrix सर्वर से कनेक्ट करने के लिए किया जाता है। उपयोगकर्ता को एक ऐप या पूर्ण डेस्कटॉप प्रदान किया जा सकता है, यह टूल दोनों मामलों में काम करता है यदि प्लगइन सही ढंग से स्थापित किया गया था और .exe सर्वर घटक को Citrix सर्वर पर कॉपी करके निष्पादित किया गया था।
ऐसा लगता है कि Citrix के पास केवल 32-बिट Citrix Receiver है। इसका मतलब है कि यदि आपका ऑपरेटिंग सिस्टम 64-बिट है, और आपने पहले ही संबंधित .dll को पंजीकृत कर लिया है, तो आपको .dll को अपंजीकृत करना होगा और 32-बिट संस्करण का उपयोग करना होगा। यदि आप 32-बिट OS का उपयोग करते हैं, तो आप ऊपर बताए अनुसार .dll को पंजीकृत करें।
कृपया ध्यान दें कि 64-बिट Windows में दो regsvr32.exe होते हैं, एक *%WINDIR%\system32* (x64) में और एक *%WINDIR%\SysWOW64* (x32) में, 32-बिट .dll को पंजीकृत करने के लिए बाद वाले का उपयोग करें, जो निष्पादन पर Citrix Receiver द्वारा स्वचालित रूप से लोड होगा। बाकी सब कुछ समान होना चाहिए, कृपया Github पर मुद्दे खोलने से पहले सुनिश्चित करें कि आपने readme का पालन किया है।
सर्वर घटक (.exe) को किसी कॉन्फ़िगरेशन की आवश्यकता नहीं होती है या किसी तर्क की आवश्यकता नहीं होती है। हालाँकि वर्बोसिटी के लिए एक है:
PS C:\Users\SocksOverRDP\> .\SocksOverRDP-Server.exe -h
Socks Over RDP by Balazs Bucsay [[@xoreipeip]]
Usage: SocksOverRDP-Server.exe [-v]
-h This help
-v Verbose Mode
क्लाइंट घटक (.dll) पूर्व-निर्धारित सेटिंग्स के साथ आता है, जो पंजीकृत होने पर .dll द्वारा स्वयं स्थापित की जाती हैं, या SocksOverRDP-Plugin.reg से आयात करने की आवश्यकता होती है।
क्लाइंट .dll सभी विकल्पों को रजिस्ट्री से पढ़ता है, मान निम्न कुंजी के अंतर्गत पाए जा सकते हैं:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\SocksOverRDP-Plugin
जब भी मॉड्यूल सक्षम होता है और कनेक्शन बनाने से पहले एक अनुस्मारक चेतावनी दिखाई जाती है। बिल्कुल इस तरह:

यह चेतावनी सुनिश्चित करती है कि उपयोगकर्ता को पता चले कि प्लगइन लोड है और किन सेटिंग्स के साथ।
यदि प्लगइन लोड नहीं होता है या एक्ज़िक्यूटेबल नहीं चलता है क्योंकि इसमें कुछ DLL गायब हैं, उदाहरण के लिए VCRUNTIME140.DLL, तो आप Visual C++ Redistributable for Visual Studio 2015 पैकेज स्थापित करना चाह सकते हैं।
Windows 11 ARM64 पर परीक्षण किया गया: Redistributable
Windows 11 ARM64 (Macbook Pro M1) पर स्थापना के समय निम्न त्रुटि संदेश दिखाया जाता है:
The module SocksOverRDP-Plugin.dll was located bt the call to DllRegisterServer failed with error code 0x8002801c
हालाँकि यह त्रुटि दिखाई देती है, मॉड्यूल ठीक से स्थापित हो जाता है और इसका उपयोग किया जा सकता है।
सर्वर घटक (.exe) को किसी भी उपयोगकर्ता के साथ निष्पादित किया जा सकता है, यह कम विशेषाधिकार वाले उपयोगकर्ताओं के साथ भी काम करेगा, इस घटक से जुड़े कोई सुरक्षा जोखिम नहीं हैं।
क्लाइंट घटक (.dll) डिफ़ॉल्ट रूप से केवल localhost पर सुनने के लिए कॉन्फ़िगर किया गया है, यदि इसे उदाहरण के लिए 0.0.0.0 में बदल दिया जाता है और कोई फ़ायरवॉल नहीं है या यह गलत कॉन्फ़िगर किया गया है, तो इसके परिणामस्वरूप सुरक्षा समस्या हो सकती है, क्योंकि नेटवर्क पर अन्य कंप्यूटर SOCKS प्रॉक्सी तक पहुँच सकते हैं और RDP सर्वर पर संचार कर सकते हैं।
कृपया ध्यान दें कि SOCKS सर्वर तभी चालू रहता है, जब RDP/Citrix कनेक्शन सक्रिय हो और एक्ज़िक्यूटेबल सर्वर पर चल रहा हो।
उपयोगकर्ताओं को इस टूल का उपयोग करने से रोकने का एकमात्र ज्ञात तरीका Remote Desktop Server कॉन्फ़िगरेशन में Virtual Channels को अक्षम करना है। हालाँकि यह वास्तव में इस टूल के उपयोग को रोकता है, यह कॉपी और पेस्ट को भी अक्षम कर देता है, जो उपयोगकर्ताओं के लिए एक बड़ी बाधा या बड़ी परेशानी हो सकती है।
हालाँकि RDP में डायनामिक वर्चुअल चैनलों को अक्षम करना संभव है, वही करने के लिए निम्न समाधान Citrix के लिए अप्रभावी है: https://support.citrix.com/article/CTX202153