ESP എന്നത് IP പ്രോട്ടോക്കോൾ 50 ആണ്, TCP പോർട്ട് 50 അല്ല: എന്താണ് അനുവദിക്കേണ്ടത്
പ്രോട്ടോക്കോൾ നമ്പറുകളും പോർട്ട് നമ്പറുകളും വ്യത്യസ്ത നാമമേഖലകളാണ്. TCP പോർട്ട് 50-നുള്ള നിയമം ഒന്നും അനുവദിക്കുന്നില്ല, NAT ട്രാവേഴ്സൽ ESP-യെ UDP 4500-ലേക്ക് മാറ്റുന്നു.
ഫയർവാൾ ഫോമുകൾ TCP പോർട്ട് ആവശ്യപ്പെടുന്നു, വ്യക്തമായ എൻട്രി 50 ആണ്. ആ എൻട്രി ഒന്നും അനുവദിക്കുന്നില്ല, കാരണം ESP എന്നത് IP പ്രോട്ടോക്കോൾ നമ്പർ 50 ആണ്, പ്രോട്ടോക്കോൾ നമ്പറുകൾ പോർട്ടുകളല്ല. രണ്ട് നാമമേഖലകളും പങ്കിടുന്നത് ചെറിയ പൂർണ്ണസംഖ്യകൾ മാത്രമാണ്, മറ്റൊന്നുമല്ല, IKE തീരുകയും സംരക്ഷിത ട്രാഫിക് ഒരിക്കലും എത്താതിരിക്കുകയും ചെയ്യുന്നതുവരെ പിശക് അദൃശ്യമായി തുടരുന്നു.
ചെറിയ സംഖ്യകൾ പങ്കിടുന്ന രണ്ട് നാമമേഖലകൾ
ഒരു IP ഹെഡറിൽ അടുത്തത് എന്തെന്ന് പേരിടുന്ന പ്രോട്ടോക്കോൾ ഫീൽഡ് ഉണ്ട്: TCP-യ്ക്ക് 6, UDP-യ്ക്ക് 17, ICMP-യ്ക്ക് 1, ESP-യ്ക്ക് 50, AH-യ്ക്ക് 51. TCP അല്ലെങ്കിൽ UDP ഹെഡറിൽ പോർട്ട് നമ്പറുകൾ ഉണ്ട്, അവ ലക്ഷ്യ ഹോസ്റ്റിൽ ഒരു പ്രോസസ് തിരഞ്ഞെടുക്കുന്നു. പ്രോട്ടോക്കോൾ 50-ഉം TCP പോർട്ട് 50-ഉം ബന്ധമില്ലാത്ത മൂല്യങ്ങളാണ്, പക്ഷേ ഒരു സംഭാഷണ ബോക്സിന് അവ പരസ്പരം മാറ്റാവുന്നതായി തോന്നിപ്പിക്കാം.
അതുകൊണ്ടാണ് പോർട്ട് ഫോർവേഡിംഗ് നിയമത്തിന് തദ്ദേശീയ ESP പ്രകടിപ്പിക്കാനാകാത്തത്. ഫോർവേഡ് ചെയ്യാൻ ESP ലക്ഷ്യ പോർട്ട് ഇല്ല, പോർട്ട് നിയമങ്ങൾ മാത്രം മനസ്സിലാക്കുന്ന ഉപകരണത്തിന് ആ പാക്കറ്റിനായി ഒരു പദസഞ്ചയവുമില്ല. ശരിയായ നിയമം പകരം IP പ്രോട്ടോക്കോളിനെ പേരിടുന്നു. ഏത് പോർട്ട് സംഭാഷണവും ആ പാക്കറ്റിന് തെറ്റായ ഉപകരണമാണ്.
ആശയക്കുഴപ്പത്തിന് രണ്ടാം പകുതിയുമുണ്ട്. പാക്കറ്റ് എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുമ്പോൾ അതിനുള്ളിലെ എല്ലാം അതാര്യമാണ്, യഥാർത്ഥ കണക്ഷന്റെ TCP ഹെഡർ ഉൾപ്പെടെ. ആ പാക്കറ്റിലെ പോർട്ടുകൾ പരിശോധിക്കുന്ന ഫയർവാൾ പുറം ഹെഡറിലേക്കാണ് നോക്കുന്നത്, തദ്ദേശീയ സാഹചര്യത്തിൽ അവിടെ പരിശോധിക്കാൻ പോർട്ടുകളില്ല.
തദ്ദേശീയ ESP, തുടർന്ന് എൻകാപ്സുലേറ്റ് ചെയ്ത ബദൽ
തദ്ദേശീയ ESP നേരിട്ട് IP പ്രോട്ടോക്കോളായി കൊണ്ടുപോകുന്നു, ഇത് ഒരുപോലെ കാര്യക്ഷമവും അസൗകര്യപ്രദവുമാണ്. അധിക ഹെഡർ ഇല്ലാത്തതിനാൽ കാര്യക്ഷമം, വിലാസങ്ങളും പോർട്ടുകളും വിവർത്തനം ചെയ്യുന്ന ഏത് ഉപകരണത്തിനും അത് ട്രാക്ക് ചെയ്യാനാകാത്തതിനാൽ അസൗകര്യം. NAT ട്രാവേഴ്സൽ ഇത് പരിഹരിക്കാനാണ്: ESP പാക്കറ്റ് UDP-യ്ക്കുള്ളിൽ പൊതിഞ്ഞ്, വിവർത്തകന് വീണ്ടും എഴുതാൻ പോർട്ടുകൾ നൽകുന്നു.
| Form on the wire | How it is identified | What the firewall must permit |
|---|---|---|
| IKE negotiation | UDP with a destination port | UDP 500, and 4500 once traversal is detected |
| Native ESP | IP protocol 50 in the outer header | The protocol itself, with no port to name |
| ESP inside UDP | UDP 4500 carrying an ESP payload | The UDP port pair, which translation devices can track |
രണ്ട് രൂപങ്ങളും ഒരേ ഡാറ്റാ ചാനലിന്റെ ബദൽ വിന്യാസങ്ങളാണ്, ഒന്നിന്റെ പാളികളല്ല. തദ്ദേശീയ ESP അനുവദിക്കുന്നത് എൻകാപ്സുലേറ്റ് ചെയ്ത രൂപം അനുവദിക്കുന്നില്ല, UDP 4500 അനുവദിക്കുന്നത് തദ്ദേശീയ ട്രാഫിക് അനുവദിക്കുന്നില്ല, അതിനാൽ നിയമക്കൂട്ടം വിന്യാസത്തിന് യോജിക്കണം, യാദൃച്ഛികമായി രണ്ടും ഉൾക്കൊള്ളരുത്.
ഇവിടെ കണ്ടെത്തലും പ്രധാനമാണ്. അന്തിമ ബിന്ദുക്കൾ ചർച്ചയ്ക്കിടയിൽ രൂപങ്ങൾക്കിടയിൽ തീരുമാനിക്കുന്നു, മാറ്റം സാധാരണയായി അവയ്ക്കിടയിൽ NAT കണ്ടെത്തുമ്പോൾ സംഭവിക്കുന്നു. അതിനാൽ ടണൽ സ്ഥാപിച്ചതിന് ശേഷം മാറുന്ന പാത, നിങ്ങളുടെ നിയമങ്ങൾ ഒരിക്കലും ഉൾക്കൊള്ളാത്ത ഒരു നാമമേഖലയിലേക്ക് ട്രാഫിക് മാറ്റിയേക്കാം.
കണക്ഷൻ യഥാർത്ഥത്തിൽ ഏത് രൂപമാണ് ഉപയോഗിക്കുന്നതെന്ന് വായിക്കുക
ഫയർവാളിൽ നിന്ന് ഊഹിക്കുന്നതിന് പകരം അന്തിമ ബിന്ദുവിനോട് ചോദിക്കുക. Linux-ൽ സ്റ്റേറ്റ് എൻട്രി അസോസിയേഷൻ UDP എൻകാപ്സുലേഷൻ ഉപയോഗിക്കുന്നുണ്ടോ, ഏത് പോർട്ടുകൾ ഉൾപ്പെട്ടിരിക്കുന്നു എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു. പാക്കറ്റ് ക്യാപ്ചർ അതേ ചോദ്യത്തിന് വയറിൽ നിന്ന് ഉത്തരം നൽകുന്നു, രണ്ടും നിയമക്കൂട്ടം വായിച്ച് പ്രതീക്ഷിക്കുന്നതിനേക്കാൾ വേഗമേറിയതാണ്.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
ആദ്യ കമാൻഡ് NAT ട്രാവേഴ്സൽ ഉപയോഗിക്കുമ്പോൾ എൻകാപ്സുലേഷൻ തരം കാണിക്കുന്നു, ഇല്ലാത്തപ്പോൾ ഒന്നും കാണിക്കുന്നില്ല. രണ്ടാമത്തേത് രണ്ട് രൂപങ്ങളിൽ ഏതാണ് യഥാർത്ഥത്തിൽ ഇന്റർഫേസ് കടക്കുന്നതെന്ന് കാണിക്കുന്നു, അത് കടലാസിൽ ശരിയെന്ന് തോന്നുന്ന ഒരു കോൺഫിഗറേഷനെക്കുറിച്ചുള്ള തർക്കങ്ങൾ അവസാനിപ്പിക്കുന്നു.
എതിർ തെളിവും അതേ ഘട്ടത്തിന്റെ ഭാഗമാണ്. പൂജ്യം പൊരുത്തം റിപ്പോർട്ട് ചെയ്യുന്ന നിയമം പാക്കറ്റ് ഒരിക്കലും അതിലെത്തിയില്ലെന്ന് പറയുന്നു, അത് ഫയർവാളല്ല, റൂട്ടിംഗിന്റെയോ സെലക്ടറിന്റെയോ ചോദ്യമാണ്.
തുടർന്ന് നിയന്ത്രണ ചാനൽ വെവ്വേറെ സ്ഥിരീകരിക്കുക. IKE-യ്ക്ക് സ്വന്തം പോർട്ടുകളും സ്വന്തം ലോഗുകളുമുണ്ട്, ഡാറ്റയില്ലാതെ പൂർത്തിയായ ചർച്ച ഈ ലേഖനം പറയുന്ന വിഭജനമാണ്.
നിയമം ശരിയായ നാമമേഖലയിൽ എഴുതുക
പ്രോട്ടോക്കോൾ നിയമവും പോർട്ട് നിയമവും വ്യത്യസ്ത നിർദ്ദേശങ്ങളാണ്, അതിനാൽ ഉപകരണം നിങ്ങൾ ഉദ്ദേശിക്കുന്നത് പ്രകടിപ്പിക്കണം. nftables-ൽ പ്രോട്ടോക്കോൾ പൊരുത്തം വ്യക്തമാണ്, എൻകാപ്സുലേറ്റ് ചെയ്ത ബദലിന് സ്വന്തം UDP നിയമം ലഭിക്കുന്നു. രണ്ട് നിയമങ്ങളും അടുത്തടുത്ത് സൂക്ഷിക്കുക, അവലോകനത്തിൽ ജോടി കാണാനാകട്ടെ.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
തെറ്റായ രോഗനിർണ്ണയം നികത്താൻ ഏതെങ്കിലും നിയമം വിശാലമാക്കാനുള്ള പ്രലോഭനത്തെ ചെറുക്കുക. എല്ലാ ഇന്റർഫേസിലും ESP പ്രോട്ടോക്കോളിന് എല്ലാം അനുവദിക്കുന്നതോ, എവിടെനിന്നും എവിടേക്കും UDP അനുവാദമോ ലക്ഷണം ശരിയാക്കുകയും നിങ്ങൾ ക്രമീകരിക്കാൻ ശ്രമിച്ച നിയന്ത്രണം നീക്കുകയും ചെയ്യുന്നു. രൂപം അറിഞ്ഞാൽ ഇടുങ്ങിയ പിന്തുണയുള്ള പ്രവാഹം മിക്കവാറും മതിയാകും.
അവസാനം, ടണൽ പ്രവർത്തിക്കുമ്പോൾ ആപ്ലിക്കേഷൻ പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ പാളികൾ നേരെ സൂക്ഷിക്കുക. ഗേറ്റ്വേയിൽ എത്തുന്ന പാക്കറ്റുകൾക്ക് ഇപ്പോഴും ഫോർവേഡിംഗും തിരിച്ചുള്ള റൂട്ടും അവ സ്വീകരിക്കുന്ന ഒരു നയവും ആവശ്യമാണ്, അവയൊന്നും ESP നിയമം പ്രകടിപ്പിക്കുന്നില്ല. കാണാത്ത പോർട്ട് ഒരു പ്രത്യേക പരാജയം വിശദീകരിക്കുന്നു, എല്ലാ IPsec പരാജയവുമല്ല. നിയമ തിരുത്തലും റൂട്ടിംഗ് പരിശോധനയും രണ്ട് വേറിട്ട നിഗമനങ്ങളായി സൂക്ഷിക്കുക.
നിങ്ങൾ നിരീക്ഷിച്ച രൂപം, ചേർത്ത പ്രോട്ടോക്കോൾ നിയമം, പിന്നീട് കണ്ട കൗണ്ടർ എന്നിവ രേഖപ്പെടുത്തുക. മൂന്ന് വരികൾ, അടുത്ത വ്യക്തിക്ക് പകലിന് പകരം ഒരു മിനിറ്റിൽ നാമമേഖലയിലെ തെറ്റ് റൂട്ടിംഗ് തെറ്റിൽ നിന്ന് വേർതിരിക്കാനാകും.