VPN கண்டெய்னரில் DNAT: INPUT அல்ல, முன்னனுப்பல்
DNAT-க்குப் பிறகு சுரங்கப்பாதை முகவரிக்கான கோரிக்கை முன்னனுப்பப்பட்ட போக்குவரத்தாகிறது. முன்னனுப்பல் விதியைக் குறுக்கி, Docker சங்கிலியைப் படித்து, திரும்பும் பாதையை வேண்டுமென்றே தேர்ந்தெடுக்கவும்.
கோரிக்கை சுரங்கப்பாதை IP முகவரிக்கு வந்து அதே கண்டெய்னரிலிருந்து அடுத்தடுத்த சேவையின் முகவரிக்குச் செல்கிறது. அந்த இரு தருணங்களுக்கிடையே DNAT இலக்கை மீண்டும் எழுதியது, பாக்கெட் VPN கண்டெய்னருக்கு உள்ளீடாக இருப்பதை நிறுத்தியது. இப்போது அது வேறு விதியால் தீர்மானிக்கப்படும் முன்னனுப்பப்பட்ட போக்குவரத்து. இந்த மாற்றமே சுரங்கப்பாதை முகவரிக்கு சரியாகத் தோன்றும் ஃபயர்வால் விதி மொழிபெயர்க்கப்பட்ட இணைப்பில் ஏன் எந்த விளைவையும் ஏற்படுத்தவில்லை என்பதை விளக்குகிறது.
மொழிபெயர்ப்புக்குப் பிறகு பாக்கெட்டைப் பின்தொடரவும்
10.90.0.0/24 வாடிக்கையாளர் குளம் மற்றும் 10.90.0.1 சுரங்கப்பாதை முகவரியை எடுத்துக் கொள்ளுங்கள். ஒரு பாலத்தில் இரண்டு கண்டெய்னர்கள் உள்ளன: 192.0.2.2 VPN-ஐயும் 192.0.2.3 பயன்பாட்டையும் இயக்குகின்றன. ஒரு வாடிக்கையாளர் 10.90.0.1:8080 உடன் இணைகிறார், VPN கண்டெய்னரின் பெயர்வெளியில் உள்ள DNAT விதி அதை பயன்பாட்டின் உண்மையான முகவரி மற்றும் துறைமுகத்திற்கு மீண்டும் எழுதுகிறது. பின்னர் ஒரு வழி பாக்கெட்டைப் பாலத்தின் குறுக்கே அனுப்புகிறது. இந்த முகவரிகள் எடுத்துக்காட்டுக்கானவை, வரிசைப்படுத்தல் செய்முறை அல்ல.
பயன்பாடு உண்மையில் கேட்கும் துறைமுகம் ஹோஸ்ட்டில் வெளியிடப்பட்ட எந்தத் துறைமுகத்திலிருந்தும் வேறுபடலாம். இரண்டு எண்களும் ஒத்துப்போகும் என்று கருதுவதற்குப் பதிலாக கண்டெய்னருக்குள் உள்ள கேட்பவரைப் படியுங்கள்.
அனுமதி முன்னனுப்பல் பாதையில் உள்ளது
VPN கண்டெய்னருக்கு IP முன்னனுப்பல் மற்றும் வாடிக்கையாளர் குளம், பயன்பாட்டின் முகவரி, நோக்கிய துறைமுகம் ஆகியவற்றுக்கு மட்டுப்படுத்தப்பட்ட முன்னனுப்பல் முடிவு தேவை. நிறுவப்பட்ட பதில்களுக்கு அவற்றின் சொந்த அனுமதி தேவை. அசல் சுரங்கப்பாதை முகவரியுடன் பொருந்தும் விதி DNAT-க்குப் பிறகு பொருந்தாது, ஏனெனில் இலக்கு ஏற்கனவே மாறிவிட்டது. INPUT அனுமதி இப்போது இந்த ஹோஸ்ட்டை நோக்காத போக்குவரத்துக்கு தவறான கொக்கி.
எல்லையைக் குறுகலாக வைத்திருங்கள்: ஒரு மூல வரம்பு, ஒரு இலக்கு, ஒரு சேவை. தளர்வான முன்னனுப்பல் விதியை எழுதுவது எளிது, பின்னர் அதைக் காப்பது மிகவும் கடினம்.
docker exec vpn-container ip route get 192.0.2.3
docker exec vpn-container iptables -t nat -S
docker exec vpn-container iptables -S FORWARD
Docker இன் சங்கிலிகள் உங்கள் கண்டெய்னரின் சங்கிலிகள் அல்ல
கண்டெய்னர் பெயர்வெளிக்குள் உள்ள விதிகள் Docker ஹோஸ்ட்டின் விதிகள் அல்ல. போக்குவரத்து சுரங்கப்பாதை இடைமுகத்திலிருந்து பாலத்திற்கு மாறும்போது, ஹோஸ்ட்டின் பால ஃபயர்வால் வேறு முடிவை எடுக்கலாம். Docker இன் iptables பின்தளத்துடன், ஆவணப்படுத்தப்பட்ட முன்னனுப்பல் சங்கிலிகளும் DNAT-க்குப் பிறகு பொருந்தும் புள்ளிகளும் அந்த முடிவு தோன்றும் இடம்.
Docker ஃபயர்வால் குறிப்பு அந்தச் சங்கிலிகளையும் DNAT-க்குப் பிறகான பொருத்தத்தையும் விவரிக்கிறது. Docker இன் ஃபயர்வால் மேலாண்மையை முடக்கியோ ஒவ்வொரு சங்கிலியையும் தளர்வாக்கியோ விடுபட்ட ஏற்பைச் சரிசெய்ய வேண்டாம், ஏனெனில் அது நீங்கள் பயன்படுத்த முயலும் எல்லையை நீக்குகிறது.
திரும்பும் பாதையை வேண்டுமென்ற தேர்வாக்குங்கள்
மூல முகவரி பாதுகாக்கப்பட்டால், பயன்பாடு 10.90.0.x ஐக் காணும், பதில்களை VPN கண்டெய்னர் வழியாகத் திருப்பி அனுப்ப வேண்டும். இல்லையெனில் அதன் வழக்கமான Docker நுழைவாயில் அவற்றைச் சுரங்கப்பாதை இல்லாத ஹோஸ்ட்டுக்கு அனுப்பும். மாற்று, VPN கண்டெய்னரில் குறுகிய மூல மொழிபெயர்ப்பு; அது பதிலை எளிதாக்குகிறது ஆனால் பயன்பாட்டிலிருந்து வாடிக்கையாளரை மறைக்கிறது. வேண்டுமென்றே தேர்ந்தெடுத்து எதைத் தேர்ந்தெடுத்தீர்கள் என எழுதுங்கள்.
சாதாரண வாடிக்கையாளரிடமிருந்து புதிதாக அனுமதிக்கப்பட்ட இணைப்பைச் சோதித்து, தொடர்பில்லாத துறைமுகங்கள் மூடியே இருப்பதை உறுதிசெய்யுங்கள். பாக்கெட் காணாமல் போகும்போது, VPN பெயர்வெளி, பயன்பாட்டுப் பெயர்வெளி மற்றும் பயன்பாட்டின் சொந்தப் பதிவை ஆராயுங்கள். பால நுழைவாயிலுக்கு ping என்பது சேவைக்கான ஏற்புச் சோதனை அல்ல.
விதிகளைக் கண்டெய்னரின் ஆதரவு தொடக்க உள்ளமைவில் வைத்திருங்கள், ஏனெனில் மீண்டும் உருவாக்கப்படும்போது ஊடாடும் திருத்தங்கள் மறைந்துவிடும். ஹோஸ்ட் துறைமுக வெளியீடு வேறு வெளிப்பாட்டுப் பாதை, சேவை சுரங்கப்பாதை வழியாக அணுகக்கூடியது என்பதற்காக மட்டும் அது தேவையில்லை.