നിങ്ങളുടെ പ്രാദേശിക ഡിഫോൾട്ട് റൂട്ട് നിലനിർത്താൻ ഒരു വരി ചേർക്കുന്നു, അതിനുശേഷം ടണൽ ആന്തരിക DNS സർവറിൽ എത്തുന്നില്ല. ആ വരി pull-filter ignore "route" ആയിരുന്നു, അതിന്റെ അർഥം "ഈ റൂട്ട് അവഗണിക്കുക" എന്നല്ല. അർഥം "ആ അഞ്ച് അക്ഷരങ്ങളിൽ തുടങ്ങുന്ന ഓരോ തള്ളിയ ഓപ്ഷനും ഉപേക്ഷിക്കുക" എന്നാണ്, സാധാരണ സർവറിൽ ഇതിൽ റൂട്ടുകൾക്കൊപ്പം route-gateway, route-metric, route-ipv6 എന്നിവയും ഉൾപ്പെടുന്നു. താഴെയുള്ള പരിശോധനാപട്ടികയാണ് മറ്റൊരാൾ ഉപയോഗിക്കേണ്ട പ്രൊഫൈൽ തൊടുന്നതിന് മുമ്പ് ഞാൻ പ്രവർത്തിപ്പിക്കുന്നത്.

ഫിൽട്ടർ തള്ളിയ ഓപ്ഷനുകളിൽ മാത്രം ബാധകമാണ്

pull-filter ടണൽ സ്ഥാപിച്ചതിനുശേഷം സർവർ അയയ്ക്കുന്ന ഓപ്ഷൻ വരികളിൽ മാത്രമേ പ്രവർത്തിക്കൂ, മറ്റൊന്നിലും ഇല്ല. നിങ്ങളുടെ പ്രാദേശിക ഫയലിൽ എഴുതിയ ഓപ്ഷനുകൾ ഇതുമൂലം ബാധിക്കപ്പെടുന്നില്ല, ആപ്ലിക്കേഷൻ ട്രാഫിക്കും ഇല്ല. ഒരു പ്രോസസ് ടണൽ ഉപയോഗിക്കുന്നത് തടയാൻ പ്രതീക്ഷിച്ചിരുന്നെങ്കിൽ, ഇത് പൂർണമായും തെറ്റായ ഉപകരണമാണ്, ഫിൽട്ടറുകളുടെ ഏത് സംയോജനവും അത് ചെയ്യില്ല.

ഈ പരിധി ഉപയോഗപ്രദമാണ്, കാരണം സർവറിന്റെ കോൺഫിഗറേഷൻ അതേപടി വിട്ട് അതിന്റെ ഒരു ഭാഗം പ്രാദേശികമായി നിരസിക്കാം. ടിക്കറ്റിൽ എഴുതാൻ യോഗ്യമായ ഒരു പരിമിതിയുമാണിത്: ഫിൽട്ടർ ഈ ക്ലയന്റ് എന്ത് സ്വീകരിക്കുന്നു എന്നത് മാറ്റുന്നു, സർവർ എന്ത് വാഗ്ദാനം ചെയ്യുന്നു എന്നതല്ല. അതേ പ്രൊഫൈലിലെ മറ്റ് ഉപയോക്താക്കളിൽ ഇതിന് ഫലമില്ല. ഓപ്ഷൻ നടപ്പിലാക്കാത്ത മറ്റൊരു ക്ലയന്റിലേക്ക് മാറുമ്പോൾ ഇത് നിലനിൽക്കുന്നുമില്ല, അതിന്മേൽ ഒരു വർക്ക്ഫ്ലോ കെട്ടുന്നതിന് മുമ്പ് ഇത് അറിയേണ്ടതാണ്.

മാതൃക എഴുതുന്നതിന് മുമ്പ് സർവർ യഥാർഥത്തിൽ എന്ത് അയയ്ക്കുന്നു എന്ന് ഉറപ്പാക്കുക. ഉയർന്ന വെർബോസിറ്റിയിൽ ക്ലയന്റ് സ്വീകരിച്ച തള്ളിയ ഓപ്ഷൻ സ്ട്രിംഗ് പ്രിന്റ് ചെയ്യുന്നു, നിങ്ങൾ താരതമ്യം ചെയ്യുന്ന കൃത്യമായ ടെക്സ്റ്റിനുള്ള ഏക സത്യസന്ധമായ ഉറവിടം അതാണ്:

sudo openvpn --config /etc/openvpn/corp.ovpn --verb 4
sudo grep -n 'pull-filter' /etc/openvpn/corp.ovpn

തള്ളിയ വരി കോമകൊണ്ട് വേർതിരിച്ച ഓപ്ഷനുകളുടെ പട്ടികയായി വായിക്കുക, ഓപ്ഷൻ പേരുകളും അവയുടെ ആർഗ്യുമെന്റുകളും സ്പേസുകൊണ്ട് വേർതിരിക്കുന്നു എന്ന് ശ്രദ്ധിക്കുക. നിങ്ങളുടെ ഫിൽട്ടർ ടെക്സ്റ്റ് ആ സ്ട്രീമുമായി താരതമ്യം ചെയ്യുന്നു, അതുകൊണ്ടാണ് അടുത്ത ഘട്ടത്തിൽ സ്പേസുകൾ ഇത്ര പ്രധാനം.

പൊരുത്തം ഒരു പ്രിഫിക്സാണ്, അതിനാൽ സ്പേസുകളാണ് എല്ലാം

താരതമ്യം ഒരു സ്ട്രിംഗ് പ്രിഫിക്സാണ്, പാഴ്സ് ചെയ്ത ഓപ്ഷൻ പേരല്ല. അതിനാൽ "route" route-gateway 10.8.0.1, route-ipv6 2001:db8::/32, route-metric 100 എന്നിവയുമായി പൊരുത്തപ്പെടുന്നു. അവസാനം ഒരു സ്പേസ് ചേർത്താൽ അത് ഉദ്ദേശിച്ച കുടുംബത്തിലേക്ക് ചുരുക്കുന്നു, പൂർണ പ്രിഫിക്സ് അതിനെ ഒരു നിർദിഷ്ട ലക്ഷ്യസ്ഥാനത്തേക്ക് കൂടുതൽ ചുരുക്കുന്നു.

Filter textWhat it actually matchesTypical outcome
"route"Every option beginning with those lettersRoutes, gateway, metric and IPv6 routes all dropped
"route "Route entries only, not the hyphenated siblingsThe routes go, the rest survives
"route 10.60."A single destination rangeThe narrowest rule, and the easiest to audit
"dhcp-option DNS"Pushed DNS settingsResolver stays local, internal names stop resolving

അവസാന വരിയാണ് സ്പ്ലിറ്റ്-ടണൽ ജോലിക്കിടയിൽ ആളുകളെ പിടിക്കുന്നത്. സ്വന്തം റിസോൾവർ നിലനിർത്തുന്നത് സാധുവായ തിരഞ്ഞെടുപ്പാണ്, ഇപ്പോൾ ഓരോ ആന്തരിക നാമവും സ്വകാര്യ സോൺ കാണാത്ത ഒരു റിസോൾവറിനെ ആശ്രയിക്കുന്നു എന്നാണ് അർഥം. അത് ഉത്പാദനത്തിൽ കണ്ടെത്തേണ്ട പാർശ്വഫലമല്ല, ബോധപൂർവം സ്വീകരിക്കേണ്ട പരിണതഫലമാണ്.

പ്രിഫിക്സ് പൊരുത്തം എന്നത് ഒരു നിയമം പിന്നീട് നിശബ്ദമായി വികസിക്കാം എന്നും അർഥമാക്കുന്നു. സർവർ നിങ്ങളുടെ ടെക്സ്റ്റിൽ തുടങ്ങുന്ന പുതിയ ഓപ്ഷൻ ചേർക്കുമ്പോൾ, ആരും നിങ്ങളുടെ പ്രൊഫൈൽ എഡിറ്റ് ചെയ്യാതെ തന്നെ ഫിൽട്ടർ അതിൽ ബാധകമാകാൻ തുടങ്ങുന്നു. അതാണ് രൂപകൽപ്പന ചെയ്യേണ്ട പരാജയ മോഡ്, ലഘൂകരണം ഓപ്ഷന്റെ കഴിയുന്നത്ര വലിയ ഭാഗം പൊരുത്തപ്പെടുത്തുക എന്നതാണ്, കഴിയുന്നത്ര ചെറിയ ഭാഗമല്ല.

മൂന്ന് ക്രിയകൾ, മൂന്ന് വ്യത്യസ്ത ഫലങ്ങൾ

accept, ignore, reject എന്നിവ ഒരേ ആശയത്തിന്റെ മൂന്ന് അക്ഷരവിന്യാസങ്ങളല്ല. പൊരുത്തത്തോട് ക്ലയന്റ് എന്ത് ചെയ്യുന്നു, ആരെങ്കിലും അത് അറിയുന്നുണ്ടോ എന്നതിൽ അവ വ്യത്യസ്തമാണ്.

ignore പൊരുത്തപ്പെടുന്ന ഓപ്ഷൻ നിശബ്ദമായി ഉപേക്ഷിക്കുന്നു, ബോധപൂർവം മാറ്റിയ ക്രമീകരണത്തിന് ഇതാണ് വേണ്ടത്. reject അത് ഉപേക്ഷിക്കുകയും ക്ലയന്റിനെ പരാതിപ്പെടാൻ അനുവദിക്കുകയും ചെയ്യുന്നു, അതിന്റെ അഭാവം പിന്നീട് കണ്ടെത്തുന്നതിന് പകരം ലോഗിൽ കാണേണ്ടപ്പോൾ ഇതാണ് വേണ്ടത്. accept പോസിറ്റീവ് രൂപമാണ്, വ്യക്തിഗത ഓപ്ഷനുകൾ നീക്കം ചെയ്യുന്നതിന് പകരം അനുമതിപ്പട്ടിക നിർമ്മിക്കുമ്പോൾ ഉപയോഗിക്കുന്നു.

നിങ്ങൾ ഏത് ക്രിയ ഉപയോഗിച്ചാലും, ഫിൽട്ടറുകൾ അവ ദൃശ്യമാകുന്ന ക്രമത്തിൽ പ്രയോഗിക്കുന്നു, അതിനാൽ രണ്ട് ഓവർലാപ്പിംഗ് നിയമങ്ങൾ ക്രമാധിഷ്ഠിതവും അവലോകനം ചെയ്യാൻ വളരെ ബുദ്ധിമുട്ടുള്ളതുമായ ഫലം നൽകുന്നു. ഓരോ ഉദ്ദേശ്യത്തിനും ഒരു നിയമം സൂക്ഷിക്കുക, ഓരോന്നിലും ഏറ്റവും നിർദിഷ്ട ടെക്സ്റ്റ് ഇടുക. അനുമതിപ്പട്ടിക വേണമെങ്കിൽ, അതേ കാര്യം കൂട്ടുന്ന ignore നിയമങ്ങളുടെ കൂമ്പാരത്തിന് പകരം കുറച്ച് accept നിയമങ്ങൾ തിരഞ്ഞെടുക്കുക. അപ്പോൾ അവലോകകർക്ക് ഫയൽ മുകളിൽനിന്ന് താഴേക്ക് വായിച്ച് ഫലം പ്രവചിക്കാം, അതാണ് സ്കെയിൽ ചെയ്യുന്ന ഏക പരിശോധന.

പ്രയോഗിച്ച റൂട്ടും റിസോൾവറും പരിശോധിക്കുക, പ്രൊഫൈൽ അല്ല

ഫയലിൽ ശരിയായി തോന്നുന്ന ഫിൽട്ടർ പോലും ഉപയോഗപ്രദമായി ഒന്നും റൂട്ട് ചെയ്യാത്ത ടണലുമായി നിങ്ങളെ വിട്ടേക്കാം. തള്ളിയ ഓപ്ഷനുകൾ ഇതിനകം പ്രയോഗിച്ചതോ ഉപേക്ഷിച്ചതോ ആയ പ്രവർത്തിക്കുന്ന സിസ്റ്റത്തിൽ ഫലം പരിശോധിക്കുക:

ip route show default
ip route show | grep -c 'proto static'
resolvectl status | grep -A4 'Link.*tun0'
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://intranet.example.internal/

ആദ്യ രണ്ട് വരികൾ തള്ളിയ ഡിഫോൾട്ട് റൂട്ട് എത്തിയോ എന്നും എത്ര സ്റ്റാറ്റിക് എൻട്രികൾ അതിജീവിച്ചു എന്നും പറയുന്നു. റിസോൾവർ ക്വറി ടണൽ ഇന്റർഫേസ് യഥാർഥത്തിൽ ഏത് സർവർ ഉപയോഗിക്കുന്നു എന്ന് കാണിക്കുന്നു, സാധാരണയായി അവിടെയാണ് DNS അത്ഭുതം പ്രത്യക്ഷപ്പെടുന്നത്. അവസാന വരി ഉപയോക്താവിന് പ്രധാനമായ ഏക ചോദ്യത്തിന് ഉത്തരം നൽകുന്നു.

അവിടെയുള്ളപ്പോൾ രണ്ട് ദിശകളും പരിശോധിക്കുക. നിങ്ങളുടെ പ്രാദേശിക ഇന്റർനെറ്റ് പ്രവർത്തിപ്പിച്ചുകൊണ്ട് ആന്തരിക നാമപരിഹാരം നിശബ്ദമായി തകർക്കുന്ന നിയമം ഉപരിപ്ലവമായ പരിശോധന പാസാകുകയും ആദ്യ യഥാർഥ ജോലിയിൽ പരാജയപ്പെടുകയും ചെയ്യുന്നു, അതിനാൽ അതേ പരിശോധനയിൽ ഒരു ആന്തരിക ഉറവിടവും ഒരു പൊതു സൈറ്റും ഉൾപ്പെടുത്തുക.

അപവാദവും അതിന്റെ ഉടമയും രേഖപ്പെടുത്തുക

ഫിൽട്ടർ ഓപ്പറേറ്ററുടെ രൂപകൽപ്പനയ്ക്കുള്ള ഒരു അപവാദമാണ്, അതിനാൽ കാരണവും അവലോകന പോയിന്റും സഹിതം എഴുതി വയ്ക്കുക. "പ്രാദേശിക ഡിഫോൾട്ട് നിലനിർത്താൻ തള്ളിയ റൂട്ടുകൾ അവഗണിക്കുന്നു" അവലോകനയോഗ്യമാണ്; പ്രൊഫൈലിലെ വെറും വരി അല്ല, അടുത്ത വ്യക്തി അത് മായ്ക്കുകയോ ഊഹിച്ച് വികസിപ്പിക്കുകയോ ചെയ്യും.

പതിപ്പും ഇവിടെ പ്രധാനമാണ്. പൊരുത്ത സ്വഭാവവും കൃത്യമായ സ്വീകൃത വാക്യഘടനയും OpenVPN 2.4, 2.5, 2.6 എന്നിവയിലുടനീളം പരിഷ്കരിക്കപ്പെട്ടിട്ടുണ്ട്, അതിനാൽ നിങ്ങൾ അയയ്ക്കുന്ന ബിൽഡിന്റെ മാനുവലിനൊപ്പം മാതൃക ഉറപ്പാക്കുക, പഴയ പതിപ്പിനെക്കുറിച്ചുള്ള ഫോറം പോസ്റ്റിനൊപ്പമല്ല. OpenVPN 2.6 മാനുവൽ ഈ ഓപ്ഷനും അതിന്റെ പൊരുത്ത നിയമവും രേഖപ്പെടുത്തുന്നു.

അവസാനമായി, സർവർ നടത്തുന്നയാളുമായി അപവാദം യോജിക്കുക. ബോധപൂർവമായ സർവർ നയത്തിന് വിരുദ്ധമായ ക്ലയന്റ്-സൈഡ് ഫിൽട്ടർ അടുത്ത ഓഡിറ്റിനായി കാത്തിരിക്കുന്ന ഒരു സപ്പോർട്ട് സംഭവമാണ്, പ്രൊഫൈൽ അയയ്ക്കുന്നതിന് മുമ്പ് അത് തീർപ്പാക്കുന്നത് ആരെങ്കിലും റൂട്ടുകൾ കാണുന്നില്ലെന്ന് ശ്രദ്ധിച്ചതിന് ശേഷം തീർപ്പാക്കുന്നതിനേക്കാൾ വളരെ വിലകുറഞ്ഞതാണ്.

അനുബന്ധ ലേഖനങ്ങൾ