உங்கள் SSH கிளையண்ட் வழியாக தொலை Pi-க்கு SOCKS ப்ராக்ஸி கொடுங்கள்
தொலைவு மாறும் முன்னனுப்பல் SOCKS கேட்பியை Pi-ல் வைத்து அடுத்த இணைப்பை உங்கள் மடிக்கணினியின் அனுமதிக்கப்பட்ட VPN பாதையிலிருந்து செய்கிறது. இரண்டாவது SSH சேவையகம் தேவையில்லை.
நெட்வொர்க் அணுகல் ஏற்கனவே இருக்கும் இடத்தில்தான் SOCKS ப்ராக்ஸி இயங்க வேண்டும் என்று நீங்கள் கருதுகிறீர்கள். OpenSSH கேட்பியை முற்றிலும் வேறு இடத்தில் வைக்க முடியும். தொலைவு மாறும் முன்னனுப்பல் தொலை ஹோஸ்ட்டில் SOCKS துறையைத் திறந்து ஒவ்வொரு இணைப்பையும் உங்கள் உள்ளூர் SSH கிளையண்டிலிருந்து தொடங்குகிறது, அது உங்கள் மடிக்கணினியின் அனுமதிக்கப்பட்ட VPN பாதையை எடுத்துச் செல்கிறது. Pi-க்கு வரம்புகொண்ட ப்ராக்ஸி கிடைக்கிறது; அது உங்கள் சுரங்கப்பாதையையோ உங்கள் சிறப்புரிமைகளையோ வாரிசாகப் பெறுவதில்லை.
கேட்பியும் இணைப்பு தொடங்கும் பக்கமும் வேறுபடலாம்
சாதாரண ssh -D 1080 கேட்பியை உங்கள் சொந்த இயந்திரத்தில் இயக்கி அங்கிருந்து இணைப்புகளை அனுப்புகிறது. தொலைவு மாறும் முன்னனுப்பல் அதைத் தலைகீழாக்குகிறது: கேட்பி தொலை ஹோஸ்ட்டில் தோன்றுகிறது, அது ஏற்கும் ஒவ்வொரு இணைப்பும் உள்ளூர் பக்கத்திலிருந்து திறக்கப்படுகிறது. OpenSSH கிளையண்ட் கையேடு நிலையான இலக்கு இல்லாத -R-ஐ சரியாக இந்த SOCKS4/5 அமைப்பாகப் பதிவு செய்கிறது.
மடிக்கணினியிலிருந்து ஆதரிக்கப்படும் கட்டளை இப்படித் தெரிகிறது, இதில் கணக்கு, ஹோஸ்ட்கள் மற்றும் துறை இடைநிலைகளாகக் கருதப்படுகின்றன:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
அங்கு மூன்று விவரங்கள் பயனுள்ள வேலை செய்கின்றன. -S none அமர்வைப் பகிரப்பட்ட கட்டுப்பாட்டு மாஸ்டரிலிருந்து விலக்கி வைக்கிறது, ExitOnForwardFailure பாதி திறந்த அமர்வை விட்டுவிட்டு செல்வதற்குப் பதிலாக விரைவில் தோல்வியடைகிறது, PermitRemoteOpen தொலைக் கேட்பி எவ்வளவு தூரம் செல்ல முடியும் என்பதைக் கட்டுப்படுத்துகிறது. அங்கீகரிக்கப்பட்ட Pi கணக்கைப் பயன்படுத்தி, இவற்றில் எதையும் சேர்ப்பதற்கு முன் ஹோஸ்ட் விசையைச் சரிபார்க்கவும்.
தொலைக் கேட்பி உண்மையில் எதை வெளிப்படுத்துகிறது
கேட்பியை நம்புவதற்கு முன் சேவையகத்தின் முன்னனுப்பல் கொள்கையைச் சரிபார்க்கவும். GatewayPorts no உடன் தொலை முன்னனுப்பல் loopback-உடன் பிணைந்திருக்கும், அதுவே நீங்கள் விரும்பும் வெளிப்பாடு. வைல்ட்கார்ட் முன்னனுப்பலை வலுக்கட்டாயமாக்கும் சேவையகம் அதே துறையை ஒவ்வொரு இடைமுகத்திலும் வெளியிடுகிறது, இது தனிப்பட்ட ப்ராக்ஸியை உள்ளூர் நெட்வொர்க் அடையக்கூடிய ஒன்றாக மாற்றுகிறது.
loopback-ம் ஒவ்வொரு பயனருக்குமான எல்லை அல்ல. Pi-ல் உள்ள மற்றொரு செயல்முறை துறையை அறிந்தால் 127.0.0.1:1080-உடன் இணையலாம், எனவே Pi-யின் உள்ளூர் கணக்குகளும் அதில் இயங்கும் அனைத்தும் உங்கள் அணுகல் வடிவமைப்பின் பகுதியாகும். இது இலக்குப் பட்டியலைக் குறுகலாக வைத்திருக்க ஒரு காரணம், கொள்கைச் சரிபார்ப்பைத் தவிர்க்க ஒரு காரணம் அல்ல.
நீங்கள் அடைய முயலும் பயன்பாட்டிற்கு அனுமதிக்கப்பட்ட இலக்கைக் குறிப்பாக வைத்திருங்கள். தொடர்பில்லாத ஒரு நிரல் இயங்குவதற்காக அதை வரம்பற்ற முன்னனுப்பலால் மாற்றுவது நீங்கள் தொடங்கிய சிக்கலை விட மிகத் தொலைவில் பாதையை விரிவாக்குகிறது. இலக்குப் பட்டியல் அமர்வு எதற்காக இருந்தது என்பதையும் பதிவு செய்கிறது, இது பின்னர் தணிக்கை செய்பவருக்கு உதவுகிறது. நீங்கள் பயன்படுத்திய கணக்கின் அருகில் அதை எழுதுங்கள்.
ஒரு பயன்பாட்டைப் ப்ராக்ஸி வழியாக அனுப்புங்கள்
Pi-ல் ப்ராக்ஸியைப் புரிந்துகொள்ளும் கிளையண்ட் பின்னர் கோரிக்கையைச் செய்யலாம். socks5h முன்னொட்டு இலக்கின் பெயரைப் ப்ராக்ஸிக்கு அளிக்கிறது, எனவே தேடலும் இணைப்பும் இரண்டும் மடிக்கணினிப் பக்கத்தில் நடக்கின்றன, மேலும் PermitRemoteOpen-ல் பெயரிடப்பட்ட இலக்குடன் பொருந்துகிறது:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
வழக்கமான சான்றிதழ் சரிபார்ப்பையும் பயன்பாட்டின் சொந்த அங்கீகாரத்தையும் தக்கவைத்துக் கொள்ளுங்கள். ப்ராக்ஸி TCP இணைப்பு எங்கு உருவாகிறது என்பதை மாற்றுகிறது; அது அங்கீகாரமில்லாத சேவையைப் பாதுகாப்பானதாக்காது, சுய-கையொப்பமிட்ட முனைப்புள்ளியை நம்பகமானதாகவும் மாற்றாது.
மடிக்கணினிக்கு இன்னும் அதன் சொந்த பாதையும் SSH சேவையகத்திற்கும் பயன்பாட்டிற்கும் தீர்வியல் அணுகலும் தேவை. அதன் SSH கிளையண்டின் போக்குவரத்து அனுமதிக்கப்பட்ட VPN கொள்கையால் தேர்ந்தெடுக்கப்பட வேண்டும், split-tunnel விலக்கு அந்தப் போக்குவரத்தை நீங்கள் சோதித்த பாதையிலிருந்து வேறு பாதையில் அனுப்பக்கூடும்.
பாதையை நிரூபித்து அதை மூடுங்கள்
கேட்பி நீங்கள் எதிர்பார்க்கும் இடத்தில் உள்ளது என்பதையும் நோக்கமிட்ட இலக்கு மட்டுமே பதிலளிக்கிறது என்பதையும் உறுதிப்படுத்துங்கள்:
$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
--proxy socks5h://127.0.0.1:1080 https://app.corp.example/
ExitOnForwardFailure முன்னனுப்பல் நிறுவப்பட்டதை நிரூபிக்க முடியும், இருந்தும் பயன்பாட்டில் உள்நுழைவு கீழ்நோக்கி வெற்றிபெறும் என்பதை உறுதிப்படுத்த முடியாது. துறையை மட்டுமல்ல, பயன்பாட்டைச் சோதியுங்கள். ஏற்றுக்கொண்டு பின்னர் ஒவ்வொரு கோரிக்கையையும் தோல்வியடையச் செய்யும் கேட்பி பொதுவாகச் சொல்வது சுரங்கப்பாதை தோல்வியடைந்தது அல்ல, இலக்கின் பெயர் அல்லது மடிக்கணினியின் பாதை தவறு என்பதே.
இந்த அமைப்பு TCP-ஐ மட்டுமே எடுத்துச் செல்கிறது. UDP, ICMP மற்றும் ப்ராக்ஸி அமைப்புகளைப் புறக்கணிக்கும் நிரல்கள் இதற்கு வெளியே இருக்கின்றன, SSH அமர்வு முடியும் அந்தக் கணமே முன்னனுப்பல் முடிகிறது. முடிந்ததும் அந்த அமர்வை நிறுத்தி, பயன்பாட்டில் சேர்த்த ப்ராக்ஸி அமைப்பை நீக்குங்கள்.
நிரந்தர அணுகலுக்கு அதற்குப் பதிலாக நெட்வொர்க் உரிமையாளரின் ஆதரவு பெற்ற பதிவு அல்லது நிர்வகிக்கப்பட்ட நுழைவாயிலைப் பயன்படுத்துங்கள். VPN-ன் சாதன அல்லது வளக் கட்டுப்பாடுகளைத் தவிர்க்க தலைகீழ் ப்ராக்ஸி தவறான கருவி; அந்தக் கட்டுப்பாடுகளுக்குள் பயன்படுத்தினால் அது தெளிவான வரம்புகளுடன் ஒரே அங்கீகரிக்கப்பட்ட பயன்பாட்டுப் பாதை மட்டுமே.