അതേ സെർവർ IP, രണ്ട് വഴികൾ: OpenVPN-ന്റെ പുറം പ്രവാഹം അടയാളപ്പെടുത്തുന്നത്
VPN സെർവറിനെ ഒഴിവാക്കുന്ന ഹോസ്റ്റ് റൂട്ട് അതിലേക്കുള്ള HTTPS-ഉം ഒഴിവാക്കുന്നു. പകരം എൻക്രിപ്റ്റ് ചെയ്ത കവർ അടയാളപ്പെടുത്തുക, തുടർന്ന് അടയാളമില്ലാത്ത ട്രാഫിക്കിന് ടണൽ നൽകുക.
സാധാരണ ലൂപ്പ് സംരക്ഷണം ഒരു ഹോസ്റ്റ് റൂട്ടാണ്: VPN സെർവറിന്റെ പൊതു വിലാസത്തിലേക്കുള്ള ട്രാഫിക് അപ്ലിങ്കിലൂടെ പുറത്തേക്ക് അയക്കുക, അങ്ങനെ എൻക്രിപ്റ്റ് ചെയ്ത സെഷൻ ഒരിക്കലും അതിന്റെ സ്വന്തം ടണലിൽ പ്രവേശിക്കില്ല. അതേ സെർവറിലെ വെബ് സേവനവും ടണലിലൂടെ എത്താൻ ആഗ്രഹിക്കുന്ന നിമിഷം വരെ ഇത് പ്രവർത്തിക്കും, കാരണം ഒഴിവാക്കൽ ലക്ഷ്യത്തോട് ബന്ധിതമാണ്, ലക്ഷ്യം ഒന്നുതന്നെയാണ്. പുറത്തുകടക്കാനുള്ള വഴി, ലക്ഷ്യത്തെ അടിസ്ഥാനമാക്കിയുള്ള വർഗ്ഗീകരണം നിർത്തി ഏത് സോക്കറ്റ് പാക്കറ്റ് അയച്ചു എന്നതിനെ അടിസ്ഥാനമാക്കി വർഗ്ഗീകരിക്കാൻ തുടങ്ങുകയാണ്.
വേർതിരിക്കാൻ ആഗ്രഹിക്കുന്ന രണ്ട് പ്രവാഹങ്ങളിൽ നിന്ന് തുടങ്ങുക
ഒരു പ്രവാഹം എൻക്രിപ്റ്റ് ചെയ്ത OpenVPN ഗതാഗതം തന്നെയാണ്, അത് അപ്ലിങ്കിലൂടെ പുറത്തുപോകണം, അല്ലെങ്കിൽ ടണൽ അതിന്റെ സ്വന്തം പുറം ബന്ധം വഹിക്കും. മറ്റൊന്ന് അതേ പൊതു വിലാസത്തിലേക്കുള്ള സാധാരണ HTTPS അഭ്യർത്ഥനയാണ്, അത് ടണലിനുള്ളിൽ നിലനിർത്താൻ ആഗ്രഹിക്കുന്നു, അങ്ങനെ അത് ടണൽ ഉറവിടത്തിൽ നിന്ന് സേവനത്തിൽ എത്തുന്നു. അതേ ലക്ഷ്യം, പല സന്ദർഭങ്ങളിൽ അതേ പോർട്ട് നമ്പർ, വ്യത്യസ്തമായ ആവശ്യമായ വഴി.
ഈ വിവരണത്തിൽ 10.90.0.10-ൽ ഉള്ള ക്ലയന്റ് tun1 വഴിയാണ്, സെർവറിന്റെ പൊതു വിലാസം 198.51.100.25 ആണ്, പ്രധാന പട്ടിക തൊട്ടിട്ടില്ല, അതിന്റെ സ്വതവേയുള്ള റൂട്ട് സാധാരണ അപ്ലിങ്കിലേക്ക് പോകുന്നു. സെർവർ വശവും ആന്തരിക വഴിയിൽ വെബ് സേവനം സ്വീകരിക്കണം, ട്രാഫിക് ടണൽ ഉറവിടത്തിലേക്ക് തിരികെ അയക്കണം; പൊതു വിലാസത്തിലേക്ക് പാക്കറ്റ് അയക്കുന്നത് സെർവറിന്റെ ലിസണർ അല്ലെങ്കിൽ ഫയർവാൾ നയം റദ്ദാക്കുന്നില്ല.
എന്തെങ്കിലും മാറ്റുന്നതിന് മുൻപ് ഹോസ്റ്റിന്റെ നിലവിലെ നിയമങ്ങൾ രേഖപ്പെടുത്തി, മറ്റാരും ഉപയോഗിക്കാത്ത മൂല്യങ്ങൾ തിരഞ്ഞെടുക്കുക: ഒരു അടയാളം, ഒരു പട്ടിക നമ്പർ, മൂന്ന് നിയമ മുൻഗണനകൾ. ഈ ബന്ധത്തിലൂടെ പോകാത്ത തിരിച്ചുവരവ് വഴി സൂക്ഷിക്കുക, കാരണം ഇവിടത്തെ തെറ്റ് ബ്രൗസർ ടാബ് തകർക്കുന്നതിന് പകരം നിങ്ങളുടെ സ്വന്തം ദൂര പ്രവേശനം എടുത്തുകളയും.
കവർ വഹിക്കുന്ന സോക്കറ്റ് അടയാളപ്പെടുത്തുക
ക്ലയന്റ് കോൺഫിഗറേഷന് അതിന്റെ എൻക്രിപ്റ്റ് ചെയ്ത പുറത്തേക്കുള്ള പാക്കറ്റുകൾക്ക് ഒരു അടയാളം ലഭിക്കുന്നു, താൻ തന്നെ റൂട്ടുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് നിർത്തുന്നു, അങ്ങനെ പകരം നയം മാത്രമാണ് വഴികൾ നിർണ്ണയിക്കുന്നത്:
mark 42
route-noexec
disable-dco
ദശാംശം 42 എന്നത് ഹെക്സാഡെസിമൽ 0x2a ആണ്, ഹെക്സ് രൂപമാണ് റൂട്ടിംഗ് നിയമങ്ങൾ പൊരുത്തപ്പെടുന്നത്. link-options റഫറൻസ് mark-നെ Linux-ൽ എൻക്രിപ്റ്റ് ചെയ്ത പുറത്തേക്കുള്ള പാക്കറ്റുകൾക്ക് ബാധകമായതായി വിവരിക്കുന്നു, അതായത് നിങ്ങൾ വഴി നിയന്ത്രിക്കേണ്ട അതേ സോക്കറ്റ്. ഡാറ്റ ചാനലിന്റെ ഓഫ്ലോഡ് ഓഫ് ചെയ്യുന്നത് ഈ ഉദാഹരണത്തെ ഉപയോക്തൃ-സ്ഥല വഴിയിൽ നിർത്തുന്നു, അവിടെ അടയാളത്തിന്റെ സ്വഭാവം വിവരിച്ചതു തന്നെ.
route-noexec OpenVPN-ന്റെ സ്വയംചാലിത റൂട്ട് കൂട്ടിച്ചേർക്കലും നീക്കലും അടിച്ചമർത്തുന്നു. അവയുടെ സ്ഥാനത്ത് ഒന്നും ഇൻസ്റ്റാൾ ചെയ്യുന്നില്ല, അതിനാൽ ഈ നിമിഷം മുതൽ റൂട്ടുകളുടെ ഉടമ ടണലിന് ആവശ്യമായ ഓരോ റൂട്ടും പരിപാലിക്കണം. മാറ്റത്തിന് ശേഷം ഏതെങ്കിലും സ്വകാര്യ ലക്ഷ്യം അപ്രത്യക്ഷമായാൽ, അത് കാണാതായ പകരം നയമാണ്, അടയാളത്തിലെ തകരാറല്ല.
ഇത് ചെയ്യുമ്പോൾ 198.51.100.25-നുള്ള ഹോസ്റ്റ് റൂട്ട് പ്രധാന പട്ടികയിൽ സൂക്ഷിക്കരുത്. അത്തരം ഒരു റൂട്ട് ഡിസൈൻ ചുരുക്കാൻ ശ്രമിക്കുന്ന അതേ ഒഴിവാക്കൽ വീണ്ടും കൊണ്ടുവരും, താഴെയുള്ള ഏതെങ്കിലും നയം ചോദിക്കുന്നതിന് മുൻപ് അത് HTTPS പ്രവാഹത്തിന് വിജയിക്കും.
ബാക്കിയെല്ലാം ടണൽ പട്ടികയിലേക്ക് അയക്കുക
ടണൽ ഇന്റർഫേസ് നിലവിലുണ്ടായി അതിന്റെ വിലാസം കൈവശം വയ്ക്കുമ്പോൾ, നയം ഇങ്ങനെ കാണപ്പെടുന്നു:
ip -4 route add default dev tun1 src 10.90.0.10 table 47100
ip -4 rule add priority 20000 lookup main suppress_prefixlength 0
ip -4 rule add priority 20001 not fwmark 0x2a lookup 47100
ip -4 rule add priority 20002 not fwmark 0x2a unreachable
ആദ്യ നിയമം ഹോസ്റ്റിന്റെ പ്രത്യേക റൂട്ടുകൾ കാണാവുന്നതായി നിർത്തുന്നു, അംഗീകരിച്ച ഏതെങ്കിലും പ്രാദേശിക നെറ്റ്വർക്ക് ഉൾപ്പെടെ, അതേസമയം ഈ തിരയലിന് പ്രധാന പട്ടികയുടെ സ്വതവേയുള്ള റൂട്ട് കാണാനാകാത്തതാക്കുന്നു. ആ വ്യത്യാസം പ്രധാനമാണ്: സ്വതവേയുള്ളത് അടിച്ചമർത്തുന്നത് പട്ടിക അവഗണിക്കുന്നതിന് തുല്യമല്ല, നിങ്ങൾക്ക് ഇനിയും ആവശ്യമുള്ള പ്രാദേശിക ഒഴിവുകൾ ഇതുകൊണ്ടാണ് അതിജീവിക്കുന്നത്. ആ ഒഴിവുകൾ ഓരോന്നായി വായിക്കുക, ഫലം സർവ്വവ്യാപിയായ അടിയന്തര സ്വിച്ച് എന്ന് കരുതുന്നതിന് പകരം.
അടയാളമില്ലാത്ത ട്രാഫിക് പിന്നീട് ടണൽ പട്ടികയിലേക്ക് വീഴുന്നു, ടണൽ ഉറവിടം എടുത്ത് VPN വഴി പുറത്തുപോകുന്നു. അടയാളപ്പെടുത്തിയ ട്രാഫിക് അടുത്ത രണ്ട് നിയമങ്ങളിലെ fwmark പരിശോധനയിൽ പരാജയപ്പെട്ട് പട്ടികയിൽ താഴെയുള്ള സാധാരണ പ്രധാന തിരയലിലേക്ക് തുടരുന്നു, അവിടെ അപ്ലിങ്കിന്റെ സ്വതവേയുള്ള റൂട്ട് ഇപ്പോഴുമുണ്ട്. അവസാന unreachable നിയമമാണ് ടണൽ റൂട്ട് ഇല്ലാത്തപ്പോൾ അടയാളമില്ലാത്ത പ്രവാഹം നിശ്ശബ്ദമായി അപ്ലിങ്കിലേക്ക് തിരികെ വീഴുന്നത് തടയുന്നത്. സെലക്ടർ ആരംഭം മുതൽ അവസാനം വരെ അടയാളമാണ്, ലക്ഷ്യ വിലാസം ഒരിക്കലും തീരുമാനത്തിൽ വരില്ല.
ആ കാവൽക്കാരനെ ബന്ധം വിച്ഛേദിക്കലുകൾക്കിടയിൽ സ്ഥാനത്ത് നിർത്തുക, അത് ബാക്കി നയത്തോടൊപ്പം ഇൻസ്റ്റാൾ ചെയ്യുക, കൈകൊണ്ടല്ല. ഇന്റർഫേസിനൊപ്പം അപ്രത്യക്ഷമാകുന്ന നിയമം നയമല്ല, യാദൃച്ഛികതയാണ്. ടണൽ വീഴുമ്പോൾ നയം മായ്ക്കുന്നത് പരാജയ രീതി “തടഞ്ഞത്” എന്നതിൽ നിന്ന് “ചോർന്നത്” ആക്കി മാറ്റുന്നു, പിന്നീട് കാലഹരണപ്പെടുന്ന പഴയ ടണൽ റൂട്ട് തെറ്റായ ഇന്റർഫേസിലൂടെ പുറത്തുപോയ ട്രാഫിക്കിനെക്കാൾ വിശദീകരിക്കാൻ എളുപ്പമുള്ള പ്രശ്നമാണ്.
തിരിച്ചുവരവ് വഴിയും അതേ അടയാളം കാണട്ടെ
പുറത്തേക്കുള്ള അടയാളങ്ങൾ സംവിധാനത്തിന്റെ പകുതി മാത്രമാണ്, ഇതാണ് മിക്ക പുനർനിർമ്മാണങ്ങളും ഒഴിവാക്കുന്ന ഭാഗം. എൻക്രിപ്റ്റ് ചെയ്ത സെഷനുള്ള മറുപടികൾ അപ്ലിങ്കിൽ എത്തുന്നു, ഉറവിടം വന്ന വഴിയിലൂടെ തിരികെ അയക്കപ്പെടുമോ എന്ന് ചോദിക്കുന്ന തിരിച്ചുവരവ്-വഴി സാധൂകരണത്തിന് വിധേയമാണ്. സഹായമില്ലാതെ ആ തിരയൽ നിങ്ങളുടെ അടയാളമില്ലാത്ത ടണൽ നയം പ്രയോഗിച്ച്, പാക്കറ്റ് തെറ്റായ ഇന്റർഫേസിലാണെന്ന് തീരുമാനിക്കുന്നു.
തിരുത്തൽ ഫയർവാളിന്റെ ഉടമയുടേതാണ്: പുറത്തേക്കുള്ള ബന്ധത്തിൽ അടയാളം സംരക്ഷിക്കുക, പൊരുത്തപ്പെടുന്ന അകത്തേക്കുള്ള പാക്കറ്റുകളിൽ അത് പുനഃസ്ഥാപിക്കുക, ബന്ധപ്പെട്ട വഴിക്ക് ഉറവിട-സാധൂകരിച്ച അടയാള കൈകാര്യം പ്രവർത്തനക്ഷമമാക്കുക. OpenVPN സോക്കറ്റ് അടയാളം സജ്ജീകരിക്കുന്നത് ഈ മൂന്നിൽ ഒന്നും ചെയ്യുന്നില്ല, ക്ലയന്റ് ഓപ്ഷനുകൾ മാത്രം പട്ടികപ്പെടുത്തുന്ന പാചകം അപൂർണ്ണമാണ്. ആ സംയോജനം രേഖാമൂലം ആവശ്യപ്പെടുക, കാരണം അത് ഡിസൈനിന്റെ ഏറ്റവും കുറച്ച് കാണാവുന്ന ഭാഗവും പുനർനിർമ്മാണത്തിൽ ഏറ്റവും എളുപ്പം നഷ്ടപ്പെടുന്ന ഭാഗവുമാണ്.
അയഞ്ഞ തിരിച്ചുവരവ്-വഴി പരിശോധനയും പകരമല്ല. അയഞ്ഞ മോഡിലും ഉറവിടത്തിന് ഏതെങ്കിലും റൂട്ട് നിലവിലുണ്ടാകണം, നിങ്ങൾ ചേർത്ത unreachable കാവൽക്കാരൻ അടയാളമില്ലാത്ത തിരയലുകൾക്ക് ഒന്ന് മനഃപൂർവം നീക്കം ചെയ്യുന്നു. ഈ ഡിസൈനിനെ ആശ്രയിക്കുന്നതിന് മുൻപ് ബന്ധ-അടയാള സംയോജനം പൂർത്തിയാക്കി അവലോകനം ചെയ്യിക്കുക, ഹോസ്റ്റ് ഫിൽട്ടറുകളെ വേറിട്ട ചോദ്യമായി കാണുക: അടയാളം റൂട്ടിംഗ് സിഗ്നലാണ്, അനുമതിയല്ല. സംയോജനം ഇല്ലെങ്കിൽ ലക്ഷണം, സെഷൻ സ്ഥാപിതമായി മറുപടികൾ വന്നുതുടങ്ങുമ്പോൾത്തന്നെ നിശ്ശബ്ദമാകുന്നതാണ്.
രണ്ട് റൂട്ട് തിരയലുകളിലൂടെ ഇത് തെളിയിക്കുക
കേർണൽ രണ്ട് സന്ദർഭങ്ങൾക്ക് എന്ത് തീരുമാനിക്കുന്നു എന്ന് താരതമ്യം ചെയ്യുക, പുറത്തുകടക്കൽ അവസ്ഥയ്ക്ക് പകരം dev, src ഫീൽഡുകൾ വായിക്കുക:
ip -4 route get 198.51.100.25
ip -4 route get 198.51.100.25 mark 0x2a
ആദ്യ തിരയൽ ടണൽ ഉറവിടത്തോടെ tun1-ൽ പരിഹരിക്കപ്പെടണം, രണ്ടാമത്തേത് അപ്ലിങ്കിൽ. ഇവ കൃത്രിമ തിരയലുകളാണ്, അതിനാൽ അവ നയം തെളിയിക്കുന്നു, പ്രവർത്തിക്കുന്ന പ്രക്രിയയല്ല: പ്രവർത്തിക്കുന്ന ക്ലയന്റിന്റെ യഥാർത്ഥ ഗതാഗത വഴി വെവ്വേറെ സ്ഥിരീകരിച്ച്, പിന്നീട് സർട്ടിഫിക്കറ്റ് പരിശോധന ഓണായി വച്ച് യഥാർത്ഥ HTTPS അഭ്യർത്ഥന നടത്തുക.
പൂർത്തിയായി പ്രഖ്യാപിക്കുന്നതിന് മുൻപ് ഡിസൈൻ എന്തൊക്കെ ഉൾക്കൊള്ളുന്നില്ല എന്ന് എഴുതുക. DNS, IPv6, നിയമങ്ങളുടെ ജീവിത ചക്രം ഓരോന്നിനും സ്വന്തം തീരുമാനം വേണം, ഇത് IPv4 റൂട്ടിംഗ് ഉദാഹരണമാണ്, പൂർണ്ണ സ്വകാര്യത കോൺഫിഗറേഷനല്ല. അതിന്റെ മൂല്യം സെലക്ടറാണ്: കവറിന് അപ്ലിങ്ക് ഒഴിവ് ലഭിക്കുന്നു, അതേ വിലാസത്തിലെ സാധാരണ സേവനം അത് പാരമ്പര്യമായി സ്വീകരിക്കേണ്ടതില്ല.