അതേ പോർട്ട് പരിശോധന ഓഫീസ് ലൈനിൽ നിന്നും VPN എക്സിറ്റിൽ നിന്നും പ്രവർത്തിപ്പിക്കുക; ആരും മാറ്റാത്ത ഒരു വിലാസത്തെക്കുറിച്ച് രണ്ട് ഉത്തരങ്ങൾ യോജിക്കാതിരിക്കാം. ആ വ്യത്യാസം പാതയിൽ നിന്നും ഏത് ഹോസ്റ്റ് ഉത്തരം നൽകി എന്നതിൽ നിന്നുമാണ് വരുന്നത്, സേവനം പ്രവർത്തിക്കുന്നുണ്ടോ എന്നതിൽ നിന്നല്ല. മൂന്ന് ചോദ്യങ്ങൾ ആ വിശദീകരണങ്ങളെ വേർതിരിക്കുന്നു: പ്രോബ് യഥാർത്ഥത്തിൽ എന്താണ് ചോദിച്ചത്, ഏത് ഹോസ്റ്റാണ് ഉത്തരം നൽകിയത്, നിങ്ങളുടെ സ്വന്തം സെർവർ എന്താണ് രേഖപ്പെടുത്തിയത്. അവ ആ ക്രമത്തിൽ പൂർത്തിയാക്കി അടുത്തതിലേക്ക് പോകുന്നതിന് മുമ്പ് ഓരോ ഉത്തരവും എഴുതുക.

രണ്ട് റൺ താരതമ്യം ചെയ്യുന്നതിന് മുമ്പ് പ്രോബ് ശരിയാക്കുക

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

എല്ലാത്തിനും മുമ്പ് ഉറവിടം പരിശോധിക്കുക, കാരണം VPN ക്ലയന്റ് പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുമ്പോഴും ട്രാഫിക് ഭൗതിക ഇന്റർഫേസിലൂടെ പുറത്തുപോകാം. ദൂരെയുള്ള വശത്തോട് അത് എന്താണ് കാണുന്നതെന്ന് ചോദിക്കുക, പിന്നീട് കെർണലിനോട് ഏത് ഇന്റർഫേസ് തിരഞ്ഞെടുത്തു എന്ന് ചോദിക്കുക:

curl -s https://ifconfig.me
ip route get 203.0.113.20

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

nmap -sT -p 443,8443 --reason 203.0.113.20

ആ ഔട്ട്പുട്ട് രേഖയുടെ അടുത്ത് സൂക്ഷിക്കുക, അടുത്ത വ്യക്തിക്ക് കാണാനാവാത്ത സ്ക്രോൾബാക്ക് ബഫറിലല്ല. യോജിക്കാത്ത രണ്ട് സത്യസന്ധമായ സ്കാനുകൾ, ആരും വ്യവസ്ഥകൾ എഴുതിയിട്ടില്ലെങ്കിൽ മാത്രമേ തർക്കമാകൂ. വ്യവസ്ഥകൾ ഉറപ്പിച്ചാൽ, ഒന്നുകിൽ ഫലങ്ങൾ യോജിച്ച് ചോദ്യം അവസാനിക്കുന്നു, അല്ലെങ്കിൽ അവ വ്യത്യസ്തമാകുന്നു, ആ വ്യത്യാസം പാതയെക്കുറിച്ചുള്ള ഒരു വസ്തുതയാണ്.

ഏത് ഹോസ്റ്റാണ് ഹാൻഡ്ഷേക്ക് പൂർത്തിയാക്കിയതെന്ന് കണ്ടെത്തുക

പൂർത്തിയായ ഹാൻഡ്ഷേക്ക്, ഏതോ ഒരു ഹോസ്റ്റ് അത് പൂർത്തിയാക്കി എന്ന് തെളിയിക്കുന്നു, ആ ഹോസ്റ്റ് നിങ്ങൾ മനസ്സിലുള്ള പ്രോസസ്സ് ആയിരിക്കണമെന്നില്ല. ലോഡ് ബാലൻസർ, റിവേഴ്സ് പ്രോക്സി അല്ലെങ്കിൽ SYN പ്രോക്സി യഥാർത്ഥ സെർവർ ഇടപെടുന്നതിന് മുമ്പ് ഉത്തരം നൽകാം, ഇത് സാധാരണ രൂപകൽപ്പനയാണ്, ലക്ഷണമല്ല. പ്രതീക്ഷിത നാമത്തിനുള്ള സാധുവായ സർട്ടിഫിക്കറ്റും ഇത് ചുരുക്കുന്നില്ല, കാരണം സർട്ടിഫിക്കറ്റ് ഒരു സേവനബന്ധം വിവരിക്കുന്നു, ഏത് യന്ത്രമാണ് കണക്ഷൻ അവസാനിപ്പിച്ചത് എന്നതിനെക്കുറിച്ച് ഒന്നും പറയുന്നുമില്ല.

Nmap പോർട്ട്-അവസ്ഥ റഫറൻസ് ഇതിനെ അടിസ്ഥാനമായി കാണുന്നു: അവസ്ഥ, പ്രോബ് അയച്ച സ്ഥലത്തുനിന്ന് എന്ത് നിരീക്ഷിക്കാനാകുമായിരുന്നു എന്ന് രേഖപ്പെടുത്തുന്നു, പോർട്ടിന്റെ സ്വഭാവമല്ല. അവസ്ഥാ-വാക്ക് അങ്ങനെ വായിക്കുക, യോജിക്കാതിരുന്ന രണ്ട് റണ്ണുകൾ വൈരുദ്ധ്യമല്ലാതെ സ്ഥിരതയുള്ളതായി തോന്നിത്തുടങ്ങും, ചോദ്യം പോർട്ട് തുറന്നിട്ടുണ്ടോ എന്നതിൽ നിന്ന് അതിന് മുന്നിൽ ആരാണ് നിന്നിരുന്നത് എന്നതിലേക്ക് നീങ്ങുന്നു.

രണ്ടാമത്തെ ചോദ്യത്തിന് പുറത്തുനിന്നല്ല, ബാക്ക്എൻഡിൽ ഉത്തരം നൽകുക. കണക്ഷനുകൾ സ്വീകരിച്ച ശേഷം തന്റെ അപ്സ്ട്രീം എത്തിച്ചേരാത്ത ഫ്രണ്ട്എൻഡ്, മന്ദഗതിയിലുള്ള അപ്ലിക്കേഷനുള്ള ആരോഗ്യകരമായ സേവനത്തിന്റെ കൃത്യമായ ബാഹ്യചിത്രം സൃഷ്ടിക്കുന്നു. അപ്സ്ട്രീമിന്റെ സ്വന്തം രേഖ മാത്രമാണ് രണ്ട് കേസുകളെ വേർതിരിക്കുന്നത്:

tail -n 5 /var/log/nginx/access.log
ss -ltnp 'sport = :443'

ലോഗ് ലൈൻ അപ്ലിക്കേഷൻ യഥാർത്ഥത്തിൽ കണ്ട ക്ലയന്റ് വിലാസം കാണിക്കുന്നു, രണ്ടാമത്തെ കമാൻഡ് പോർട്ട് 443 കൈവശം വയ്ക്കുന്ന പ്രോസസ്സ് നിങ്ങളുടെ അപ്ലിക്കേഷനാണോ അതിന് മുന്നിലുള്ള എന്തോ ആണോ എന്ന് കാണിക്കുന്നു. അവ രണ്ടും ഏത് വിലാസമാണ് കണക്ട് ചെയ്തത് എന്നതിൽ യോജിക്കുന്നില്ലെങ്കിൽ, നിങ്ങൾ ഒരു അഭ്യർത്ഥനയുടെ രണ്ട് കാലുകൾ നോക്കുകയാണ്, ടിക്കറ്റ് അത് പറയണം.

ടണൽ കുറ്റപ്പെടുത്തുന്നതിന് മുമ്പ് സ്വന്തം നിയമങ്ങൾ പരിശോധിക്കുക

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

ആ നിയമങ്ങൾ സെർവറിൽ വായിക്കാം, അതിനാൽ നെറ്റ്വർക്കിന്റെ മധ്യത്തെക്കുറിച്ച് ഊഹിക്കുന്നതിന് പകരം അവ വായിക്കുക. രണ്ട് വിലാസ ശ്രേണികളിൽ ഏതെങ്കിലും പരാമർശിക്കുന്ന ഫിൽട്ടർ നിയമങ്ങൾ പട്ടികപ്പെടുത്തുക, പിന്നീട് കണക്ഷൻ ഡീമണിൽ എത്തിയോ എന്ന് പരിശോധിക്കുക:

nft list ruleset | grep -n -e 203.0.113 -e 198.51.100
journalctl -u sshd -n 50 | grep 203.0.113

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

ഗതാഗതം, സർട്ടിഫിക്കറ്റ്, പ്രതികരണം എന്നിവ വെവ്വേറെ വായിക്കുക

മൂന്ന് പാളികൾ മൂന്ന് നിരീക്ഷണങ്ങൾ സൃഷ്ടിക്കുന്നു, അവയിൽ ഒന്ന് പരിശോധിക്കുന്ന പ്രോബിന് മറ്റ് രണ്ടിനെക്കുറിച്ച് റിപ്പോർട്ട് ചെയ്യാനാവില്ല. ഒരൊറ്റ വിധിയിലേക്ക് മടക്കുന്നതിന് പകരം രേഖയിൽ വെവ്വേറെ വരികളായി സൂക്ഷിക്കുക, കാരണം ഓരോ വരിയും അതിന്റേതായ രീതിയിൽ പരാജയപ്പെടുന്നു, പരാജയ രീതി അടുത്തതായി എവിടെ നോക്കണം എന്ന് പറയുന്നു.

ObservationWhat it settlesWhat it leaves open
Connection completedA host on the path accepted the handshakeWhich host, and whether its upstream is reachable
Certificate valid for the nameThe endpoint holds a credential for that nameWhether the process behind it is the one you meant
Expected response bodyThe application handled the requestAnything about other ports or other paths
Connection refusedA host replied and nothing was listeningWhether a filter sits ahead of the refused port
TimeoutNo reply arrived before the deadlineDrop, blackhole route or an overloaded host

ഒരു കമാൻഡ് നിങ്ങൾ നിയന്ത്രിക്കുന്ന ഒരു സേവനത്തിനെതിരെ ആദ്യത്തെ മൂന്ന് വരികൾ സൃഷ്ടിക്കുന്നു. അതിന്റെ ഔട്ട്പുട്ട് ചാറ്റ് സന്ദേശത്തിലല്ല, സ്കാനിന് അടുത്തുള്ള രേഖയിൽ വയ്ക്കുക:

curl -v --resolve office.example:443:203.0.113.20 https://office.example/

ഔട്ട്പുട്ട് ക്രമത്തിൽ വായിക്കുക: ഹാൻഡ്ഷേക്ക് ഗതാഗത ചോദ്യത്തിന് ഉത്തരം നൽകുന്നു, സർട്ടിഫിക്കറ്റ് വിഷയം പേരിന്റെ ചോദ്യത്തിന്, പ്രതികരണത്തിന്റെ ശരീരം അപ്ലിക്കേഷന്റെ ചോദ്യത്തിന്. ഹാൻഡ്ഷേക്ക് ലൈൻ വിജയിക്കുകയും പ്രതികരണ ലൈൻ വിജയിക്കാതിരിക്കുകയും ചെയ്യുമ്പോൾ, നിങ്ങൾക്ക് തകർന്ന അപ്സ്ട്രീമുള്ള ഫ്രണ്ട്എൻഡാണ്, തടയപ്പെട്ട പോർട്ടല്ല. അത് നിങ്ങൾ തുറന്ന ടിക്കറ്റിൽ നിന്ന് വ്യത്യസ്തമായ ടിക്കറ്റാണ്, അത് വ്യക്തമായി പറയേണ്ടതാണ്.

ടിക്കറ്റിൽ നാല് വസ്തുതകൾ എഴുതി അവസാനിപ്പിക്കുക: ഉറവിട വിലാസം, സ്കാനിംഗ് തരം, ഉത്തരം നൽകിയ ഹോസ്റ്റ്, സമയം. പിന്നീടുള്ള താരതമ്യത്തിന് ആവശ്യമായതെല്ലാം ആ നാലിലാണ് ജീവിക്കുന്നത്, അടുത്തതായി കേസ് ഏറ്റെടുക്കുന്നയാൾക്ക് നിങ്ങളുടെ ടെർമിനൽ ചരിത്രം ഉണ്ടാവില്ല. നാലും പൂരിപ്പിക്കാനാവില്ലെങ്കിൽ, റൺ പൂർത്തിയായിട്ടില്ല.

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