രണ്ട് VPN ക്ലയന്റുകൾ, രണ്ട് പൊതു വിലാസങ്ങൾ: SNAT ഒത്തുതീർക്കുക
ഉറവിടാധിഷ്ഠിത SNAT ഒരു പൊതു വിലാസം തിരഞ്ഞെടുക്കാം, പക്ഷേ ഗേറ്റ്വേയ്ക്ക് ഇപ്പോഴും ക്ലയന്റുകളെ വേർതിരിച്ചറിയാൻ കഴിയുന്നിടത്തോളം മാത്രം. നിയമം എഴുതുന്നതിന് മുമ്പ് ശേഷിക്കുന്ന ഉറവിടം പരിശോധിക്കുക.
രണ്ട് VPN ക്ലയന്റുകൾക്ക് രണ്ട് വ്യത്യസ്ത പൊതു IPv4 വിലാസങ്ങളിലൂടെ പുറത്തുപോകാം, അത് ചെയ്യുന്ന നിയമം മിക്കാളും പ്രതീക്ഷിക്കുന്നതിലും ചെറുതാണ്. അതിനെ പ്രവർത്തിപ്പിക്കുന്നത് iptables വാക്യഘടനയല്ല, മറിച്ച് പാക്കറ്റ് എഗ്രസ് ശൃംഖലയിലെത്തുമ്പോഴുള്ള അവസ്ഥയാണ്: അവിടത്തെ ഉറവിട വിലാസം ഇപ്പോഴും ക്ലയന്റുകളെ വേർതിരിച്ചറിയണം. മുൻ masquerade ഇരുവരെയും ഒരു വിലാസത്തിൽ സംയോജിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ, ഏതെങ്കിലും ക്ലയന്റ്-അടിസ്ഥാന നിയമത്തിന് ആ വ്യത്യാസം തിരികെ കൊണ്ടുവരാനാവില്ല. ആ ചോദ്യം ആദ്യം തീർപ്പാക്കി, പിന്നീട് വിവർത്തനം എഴുതുക.
ഏത് ഐഡന്റിറ്റിയാണ് ഗേറ്റ്വേ വരെ അതിജീവിക്കുന്നത്
നിയമം പാക്കറ്റിന്റെ ഉറവിട വിലാസവുമായി പൊരുത്തപ്പെടുന്നു, VPN ഉപയോക്തൃനാമവുമായല്ല, ക്ലയന്റ് ആപ്പ് കാണിക്കുന്ന പേരുമായല്ല. വഴിയിൽ മുമ്പ് പാക്കറ്റിനെ വിവർത്തനം ചെയ്യുന്നതെല്ലാം നിങ്ങളുടെ നിയമത്തിന് ഇനി എന്ത് കാണാമെന്ന് തീരുമാനിക്കുന്നു. nat പട്ടിക ക്രമത്തിൽ പ്രവർത്തിപ്പിച്ച് ഉറവിടം ഇപ്പോഴും ഓരോ ക്ലയന്റിനും വേറെയായിരിക്കുന്ന ബിന്ദു കണ്ടെത്തുക.
iptables -t nat -S POSTROUTING
ആ പട്ടിക മുകളിൽ നിന്ന് വായിക്കുക. മുകളിലെ masquerade നിയമം പൊരുത്തപ്പെടുന്ന ഓരോ ഫ്ലോയുടെയും ഉറവിടം മാറ്റിയെഴുതുന്നു, അതിനുശേഷം വയ്ക്കുന്ന ക്ലയന്റ്-അടിസ്ഥാന എൻട്രികൾ ഇനി നിലവിലില്ലാത്ത ഒരു വിലാസവുമായി പൊരുത്തപ്പെടുന്നു. രണ്ട് LAN ഉപകരണങ്ങൾ ഒരു ടണൽ പങ്കിട്ട് ഒരു ആന്തരിക വിലാസമായി എത്തുമ്പോൾ, ഫയർവാളിന് മുമ്പ് രൂപകൽപ്പന മാറണം: അവയുടെ ഉറവിട ശ്രേണികൾ വേർതിരിച്ച് സൂക്ഷിക്കുക അല്ലെങ്കിൽ ഓരോന്നിനും സ്വന്തം ആന്തരിക വിലാസം നൽകുക.
ആന്തരിക വിലാസ വിന്യാസം പ്രാമാണീകരിച്ച ക്ലയന്റുമായി ബന്ധിപ്പിക്കുക. ആ വിലാസം മറ്റൊരു ഉപകരണത്തിന് നൽകുന്നത് എഗ്രസ് നയവും കൈമാറുന്നു, ഉറവിട വിവർത്തനം അത്രയ്ക്ക് ഐഡന്റിറ്റി തെളിവല്ല.
വിവർത്തനത്തിന് വിലാസം കണ്ടുപിടിക്കാനാവില്ല
ഓരോ പൊതു വിലാസവും ഈ എഗ്രസ് പോയിന്റിലേക്ക് വിന്യസിക്കുകയോ ഇവിടേക്ക് റൂട്ട് ചെയ്യുകയോ വേണം, മറുപടികൾ ഇവിടേക്ക് തിരികെയുള്ള വഴി കണ്ടെത്തണം. ആരും തിരികെ റൂട്ട് ചെയ്യാത്ത ഒരു വിലാസത്തിൽ നിന്ന് ട്രാഫിക് അയയ്ക്കുന്ന നിയമം ദൂരെയുള്ള അറ്റത്ത് ഉപേക്ഷിക്കപ്പെടുന്നു അല്ലെങ്കിൽ ഒരിക്കലും ആവശ്യപ്പെടാത്ത ഒരു ഹോസ്റ്റിന് മറുപടി നൽകുന്നു. ക്ലൗഡ് ദാതാവിന്റെ ഇൻസ്റ്റൻസിന്റെ പൊതു വിലാസം സാധാരണയായി പാക്കറ്റ് പുറത്തുപോകുന്നതിന് മുമ്പ് സ്വകാര്യ ഇന്റർഫേസ് വിലാസമായി വിവർത്തനം ചെയ്യുന്നു, അതിനാൽ SNAT ഉറവിടം ദാതാവ് സ്വീകരിക്കുന്ന വിലാസമായിരിക്കണം, കൺസോൾ കാണിക്കുന്ന മൂല്യമല്ല. ദാതാവിന്റെ വിലാസ മാതൃക വായിച്ച് ഓരോ പാക്കറ്റിലേക്കും പൊതു മൂല്യം പകർത്തുന്നതിനുപകരം അത് പിന്തുടരുക.
പ്രായോഗികമായി ഇതിനർത്ഥം ഫയർവാൾ തൊടുന്നതിന് മുമ്പ് ദാതാവിന്റെ കൺസോളിൽ റൂട്ട് ചെയ്ത പ്രിഫിക്സ് പരിശോധിക്കുകയും, മാപ്പിംഗ് ഒന്നിനൊന്ന് ആകുമ്പോൾ സ്വകാര്യ ഇന്റർഫേസ് വിലാസം വിവർത്തന ഉറവിടമായി ഉപയോഗിക്കുകയും ചെയ്യുക എന്നാണ്. താഴെയുള്ള ഉദാഹരണങ്ങളിലെ വിലാസങ്ങൾ ഡോക്യുമെന്റേഷൻ ശ്രേണികളിൽ നിന്നുള്ളവയാണ്, അതിനാൽ ആദ്യം മാറ്റേണ്ടത് വിലാസത്തിന്റെ പാഠം തന്നെയാണ്.
പൊതുവായ masquerade-ന് മുമ്പ് ചേർക്കുക
എന്തെങ്കിലും ചേർക്കുന്നതിന് മുമ്പ് എഗ്രസ് ഇന്റർഫേസും നിലവിലെ ശൃംഖലയും സ്ഥിരീകരിക്കുക. ആദ്യത്തേത് നിയമത്തിന് ഏത് പാക്കറ്റുകളുമായി പൊരുത്തപ്പെടാമെന്ന് തീരുമാനിക്കുന്നു, രണ്ടാമത്തേത് അതിന് മുന്നിൽ ഇതിനകം എന്താണ് നിൽക്കുന്നതെന്ന് കാണിക്കുന്നു.
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
ആദ്യ കമാൻഡ് ഇന്റർനെറ്റിലേക്കുള്ള പാക്കറ്റ് യഥാർത്ഥത്തിൽ പുറപ്പെടുന്ന ഇന്റർഫേസ് പേരിടുന്നു. രണ്ടാമത്തേത് വരി നമ്പറുകളോടെ ശൃംഖല അച്ചടിക്കുന്നു. പൊതുവായ masquerade എൻട്രി അതിന് മുകളിൽ നിൽക്കേണ്ട വരിയാണ്.
iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78
മുകളിലെ രണ്ട് നിയമങ്ങളും ഓരോ ആന്തരിക വിലാസവുമായി പൊരുത്തപ്പെടുന്നു, പൊരുത്തം എഗ്രസ് ഇന്റർഫേസിലേക്ക് പരിമിതപ്പെടുത്തുന്നു, ഉറവിടം വ്യക്തമായി സജ്ജമാക്കുന്നു. ചേർക്കുന്നതിനുപകരം ചേർക്കുക: സ്ഥാനം 1-ൽ അവ masquerade വരിക്ക് മുമ്പ് വിലയിരുത്തപ്പെടുന്നു. ഇവയുടെ ക്രമം പ്രധാനമല്ല, കാരണം അവയുടെ ഉറവിടങ്ങൾ വ്യത്യസ്തമാണ്. ens3 റൂട്ട് കമാൻഡ് റിപ്പോർട്ട് ചെയ്തത് കൊണ്ട് മാറ്റുക, മറ്റ് ഫയർവാൾ മാനേജർമാരെ അതേ ഹൂക്കുകളിൽ നിന്ന് അകറ്റി നിർത്തുക, കാരണം രണ്ട് ഉപകരണങ്ങൾ ഒരു പട്ടിക എഴുതുന്നതാണ് ശരിയായ നിയമത്തിന് ഫലമില്ലാത്തതിന്റെ സാധാരണ കാരണം.
പുതിയ ഫ്ലോ ഉപയോഗിച്ച് ഉറവിടം തെളിയിക്കുക
സ്റ്റേറ്റ്ഫുൾ NAT ഫ്ലോ ആരംഭിക്കുമ്പോൾ വിവർത്തനം ബന്ധിക്കുകയും പിന്നീടുള്ള പാക്കറ്റുകൾക്ക് അത് വീണ്ടും ഉപയോഗിക്കുകയും ചെയ്യുന്നു, അതിനാൽ മാറ്റത്തിന് മുമ്പ് തുറന്ന സെഷൻ മാറ്റത്തിന് ശേഷവും അതിന്റെ പഴയ ഉറവിടം നിലനിർത്തുന്നു. പുതുതായി ആരംഭിച്ച കണക്ഷൻ മാത്രമാണ് നിയമം തെളിയിക്കുന്നത്.
conntrack -L -s 10.88.4.20 -p tcp --dport 443
ആ എൻട്രിയുടെ മറുപടി ദിശ വായിക്കുക: അതിന്റെ ലക്ഷ്യസ്ഥാനം ദൂരെയുള്ള അറ്റം ഉറവിടമായി കാണുന്ന വിലാസമാണ്. നിങ്ങൾ ഉദ്ദേശിച്ച പൊതു വിലാസവുമായി താരതമ്യം ചെയ്യുക, പഴയ വിലാസം വഹിക്കുന്ന എൻട്രിയെ തകർന്ന നിയമമായല്ല, വളരെ നേരത്തെ ആരംഭിച്ച ഫ്ലോയുടെ തെളിവായി കാണുക. ക്ലയന്റിനോട് പുതിയ കണക്ഷൻ തുറക്കാൻ ആവശ്യപ്പെടുക, പിന്നീട് ക്വറി ആവർത്തിക്കുക. പരീക്ഷണം നിർബന്ധിക്കാൻ മുഴുവൻ ട്രാക്കിംഗ് പട്ടികയും ഫ്ലഷ് ചെയ്യുന്നത് ഗേറ്റ്വേയിലെ മറ്റെല്ലാ സെഷനുകളും തടസ്സപ്പെടുത്തുന്നു.
വിവർത്തനം ഇപ്പോഴും റൂട്ട് തിരഞ്ഞെടുക്കുന്നില്ല, ഫിൽട്ടറിലൂടെ ഫ്ലോ കടത്തിവിടുന്നില്ല, ഇൻബൗണ്ട് സേവനം പ്രസിദ്ധീകരിക്കുന്നില്ല. തെറ്റായ റൂട്ടും ഇല്ലാത്ത അനുമതി നിയമവും തികഞ്ഞ SNAT നിയമത്തിന് ശേഷവും പരാജയപ്പെടുന്നു. IPv6 ഉം ഏതെങ്കിലും ദ്വിതീയ എഗ്രസ് പാതയും പരിശോധിക്കുക, പിന്നീട് അടുത്ത മാറ്റം നിയമത്തിന്റെ പാഠത്തിൽ നിന്നല്ല, മാപ്പിംഗിൽ നിന്ന് ആരംഭിക്കാൻ ആന്തരിക-പൊതു ജോടികൾ ഫയർവാൾ ഡോക്യുമെന്റേഷനിൽ രേഖപ്പെടുത്തുക.