கிளவுட் எல்லையில் VPN கிளையன்ட் IPகளை பாதுகாக்கவும் அல்லது SNAT செய்யவும்
மூலத்தைப் பாதுகாப்பது ஒவ்வொரு பதிவிலும் கிளையன்டின் அடையாளத்தை வைத்திருக்கிறது, SNAT ரூட்டிங் அட்டவணையை சிறியதாக வைத்திருக்கிறது. மூன்று நிபந்தனைகள் பயன்பாட்டிற்கு எது தேவை என்று சொல்கின்றன.
VPN கிளையன்டின் முகவரியை பயன்பாடு வரை வைத்திருப்பது ஒவ்வொரு பதிவு வரியும் அனுமதிப் பட்டியலின் ஒவ்வொரு உள்ளீடும் ஒரே பொருளைக் குறிக்கச் செய்கிறது. கிளவுட் விளிம்பில் அதை மீண்டும் எழுதுவது ரூட்டிங் அட்டவணையை எளிதாக்கி பதிவுகளை குறைவான பயனுள்ளதாக்குகிறது. இரண்டு தேர்வுகளில் எதுவும் தானாக தவறில்லை, அதைத் தீர்மானிக்கும் வாதம் அரிதாகவே செயல்திறன் பற்றியது. மூன்று நிபந்தனைகள் அதைத் தீர்மானிக்கின்றன: எந்த மனிதர் இணைந்தார் என்பதை பயன்பாடு அறிய வேண்டுமா, நீங்கள் அனுப்ப விரும்பும் மூலத்தை கிளவுட் துணி ஏற்குமா, பின்னர் திரும்பும் பாதையின் பொறுப்பை யார் எடுப்பார்.
மூன்று நிபந்தனைகள் தீர்மானிக்கின்றன
பிணைய வரைபடத்திலிருந்து அல்ல, பயன்பாட்டின் தேவையிலிருந்து தொடங்குங்கள். அனுமதி அல்லது தணிக்கை தனிப்பட்ட கிளையன்ட் முகவரியைப் பொறுத்ததாக இருந்தால், அதைப் பாதுகாப்பது ஒரு செயல்பாட்டுத் தேவை, மொழிபெயர்ப்பது ஒரு பின்னடைவு. போக்குவரத்து தொலை அணுகல் பாதை வழியாக வந்தது என்பதை மட்டும் பயன்பாடு அறிய வேண்டும் என்றால், மொழிபெயர்க்கப்பட்ட முகவரி போதுமானது மற்றும் இயக்க மிகவும் மலிவானது.
இரண்டாவது நிபந்தனை இயந்திரவியல். மெய்நிகர் பிணையம் அனுப்பும் இடைமுகத்திற்கு ஒதுக்கப்படாத முகவரியை கூறும் பொதியை தானாக நம்புவதில்லை. பெரும்பாலான கிளவுட் துணிகள் அதை வெவ்வேறு வழிகளிலும் பெயர்களிலும் நடைமுறைப்படுத்துகின்றன, அதை புறக்கணிக்கும் வடிவமைப்பு வரைபடத்தில் சரியாகத் தெரியும் மற்றும் உற்பத்தியில் அமைதியாக விழும்.
மூன்றாவது நிறுவனவியல். மூலங்களைப் பாதுகாப்பது என்பது பயன்பாட்டு துணைப்பிணையத்தின் ரூட்டிங் அட்டவணை கிளையன்ட் முன்னொட்டுக்காக நுழைவாயிலை நோக்கி திரும்பிக் காட்ட வேண்டும், பின்னர் துணைப்பிணையம் சேர்க்கும் ஒவ்வொரு குழுவும் அந்த பாதையை சீரானதாக வைத்திருக்க வேண்டும். இது ஒரு முறை சிறிய செலவு, மேலும் பல்லாயிரம் கணக்குகளில் திரும்பத் திரும்பும் செலவு. இந்த நடத்தையை உறுதியளிக்கும் முன் யார் அதைச் செலுத்துவார் என்பதை முடிவு செய்யுங்கள்.
பாதை என்பது போலியான உரிமை அல்ல
திரும்பும் பாதையைச் சேர்ப்பது பதில்கள் எங்கு செல்ல வேண்டும் என்பதை உங்கள் துணைப்பிணையத்திற்குச் சொல்கிறது. அந்தப் பொதிகளை அனுப்பும் நிகழ்வுக்கு அவற்றை வெளிநாட்டு மூலத்துடன் வெளியிட அனுமதி உண்டு என்று அது துணிக்குச் சொல்லவில்லை. AWS இல் தொடர்புடைய கட்டுப்பாடு மூலம் மற்றும் இலக்கு சரிபார்ப்பு, அது ஒவ்வொரு நிகழ்வுக்கும் தெரியும்:
aws ec2 describe-instances --instance-ids i-0a1b2c3d4e5f60718 \
--query "Reservations[].Instances[].SourceDestCheck"
aws ec2 modify-instance-attribute --instance-id i-0a1b2c3d4e5f60718 \
--no-source-dest-check
ஆவணப்படுத்தப்பட்ட வேலை அனுப்புதல் என்பதாக உள்ள நிகழ்வுக்கு மட்டும் அதை அணைக்கவும், வேறு எதற்கும் அல்ல. சரிபார்ப்பை இயக்கத்தில் வைக்கும் ஒவ்வொரு பயன்பாட்டு VM உம் கடன் வாங்கிய மூலத்துடன் போக்குவரத்தை வெளியிடப் பயன்படுத்தக்கூடிய ஒரு இயந்திரம் குறைவு. உங்கள் தளம் AWS இல்லையென்றால், நடத்தை மாற்றப்படும் என்று கருதுவதற்குப் பதிலாக அதற்கு இணையான போலி-எதிர்ப்பு அல்லது அனுமதிக்கப்பட்ட முகவரி அமைப்பைத் தேடுங்கள்.
விரைவான பொதி பதிவு கன்சோலைப் படிப்பதை விட விரைவாக கேள்வியைத் தீர்க்கிறது. பதில்கள் வெளியேறி கிளையன்ட் அவற்றை ஒருபோதும் பார்க்கவில்லை என்றால், பயன்பாடு தோல்வியடையவில்லை, துணி போலி மூலத்தைத் தூக்கி எறிகிறது.
மொழிபெயர்ப்பு எதை வாங்குகிறது, எதைச் செலவாக்குகிறது
நுழைவாயிலில் மூலத்தை மீண்டும் எழுதுவது திரும்பும் பாதை பிரச்சினையை நீக்குகிறது. பயன்பாடு தனக்கு அணுகும் வழி ஏற்கனவே தெரிந்த ஒரு முகவரியைப் பார்க்கிறது, கிளையன்ட் முன்னொட்டு ஒருபோதும் கிளவுட் ரூட் அட்டவணையில் வரத் தேவையில்லை. Linux இல் விதி ஒரு வரி, உங்களால் முடிந்த குறுகிய பதிப்பை எழுதுவது மதிப்புள்ளது:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 172.20.8.0/24 -o ens5 -j SNAT --to-source 10.40.3.10
பயன்பாடு இப்போது எதைப் பதிவு செய்கிறது என்பதைக் கவனியுங்கள்: ஒவ்வொரு பயனருக்கும் 10.40.3.10, ஒவ்வொரு இணைப்பிலும், எப்போதும். அந்த மதிப்பின் மேல் கட்டப்பட்ட எந்த முகவரி அனுமதிப் பட்டியலும் இப்போது முழு தொலை அணுகல் மக்கள்தொகைக்கும் அணுகலை வழங்குகிறது, எந்த சம்பவ மதிப்பாய்வும் இது யார் என்று பதிலளிக்க நுழைவாயிலுக்குத் திரும்ப வேண்டும்.
தீர்வு மொழிபெயர்ப்பைக் கைவிடுவது அல்ல, முகவரியே அடையாளம் என்று நடிப்பதை நிறுத்துவது. கிளையன்ட் அடையாளத்தை அங்கீகரிக்கப்பட்ட புலத்தில் எடுத்துச் செல்லுங்கள், மொழிபெயர்க்கப்பட்ட டூப்பிளுடன் நுழைவாயிலில் அதைப் பதிவு செய்யுங்கள், பயன்பாடு அதன் மேல் இணைய அனுமதியுங்கள். இணைப்புச் சாவி இல்லாமல், மொழிபெயர்ப்பு ஒரு பிணையப் பிரச்சினையை நிரந்தர தடயவியல் பிரச்சினையாக மாற்றுகிறது.
ரிலே வேறு ஒரு இடைமுகம்
பயன்பாட்டின் முன் உள்ள தலைகீழ் ப்ராக்ஸி ரூட் செய்யப்பட்ட பாதையின் கேள்வியை முழுவதுமாகத் தவிர்க்கிறது. ப்ராக்ஸி தனது சொந்த பின்தள இணைப்பைத் திறக்கிறது, எனவே கிளையன்ட் முன்னொட்டு மெய்நிகர் பிணையத்திற்குள் ஒருபோதும் ரூட் செய்யக்கூடியதாக இருக்கத் தேவையில்லை, பயன்பாடு ப்ராக்ஸி அமைக்கும் தலைப்பில் அடையாளத்தைப் பெறலாம்.
அந்தத் தலைப்பு பின்தளம் அதை ப்ராக்ஸியிடமிருந்து மட்டும் ஏற்று வேறு எதிலிருந்தும் ஏற்காதபோது மட்டுமே நம்பகமானது. nginx சொற்களில் இதன் பொருள் வரும் எதையும் நம்புவதற்குப் பதிலாக நம்பகமான கூட்டாளியை வெளிப்படையாகப் பெயரிடுவது:
set_real_ip_from 10.40.3.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
பின்தளத்தை நேரடியாக அடையக்கூடிய எந்த கிளையன்டும் அதே தலைப்பைப் போலியாக உருவாக்கலாம், எனவே பின்தளம் ப்ராக்ஸி தவிர அணுக முடியாததாக இருக்க வேண்டும். இது ஃபயர்வால் உண்மை, உள்ளமைவு கருத்து அல்ல, ஸ்னிப்பெட்டை நகலெடுக்கும்போது மக்கள் தவிர்க்கும் அனுமானம் இதுவே.
ரிலே நீங்கள் வாங்குவதையும் மாற்றுகிறது. பயன்பாட்டு நிலை அடையாளத்தையும் அதைப் பதிவு செய்ய இயற்கையான இடத்தையும் பெறுகிறீர்கள்; பொதுத்தன்மையை விட்டுக்கொடுக்கிறீர்கள், ஏனெனில் ஒவ்வொரு புதிய நெறிமுறைக்கும் அதன் சொந்த ப்ராக்ஸி ஆதரவு தேவை. HTTP சேவைகளுக்கு இந்தப் பரிமாற்றம் பொதுவாக நல்லது, HTTP அல்லாத எதற்கும் பொதுவாக அது கிடைக்கவே கிடைக்காது.
ஒவ்வொரு எல்லையும் எதைப் பார்க்கிறது என்று எழுதுங்கள்
நீங்கள் எதைத் தேர்ந்தெடுத்தாலும், வடிவமைப்பு மதிப்பாய்வு ஒவ்வொரு தாவலிலும் மூல முகவரியையும் நிரூபிக்கக்கூடிய அடையாளத்தையும் பெயரிடும் ஒரு அட்டவணையுடன் முடிவடைய வேண்டும். அது இல்லாமல், முதல் சம்பவம் வெவ்வேறு கிளையன்டை விவரிக்கும் மூன்று குழுக்களை உருவாக்குகிறது.
| Boundary | Source the next hop sees | What is actually proven |
|---|---|---|
| Client to gateway | 172.20.8.14 | A certificate or credential was presented |
| Gateway to app subnet, preserved | 172.20.8.14 | The same session, if the return route exists |
| Gateway to app subnet, translated | 10.40.3.10 | Only that traffic came through the gateway |
| Proxy to backend | 10.40.3.10 plus a header | The proxy asserted an identity it authenticated |
பின்னர் தேர்ந்தெடுங்கள். பயன்பாட்டின் அனுமதி உண்மையில் கிளையன்ட் முகவரியைப் பொறுத்திருந்தால், பாதையை நீங்கள் ஏற்க முடிந்தால் மூலத்தைப் பாதுகாக்கவும். அப்படி இல்லையென்றால், அடையாளத்தை பட்டைக்கு வெளியே எடுத்துச் செல்ல முடிந்தால் மொழிபெயர்க்கவும், தளம் சார்ந்த அனுப்புதல் அமைப்புகளுக்கு AWS அனுப்பும் நிகழ்வு வழிகாட்டி பயன்படுத்தவும். சேவை HTTP பேசினால், அடையாளம் முற்றிலும் முகவரியாக இல்லாமல் இருக்க வேண்டும் என்றால் ரிலேவை நோக்கிச் செல்லுங்கள்.