socat SOCKS പാലങ്ങൾ: സൈറ്റിന്റെ TLS ഹോസ്റ്റ്നെയിം സംരക്ഷിക്കുക
ഒരു SOCKS ലക്ഷ്യത്തിനായി loopback TCP ശ്രോതാവ് ഉപയോഗിക്കുകയും ആപ്പിലെ HTTP, TLS ഐഡന്റിറ്റി നിലനിർത്തുകയും ചെയ്യുക.
ആപ്പിന് SOCKS ഓപ്ഷനില്ല, പക്ഷേ തിരഞ്ഞെടുത്ത TCP വിലാസത്തിലേക്ക് കണക്റ്റ് ചെയ്യാം. സ്ഥിര-ലക്ഷ്യ അഡാപ്റ്റർക്ക് ഒരു ലക്ഷ്യത്തിനായി SOCKS സംഭാഷണം നൽകാം. അത് മറ്റൊരു പൊതു ഫോർവേഡ് പ്രോക്സി ആകേണ്ടതില്ല.
SOCKS4A നൽകുന്ന socat ബിൽഡുകൾക്ക് ഒരു ഉദാഹരണ ക്രമീകരണം ഇതാണ്:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
SOCKS എൻഡ്പോയിന്റ് ലോക്കൽ പോർട്ട് 1080 ആണ്. അഡാപ്റ്റർ ലോക്കൽ പോർട്ട് 9443-ൽ കേൾക്കുന്നു, ആ എൻഡ്പോയിന്റിൽ നിന്ന് service.example.net:443 ആവശ്യപ്പെടുന്നു. ഇവ ഉദാഹരണ മൂല്യങ്ങളാണ്, പൂർണ്ണ സേവന വിന്യാസമല്ല.
അഡാപ്റ്റർക്ക് ഒരു സ്ഥിര ലക്ഷ്യമുണ്ട്
സ്വീകരിക്കുന്ന ഓരോ TCP കണക്ഷനും അതേ സേവനം ആവശ്യപ്പെടുന്നു. 9443-ലേക്ക് കണക്റ്റ് ചെയ്യുന്ന ആപ്പ് അതിന്റെ സാധാരണ പ്രോട്ടോക്കോൾ ബൈറ്റുകൾ നൽകുന്നു; SOCKS4A ചർച്ച socat നൽകുന്നു. 9443-ലേക്ക് പുതിയ HTTP CONNECT അഭ്യർത്ഥന അയച്ചാൽ മറ്റൊരു ലക്ഷ്യം തിരഞ്ഞെടുക്കില്ല—ആ ബൈറ്റുകൾ സ്ഥിര സേവനത്തിലേക്ക് അയക്കും.
SOCKS4A ദൂര പരിഹാരത്തിനായി SOCKS എൻഡ്പോയിന്റിന് ഹോസ്റ്റ്നെയിം നൽകുന്നു. ക്ലയന്റ് തിരഞ്ഞെടുത്ത വിലാസം ഉപയോഗിക്കുന്ന SOCKS4 രൂപത്തിൽ നിന്ന് ഇത് വ്യത്യസ്തമാണ്. തിരഞ്ഞെടുത്ത അപ്സ്ട്രീം—SOCKS4 പ്രോക്സി പട്ടികയിൽ നിന്നുള്ള പൊതു സ്ഥാനാർത്ഥി ഉൾപ്പെടെ—SOCKS4A ഹോസ്റ്റ്നെയിം കൈകാര്യം ചെയ്യലും ആവശ്യമായ പ്രമാണീകരണവും പിന്തുണയ്ക്കണം; ഈ ഉദാഹരണം SOCKS5 പാസ്വേഡ് ലോഗിൻ റെസിപ്പിയല്ല.
പ്രാദേശികമായി കണക്റ്റ് ചെയ്യുക, യഥാർത്ഥ സേവനം തിരിച്ചറിയുക
ഒരു HTTPS URL https://127.0.0.1:9443/ ആക്കി മാറ്റുന്നത് ക്ലയന്റിന് TLS-നും HTTP-ക്കും ഉപയോഗിക്കാവുന്ന ഹോസ്റ്റ്നെയിം മാറ്റുന്നു. service.example.net-നുള്ള സർട്ടിഫിക്കറ്റ് loopback-ന് സാധുവായ സർട്ടിഫിക്കറ്റാകില്ല.
ക്ലയന്റ് വേർതിരിച്ച കണക്ഷൻ റൂട്ടിംഗ് പിന്തുണയ്ക്കുന്നിടത്ത്, യഥാർത്ഥ URL ഐഡന്റിറ്റി നിലനിർത്തുക. Curl ആ വ്യത്യാസം കാണിക്കാം:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
സോക്കറ്റ് ലോക്കൽ അഡാപ്റ്ററിലേക്ക് പോകുന്നു, അതേസമയം TLS പരിശോധനയും HTTP ലക്ഷ്യവും service.example.net ആയി തുടരുന്നു. മറ്റ് ആപ്പുകൾക്ക് അവരുടേതായ തുല്യ പിന്തുണയുള്ള നിയന്ത്രണം വേണം; എല്ലാ ക്ലയന്റും അത് നൽകുന്നില്ല.
loopback ബൈൻഡിംഗ് നെറ്റ്വർക്ക് എക്സ്പോഷർ പരിമിതപ്പെടുത്തുന്നു, പക്ഷേ മറ്റ് യോഗ്യമായ പ്രാദേശിക പ്രോസസ്സുകൾക്ക് ഇപ്പോഴും അതിൽ എത്താം. സേവനത്തിന്റെ ആയുസ്സും ഉപയോക്താക്കളും ഉചിതമായി നിലനിർത്തുക. loopback URL മൂലമുള്ള ഐഡന്റിറ്റി പിശക് അടിച്ചമർത്തുന്നതിന് പകരം TLS പരിശോധന നിലനിർത്തുക.