VPN ക്ലയന്റ് DNS-നോട് എന്താണ് ചെയ്യുന്നതെന്ന് മിക്ക ആളുകളോടും ചോദിച്ചാൽ അവർ പറയും അത് റിസോൾവർ സെറ്റ് ചെയ്യുന്നു, അതിനാൽ ക്വറികൾ ടണലിനുള്ളിൽ സഞ്ചരിക്കുന്നു. തള്ളിവിടൽ യഥാർത്ഥമാണ്; അത് ഒരു ക്വറിയാകുന്നു എന്ന അനുമാനം അല്ല. തള്ളിവിട്ട ഓപ്ഷനും വയറിലെ പാക്കറ്റും തമ്മിൽ മൂന്ന് ഘട്ടങ്ങളുണ്ട്, ഓരോന്നും സ്വതന്ത്രമായി പരാജയപ്പെടുന്നു, എല്ലാം കേടായ DNS സെർവറിനെപ്പോലെ തോന്നുന്നു. അതുകൊണ്ടാണ് ലീക്ക്-ടെസ്റ്റ് പേജും പ്രവർത്തിക്കുന്ന ബ്രൗസറും ഒരേ നിമിഷത്തിൽ ഒരേ യന്ത്രത്തെപ്പറ്റി വിയോജിക്കാൻ കഴിയുന്നത്.

തള്ളിവിട്ട ഓപ്ഷൻ ഒരു ക്വറിയല്ല

ആദ്യ ഘട്ടം സെർവർ ക്രമീകരണങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നതാണ്, ഉദാഹരണത്തിന് ടണലിനുള്ളിലെ ഒരു റിസോൾവറിനെ പേരിടുന്ന തള്ളിവിട്ട DNS ഓപ്ഷൻ. രണ്ടാം ഘട്ടം ക്ലയന്റ് ആ ക്രമീകരണങ്ങൾ ഒരു ഇന്റർഫേസിൽ പ്രയോഗിക്കുന്നതാണ്. മൂന്നാം ഘട്ടം ഒരു ആപ്ലിക്കേഷൻ യഥാർത്ഥത്തിൽ ആ വിലാസത്തിലേക്ക് ക്വറി അയക്കുന്നതാണ്. രണ്ടാം ഘട്ടത്തിലെ പരാജയം ഓപ്ഷൻ കണക്ഷൻ ലോഗിൽ കാണാവുന്നതായി വിടുന്നു, റിസോൾവർ പട്ടിക മാറ്റമില്ലാതെ തുടരുന്നു, മൂന്നാം ഘട്ടത്തിലെ പരാജയം പൂർണ്ണമായും ശരിയായ റിസോൾവർ പട്ടിക ഉപയോഗിക്കാതെ വിടുന്നു.

മിക്ക പ്രശ്നപരിഹാരവും ആ മൂന്നിനെ ഒന്നാക്കി ചേർത്ത് VPN സെർവറിനെ കുറ്റപ്പെടുത്തുന്നു, എന്നാൽ സാധാരണയായി തന്റെ പങ്ക് ചെയ്തുവെന്ന് തെളിയിക്കാൻ കഴിയുന്ന ഏക കക്ഷി അതാണ്. പകരം ക്ലയന്റിന്റെ യഥാർത്ഥ റിസോൾവർ അവസ്ഥ വായിക്കുക, പിന്നെ ഒരു ക്വറി പുറത്തുപോകുന്നത് നിരീക്ഷിക്കുക. ആ രണ്ട് നിരീക്ഷണങ്ങൾ കോൺഫിഗറേഷനെ റൂട്ടിംഗിൽനിന്നും നയത്തിൽനിന്നും വേർതിരിക്കുന്നു, അവയ്ക്ക് ഏകദേശം അഞ്ച് മിനിറ്റ് എടുക്കും. ക്യാപ്ചറുകൾ സൂക്ഷിക്കുക, കാരണം അടുത്ത എഞ്ചിനീയർക്ക് അവയുടെ വിവരണമല്ല, മുൻപും പിൻപും വേണം.

ഇന്റർഫേസ് യഥാർത്ഥത്തിൽ എന്താണ് വഹിക്കുന്നതെന്ന് പരിശോധിക്കുക

Linux-ൽ സിസ്റ്റം റിസോൾവർ സാധാരണ ഫയലോ NetworkManager-ഓ systemd-resolved-ഓ ആകാം, അവയിൽ ഏതാണ് അതിനെ കൈവശം വയ്ക്കുന്നതെന്നത് തള്ളിവിട്ട സെർവർ എവിടെ ഇറങ്ങുന്നു എന്ന് തീരുമാനിക്കുന്നു. കമാൻഡ്-ലൈൻ OpenVPN പ്രോസസ്സ് സ്വയം സിസ്റ്റം റിസോൾവർ പുതുക്കുന്നില്ല, അതിനാൽ രേഖപ്പെടുത്തിയ സംയോജനം up/down സ്ക്രിപ്റ്റോ ക്രമീകരണങ്ങൾ എങ്ങനെ പ്രയോഗിക്കാമെന്ന് ഇതിനകം അറിയുന്ന ഒരു കണക്ഷൻ മാനേജറോ ആണ്. രണ്ടും ഒരുമിച്ച് ഓടിക്കുന്നത് ഒരു മത്സരം സൃഷ്ടിക്കാനുള്ള കാര്യക്ഷമമായ മാർഗമാണ്.

resolvectl status
cat /etc/resolv.conf

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

ഒരു ക്വറിയെ യന്ത്രത്തിന് പുറത്തേക്ക് പിന്തുടരുക

രണ്ട് ഇന്റർഫേസുകളും ഒരേസമയം ക്യാപ്ചർ ചെയ്യുക, പിന്നെ ആന്തരിക റിസോൾവർ ഉപയോഗിക്കേണ്ട ഒരു പേര് റിസോൾവ് ചെയ്യുക. ആ ജോടി ക്യാപ്ചറുകൾ ഏതൊരു കോൺഫിഗറേഷൻ ഔട്ട്പുട്ടിനും ഉത്തരം നൽകാൻ കഴിയാത്തതിന് ഉത്തരം നൽകുന്നു.

sudo tcpdump -ni tun0 port 53
sudo tcpdump -ni any port 53

ഫിസിക്കൽ ഇന്റർഫേസിൽ പ്രത്യക്ഷപ്പെടുകയും ടണലിൽ ഒരിക്കലും പ്രത്യക്ഷപ്പെടാതിരിക്കുകയും ചെയ്യുന്ന ക്വറി എന്നാൽ ക്ലയന്റ് തെറ്റായ റിസോൾവർ തിരഞ്ഞെടുത്തു. രണ്ടിലും പ്രത്യക്ഷപ്പെടാത്ത ക്വറി എന്നാൽ ആപ്ലിക്കേഷൻ കാഷിൽനിന്ന് ഉത്തരം നൽകി, loopback-ൽ കേൾക്കുന്ന stub-നോട് ചോദിച്ചു, അല്ലെങ്കിൽ ട്രാഫിക് ഒരിക്കലും പോർട്ട് 53 ആയി പ്രത്യക്ഷപ്പെടാത്ത എൻക്രിപ്റ്റ് ചെയ്ത റിസോൾവർ ഉപയോഗിച്ചു. ക്വറികൾ മാത്രമല്ല ഉത്തരങ്ങളും ക്യാപ്ചർ ചെയ്യുക, കാരണം ടണലിലൂടെ പുറത്തുപോകുന്ന ക്വറിക്ക് പൊതു വിലാസത്തിൽനിന്ന് ഉത്തരം ലഭിക്കുന്നത് ഉത്തരം ഒട്ടും എത്താതിരിക്കുന്നതിൽനിന്ന് വ്യത്യസ്തമായ തകരാറാണ്.

സ്വന്തം DNS മാത്രം സ്വീകരിക്കുന്ന ഫയർവാൾ

വാണിജ്യ ക്ലയന്റുകൾ ചിലപ്പോൾ സ്വന്തം ഫിൽട്ടർ ചെയിനുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. ഒരു രേഖപ്പെടുത്തിയ മാതൃക ക്ലയന്റിന്റെ സ്വന്തം റിസോൾവറിലേക്ക് DNS അനുവദിക്കുകയും non-loopback ഇന്റർഫേസ് വിടാൻ ശ്രമിക്കുന്ന ബാക്കിയെല്ലാ UDP പോർട്ട് 53 ട്രാഫിക്കും ഉപേക്ഷിക്കുകയും ചെയ്യുന്നു, ഉപയോക്താവ് ബോധപൂർവം മറ്റെവിടെയോ റൂട്ട് ചെയ്ത ട്രാഫിക് ഉൾപ്പെടെ. ഡീമോൺ ക്വറികൾ അടയാളമില്ലാതെ അപ്രത്യക്ഷമാകുന്നു, അത് ഫിൽട്ടറല്ല, റിസോൾവർ തകരാറായി വായിക്കപ്പെടുന്നു.

sudo iptables -S OUTPUT
sudo iptables -S | grep -i -E 'dns|53'

നിങ്ങളുടെ ഒഴിവാക്കലിന് മുൻപ് ഒരു ഉപേക്ഷിക്കൽ നിയമം വിലയിരുത്തപ്പെട്ടാൽ, പിന്നീട് ചേർത്ത നിയമത്തിൽ ഒരിക്കലും എത്തില്ല, അതിനാൽ അത് ആദ്യ സ്ഥാനത്ത് ചേർക്കുക, ലക്ഷ്യസ്ഥാനം നിങ്ങൾ യഥാർത്ഥത്തിൽ ഉദ്ദേശിക്കുന്ന റിസോൾവറിലേക്ക് പരിമിതപ്പെടുത്തുക.

sudo iptables -I OUTPUT 1 -p udp --dport 53 -d 172.20.8.1 -j ACCEPT

ആ ഒഴിവാക്കൽ നയമല്ല, രോഗനിർണയമാണ്. വെണ്ടറുടെ നിയമം ബോധപൂർവമാണെങ്കിൽ, പിന്തുണയ്ക്കുന്ന അറ്റകുറ്റപ്പണി ക്ലയന്റിനെ ആ റിസോൾവർ അനുവദിക്കാൻ ക്രമീകരിച്ച് തീരുമാനം രേഖപ്പെടുത്തുന്നതാണ്, കാരണം ചേർത്ത നിയമം അടുത്ത ക്ലയന്റ് അപ്ഗ്രേഡിനെ അതിജീവിക്കില്ല.

ഒരു ലീക്ക് പേജ് തോന്നുന്നതിലും കുറവ് തെളിയിക്കുന്നതെന്തുകൊണ്ട്

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

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

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