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 சரிபார்ப்பை வைத்திருங்கள்.