SSH முன்னனுப்புதலின் மூலம் VPN வழியாக மட்டுமே கிடைக்கும் HTTPS தளத்தை அடைதல்
VPN வழியாக மட்டுமே கிடைக்கும் ஒரு HTTPS சேவையை உள்ளூர் SSH முன்னனுப்புதலுடன் இணைக்கவும், --connect-to மூலம் உண்மையான புரவலன் பெயரை வைத்திருங்கள், ஒரு TCP முன்னனுப்புதல் எதை மூட முடியாது என்பதை அறியுங்கள்.
ஒரு இயந்திரத்திற்கு ஏற்கனவே அனுமதிக்கப்பட்ட VPN அணுகல் உள்ளது, இரண்டாவது இயந்திரத்திற்கு சரியாக ஒரு தனிப்பட்ட HTTPS சேவை தேவை, மேலும் ஒரு உள்ளூர் SSH முன்னனுப்புதல் இரண்டாவது இயந்திரத்திற்கு சுரங்கப்பாதை கொடுக்காமல் அந்த இடைவெளியை நிரப்ப முடியும். முன்னனுப்புதல் முழு வலையமைப்பிற்கும் பதிலாக ஒரு TCP இலக்கைக் கொண்டு செல்கிறது, அந்த வரம்பே முக்கிய விஷயம். கீழே உள்ள ஐந்து படிகளை வரிசையாக முடிக்கவும், ஏனெனில் ஒவ்வொன்றும் வேறு காரணத்தால் தோல்வியடைகிறது, பிந்தைய படி முந்தைய இடைவெளியை மீட்க முடியாது. ஏதேனும் முன்நிபந்தனை இல்லாவிட்டால் இந்த வடிவமைப்பு அதைத் தீர்க்காது, கட்டளைகளை எப்படி சரிசெய்தாலும் உதவாது.
படி ஒன்று: மூன்று முன்நிபந்தனைகளை உறுதிப்படுத்துங்கள்
எந்தக் கட்டளைக்கும் பொருள் வருவதற்கு முன் மூன்று விஷயங்கள் ஏற்கனவே உண்மையாக இருக்க வேண்டும். முதல் இயந்திரத்தை முன்னனுப்பு புரவலனாகப் பயன்படுத்த அனுமதி, அதற்கு வேலை செய்யும் SSH அணுகல், மற்றும் நோக்கமுள்ள இலக்கை அனுமதிக்கும் சேவையகக் கொள்கை தேவை. கோப்பு பரிமாற்றத்திற்காக உருவாக்கப்பட்ட SSH கணக்கில் முன்னனுப்புதல் முடக்கப்பட்டிருக்கலாம், முன்னனுப்புதலை அனுமதிக்கும் சேவையகமும் அதன் வழியாக எந்த இலக்குகளை அடையலாம் என்பதைக் கட்டுப்படுத்தலாம். சோதிக்கும் முன் கேளுங்கள், ஏனெனில் ஒப்பந்தமில்லாமல் சக ஊழியரின் பணிநிலையத்தை தாவு புள்ளியாகப் பயன்படுத்துவது கட்டளை குறையின்றி இயங்கினாலும் கொள்கைச் சிக்கல்.
அந்தப் பட்டியலின் தொழில்நுட்பப் பாதியை இரண்டு கட்டளைகள் தீர்க்கின்றன. முதலாவது கணக்கும் சாவியும் ஊடாடும் கேள்வியின்றி இயங்குவதை நிரூபிக்கிறது, இரண்டாவது உள்ளமைவுக் கோப்பில் கருத்துரையிடப்பட்ட எடுத்துக்காட்டுக்குப் பதிலாக உண்மையான சேவையகக் கொள்கையை அச்சிடுகிறது.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
படி இரண்டு: loopback துறையைப் பிணைத்து அமர்வை உயிர்ப்புடன் வைத்திருங்கள்
வாடிக்கையாளர் பயன்பாட்டை இயக்கும் இயந்திரத்தில் தனிப்பட்ட சேவைக்கு ஒரு உள்ளூர் முன்னனுப்புதலைத் திறக்கவும். உள்ளூர் வலையமைப்பில் வெளியிடப்படாமல் இருக்க அதை வெளிப்படையாக loopback உடன் பிணைக்கவும், எந்த உள்ளூர் சேவையும் ஏற்கனவே வைத்திராத உயர் துறையைத் தேர்ந்தெடுக்கவும். வேலை செய்யும்போது அமர்வை இயக்கத்தில் வைத்திருங்கள், ஏனெனில் அதை மூடுவது கேட்பானையும் மூடுகிறது. ExitOnForwardFailure நிராகரிக்கப்பட்ட பிணைப்பு அல்லது ஆக்கிரமிக்கப்பட்ட துறையை முன்னனுப்புதல் இல்லாமல் நீடிக்கும் அமர்வுக்குப் பதிலாக உடனடி வெளியேற்றமாக மாற்றுகிறது, இந்த தோல்வி முறையே அதிக நேரத்தை வீணாக்குகிறது.
தனிப்பட்ட இணைப்பு தாவு புரவலனில் இருந்து உருவாக்கப்படுகிறது, எனவே அந்த புரவலனின் DNS, வழிகள், VPN கொள்கை மற்றும் சேவை அணுகல் அனைத்தும் இயங்க வேண்டும். SSH அமர்வு தாவு புரவலனிடம் இல்லாத அடைவுத் திறனை உருவாக்காது, VPN ஒருபோதும் தள்ளாத வழியை அது சரிசெய்ய முடியாது. கட்டளையின் மௌனத்தை நம்புவதற்குப் பதிலாக கேட்பான் உண்மையில் இருக்கும் இடத்தில் உறுதிப்படுத்துங்கள்.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
படி மூன்று: சாக்கெட் உள்ளூராக இருக்கும்போது HTTPS பெயரை வைத்திருங்கள்
https://127.0.0.1:9443/ ஐ உலாவுவது TLS சேவையகப் பெயரையும் பயன்பாட்டு அதிகாரத்தையும் மாற்றுகிறது. portal.lab.example க்கு வழங்கப்பட்ட சான்றிதழ் loopback முகவரிக்கு எதிராக சரிபார்க்கப்படாது, அதன் விளைவாக வரும் பிழை முன்னனுப்பு குறுக்குவழிக்குப் பதிலாக உடைந்த சான்றிதழ் போலத் தெரிகிறது. கட்டளை வரி சோதனைக்கு உண்மையான URL ஐ வைத்துக்கொண்டு சாக்கெட் இலக்கை மட்டும் மாற்றுங்கள். --connect-to அதைத்தான் செய்கிறது, கீழே பயன்படுத்தப்படும் நான்கு புல வடிவத்தை curl கையேடு ஆவணப்படுத்துகிறது.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
பெயர் URL இல், TLS கைக்குலுக்கலில், Host தலைப்பில் நீடிக்கிறது, TCP இணைப்பு மட்டும் உள்ளூர் கேட்பானுக்குச் செல்கிறது. ப்ராக்ஸி இல்லாத விருப்பம் சோதனையை இந்த முன்னனுப்புதலிலேயே வைத்திருக்கிறது, உள்ளமைக்கப்பட்ட HTTP ப்ராக்ஸி அதை இடைமறிக்க அனுமதிப்பதற்குப் பதிலாக, சான்றிதழ் சரிபார்ப்பை இயக்கத்தில் வைத்திருப்பதே முடிவை அர்த்தமுள்ளதாக்குகிறது.
படி நான்கு: ஒரு முன்னனுப்புதல் எதை மூட முடியாது என்பதை அறியுங்கள்
ஒரு TCP முன்னனுப்புதல் ஒரு இலக்குத் துறையை மூடுகிறது. இரண்டாவது புரவலன் பெயருக்கு திருப்பிவிடும், தனிப்பட்ட வலையமைப்பிற்குள் உள்ள புரவலனிடமிருந்து வளங்களை ஏற்றும் அல்லது வேறு துறைக்கு அனுப்பும் பக்கம் அதற்கான சொந்த முன்னனுப்புதலைத் தேவைப்படுத்துகிறது, அவற்றில் ஒவ்வொன்றுக்கும் முதலாவதைப் போன்ற கொள்கைச் சரிபார்ப்பு தேவை. உலாவி பணிப்பாய்வுகள் தங்கள் சொந்தத் தேவைகளைச் சேர்க்கின்றன, ஏனெனில் ப்ராக்ஸி உள்ளமைவு அல்லது உள்ளூர் பொருத்தம் மூலம் உண்மையான பெயரை உள்ளூர் துறைக்கு அனுப்ப உலாவிக்குச் சொல்ல வேண்டும். எனவே வெற்றிகரமான கட்டளை வரி சோதனை உலாவியும் வெற்றிபெறும் என்பதை நிரூபிக்காது, பாதையை நிரூபித்தாலும்.
UDP, SMB கண்டறிதல் மற்றும் கள உள்நுழைவு TCP முன்னனுப்புதலின் வழியாக சிறிதும் செல்லாது. உண்மையான தேவை பொதுவான வலையமைப்பு அணுகல் என்றால், இந்த வடிவமைப்பு தவறான கருவி, ஆதரிக்கப்படும் தொலை அணுகல் நுழைவாயிலே சரியானது.
படி ஐந்து: சுத்தம் செய்து பதிவு செய்யுங்கள்
சோதனை முடிந்ததும் அமர்வை நிறுத்தி கேட்பான் சென்றுவிட்டதை உறுதிப்படுத்துங்கள். தேர்ந்தெடுத்த துறை ஏற்கனவே ஆக்கிரமிக்கப்பட்டிருந்தால், எண்ணை விடுவிக்க தொடர்பில்லாத உள்ளூர் சேவையை நிறுத்துவதற்குப் பதிலாக வேறு பயன்படுத்தப்படாத loopback துறையைத் தேர்ந்தெடுத்து URL, சோதனைக் கட்டளை மற்றும் குறிப்பை ஒன்றாகப் புதுப்பிக்கவும். மடிக்கணினியில் முன்னனுப்புதலைத் திறந்து விட்டுச் செல்வது கண்டறிதலை நிர்வகிக்கப்படாத சேவையாக மாற்றுகிறது.
தாவு புரவலன், முன்னனுப்பிய இலக்கு, உள்ளூர் துறை மற்றும் இந்த ஏற்பாட்டை யார் அனுமதித்தார் என்பதை எழுதுங்கள். ஒருவரின் shell வரலாற்றில் மட்டும் இருக்கும் முன்னனுப்புதல் ஒரு மறுதொடக்கம் தூரத்தில் மீண்டும் விசாரணைக்கு வழிவகுக்கிறது, அடுத்த நபருக்கு மூன்று முன்நிபந்தனைகளில் எது ஏற்கனவே சரிபார்க்கப்பட்டது என்று தெரியாது.