OpenWrt VPN സോൺ, ഫോർവേഡിംഗ്, മാസ്കറേഡിംഗ്: ഏതാണ് വേണ്ടത്?
സോൺ ഇൻപുട്ട്, ഫോർവേഡിംഗ്, മാസ്കറേഡിംഗ് എന്നിവ വ്യത്യസ്ത ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകുന്നു. WAN സോൺ തുറക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ VPN ട്രാഫിക്കിന് എന്താണ് വേണ്ടതെന്ന് തീരുമാനിക്കുക.
VPN OpenWrt-നെ കാണുമ്പോഴെല്ലാം മൂന്ന് മാറ്റങ്ങൾ കൂടിച്ചേരുന്നു: ഒരു പോർട്ട് തുറക്കുക, ഫോർവേഡിംഗ് അനുവദിക്കുക, മാസ്കറേഡിംഗ് ഓണാക്കുക. അവ വ്യത്യസ്ത ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകുന്നു, സാധാരണയായി അവയിൽ ഒന്ന് മാത്രമാണ് യഥാർത്ഥ ആവശ്യം. ഓരോ നിയന്ത്രണവും അത് നിയന്ത്രിക്കുന്ന ട്രാഫിക് റോളിന് അനുസരിച്ച് വായിക്കുന്നത് ഊഹത്തെ തീരുമാനമാക്കി മാറ്റുന്നു, മാറ്റം തെറ്റാകുമ്പോൾ ഏത് ലക്ഷണം പ്രതീക്ഷിക്കണമെന്നും അത് പറയുന്നു. നിങ്ങൾ ഓർക്കുന്ന ചെക്ക്ബോക്സല്ല, പരാജയപ്പെട്ട റോളിന്റെ പേരിൽ തുടങ്ങുക.
ഒരു നിയന്ത്രണം തൊടുന്നതിന് മുമ്പ് ട്രാഫിക് റോളിന് പേര് നൽകുക
സോൺ ഇൻപുട്ട് റൂട്ടറിലേക്ക് എന്ത് എത്താമെന്ന് തീരുമാനിക്കുന്നു. സോൺ ഔട്ട്പുട്ട് റൂട്ടർ സ്വയം സൃഷ്ടിക്കുന്ന ട്രാഫിക്കിനെ ഉൾക്കൊള്ളുന്നു, സോൺ ഫോർവേഡിംഗ് ഒരു സോണിലൂടെ കടന്നുപോകുന്ന ട്രാഫിക്കിന്റെ സ്വതവേയുള്ള മൂല്യമാണ്, മാസ്കറേഡിംഗ് പുറത്തേക്ക് പോകുമ്പോൾ സ്രോതസ്സ് വിലാസം വീണ്ടും എഴുതുമോ എന്ന് തീരുമാനിക്കുന്നു. ഇവ നാല് വ്യത്യസ്ത ചോദ്യങ്ങളാണ്, സോൺ നയം ഒരേ മൂല്യം കൊണ്ട് നാലിനും ഒരുമിച്ച് ഉത്തരം നൽകുന്നു, അതിനാൽ മുഴുവൻ സോണിലുമുള്ള മാറ്റം പരുക്കൻ ഉപകരണമാണ്. പേരുള്ള ഒരു നിയമത്തിന് ബാക്കിയുള്ളവ തൊടാതെ അവയിലൊന്നിന് ഉത്തരം നൽകാം.
ഉപയോഗപ്രദമായ ഭൂപടം ട്രാഫിക് റോളിന് അനുസരിച്ചാണ്, കാരണം എന്തെങ്കിലും പരാജയപ്പെടുമ്പോൾ നിങ്ങൾക്ക് നിരീക്ഷിക്കാനാകുന്നത് അതാണ്. താഴെയുള്ള ഓരോ റോളിനും അത് തീരുമാനിക്കുന്ന ഒരു നിയന്ത്രണവും അതിലേക്ക് ചൂണ്ടുന്ന ഒരു ലക്ഷണവുമുണ്ട്:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
റൂട്ടറിലെ ശ്രോതാവിന് ഒരു ഇടുങ്ങിയ ഇൻപുട്ട് നിയമം മതി
റൂട്ടറിലെ OpenVPN സർവറിന് റൂട്ടറിലേക്ക് അഡ്രസ് ചെയ്ത ട്രാഫിക് ലഭിക്കുന്നു, അതിനാൽ അതിന്റെ പുറം കണക്ഷൻ അത് വഹിക്കുന്ന സോണിന്റെ ഇൻപുട്ട് നയത്തെ ആശ്രയിച്ചിരിക്കുന്നു. കോൺഫിഗർ ചെയ്ത ട്രാൻസ്പോർട്ടും പോർട്ടും അനുവദിക്കുക, ആ സോണിലെ ബാക്കിയെല്ലാം നിരസിക്കപ്പെട്ടതായി വിടുക. ഒരു പോർട്ട് നിയമം മുഴുവൻ സോണിനുമുള്ള അനുമതിയെക്കാൾ വളരെ ചെറിയ മാറ്റമാണ്, ഒരു വർഷത്തിന് ശേഷവും നിങ്ങൾക്ക് വിശദീകരിക്കാനാകുന്നത് അതാണ്.
ആ നിയമം സൂക്ഷിക്കാൻ സുരക്ഷിതമാക്കുന്ന രണ്ട് കാര്യങ്ങളുണ്ട്: സേവനം യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന പോർട്ട് അത് പേരെടുത്ത് പറയുന്നു, സോൺ നിർവചനത്തിന് അരികിൽ നിൽക്കുന്നതിനാൽ അടുത്ത വ്യക്തിക്ക് അത് എന്തിനുവേണ്ടിയാണെന്ന് കാണാം. താഴെയുള്ള വരികൾ രൂപം മാത്രമാണ്, പോർട്ട് സർവറിൽ കോൺഫിഗർ ചെയ്തതിനെ പ്രതിനിധീകരിക്കുന്നു. സേവനം മാറുമ്പോൾ ആ പോർട്ട് രണ്ടിടത്തും മാറ്റുക, കാരണം പഴയതിൽ അവശേഷിക്കുന്ന നിയമം ഓഡിറ്റ് വരെ കാണാനാവില്ല.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'വീണ്ടും ലോഡ് ചെയ്യുന്നതിന് മുമ്പ് സാധൂകരിക്കുക, കാരണം ഫയർവാൾ ഫയലിലെ വാക്യഘടനാ പിശക് റൂട്ടറിനെ പ്രവർത്തിക്കുന്ന നിയമക്കൂട്ടമില്ലാതെ വിടാം. fw4 ഉപയോഗിക്കുന്ന പതിപ്പിൽ പരിശോധന പ്രത്യേക കമാൻഡാണ്, അത് തകർന്ന ബ്ലോക്ക് നിശബ്ദമായി സ്വീകരിക്കുന്നതിന് പകരം ഉച്ചത്തിൽ പരാജയപ്പെടുന്നു. പരിശോധന കഴിഞ്ഞതിന് ശേഷം മാത്രം വീണ്ടും ലോഡ് ചെയ്യുക, മുൻ ഫയൽ തിരികെ വയ്ക്കാനാകുന്നിടത്ത് സൂക്ഷിക്കുക.
fw4 check
service firewall reloadക്ലയന്റ് അഭ്യർത്ഥന ഇൻപുട്ടിലൂടെയല്ല, ഫോർവേഡിംഗിലൂടെ കടന്നുപോകുന്നു
പ്രാമാണീകരണത്തിന് ശേഷം, LAN സേവനം ആവശ്യപ്പെടുന്ന ടണൽ ക്ലയന്റിന്റെ അഭ്യർത്ഥന ഫോർവേഡ് ചെയ്ത പ്രവാഹം സൃഷ്ടിക്കുന്നു, അതിനാൽ അത് തീരുമാനിക്കുന്ന നിയന്ത്രണം ടണൽ സോണും LAN സോണും തമ്മിലുള്ള ഫോർവേഡിംഗ് ബന്ധമാണ്. ടണൽ ഇന്റർഫേസ് ഉദ്ദേശിച്ച സോണിന് നൽകുക, തുടർന്ന് ദിശ, സ്രോതസ്സുകൾ, സേവനം എന്നിവ പ്രഖ്യാപിക്കുക. സോൺ അനുവദിക്കലാണ് ഫോർവേഡിംഗ് നിയമത്തിന് അർത്ഥം നൽകുന്നത്, രണ്ടും ഒരുമിച്ച് വായിച്ചാൽ മാത്രമേ അർത്ഥമാകൂ. ടണൽ സോണിനെ സ്രോതസ്സും LAN സോണിനെ ലക്ഷ്യവുമായി പേരിടുന്ന ഫോർവേഡിംഗ് ബന്ധം ഒരു ബോധ്യപൂർവമായ തീരുമാനമായി വായിക്കപ്പെടുന്നു, അതേസമയം മുഴുവൻ സോണിലുമുള്ള രണ്ട് അനുമതികൾ ഒരു അപകടമായി വായിക്കപ്പെടുന്നു.
റൂട്ടറിലേക്ക് എത്താൻ ഇപ്പോഴും ഇൻപുട്ട് പാത ഉപയോഗിക്കുന്നു, അതിനാൽ ഗേറ്റ്വേയിലേക്കുള്ള ping അതിന് പിന്നിലെ ഫയൽ പങ്കിടൽ സംബന്ധിച്ച് ഒന്നും പറയുന്നില്ല. ആ രണ്ട് പരാജയങ്ങൾ വ്യത്യസ്ത ബ്ലോക്കുകളിലാണ് കഴിയുന്നത്, വ്യത്യസ്ത മാറ്റങ്ങളിലൂടെയാണ് പരിഹരിക്കുന്നത്. ഏതെങ്കിലും ഒന്ന് മാറ്റുന്നതിന് മുമ്പ് രണ്ട് പാതകളും വെവ്വേറെ എഴുതുക.
മാസ്കറേഡിംഗ് ഒരു റൂട്ടിംഗ് തീരുമാനമാണ്, അനുമതിയല്ല
തിരഞ്ഞെടുത്ത പുറത്തേക്കുള്ള ട്രാഫിക്കിന്റെ സ്രോതസ്സ് വിലാസം മാസ്കറേഡിംഗ് വീണ്ടും എഴുതുന്നു. ദൂരെയുള്ള വശത്തിന് തിരികെയുള്ള പാതയില്ലാത്ത ഒരു എക്സിറ്റ് രൂപകൽപ്പനയെ അത് രക്ഷപ്പെടുത്തിയേക്കാം, വിലാസങ്ങൾ രേഖപ്പെടുത്തുന്ന അല്ലെങ്കിൽ വിലാസം അനുസരിച്ച് അനുമതി നൽകുന്ന ഏത് സേവനത്തിൽ നിന്നും വ്യക്തിഗത ക്ലയന്റുകളുടെ വിലാസങ്ങളും അത് മറയ്ക്കുന്നു. അത് ഓഫ് ചെയ്യുന്നത് തിരികെയുള്ള പാതയെക്കുറിച്ചുള്ള ഒരു റൂട്ടിംഗ് തിരഞ്ഞെടുപ്പാണ്, അകത്തെ ദ്വാരം അടയ്ക്കുന്ന ഒരു സുരക്ഷാ സ്വിച്ചല്ല. വിവർത്തനം ഓണായിരിക്കുമ്പോൾ പ്രവർത്തിക്കുകയും അത് ഓഫ് ചെയ്യുന്ന നിമിഷം പരാജയപ്പെടുകയും ചെയ്യുന്ന ടണലിന് സാധാരണയായി തിരികെയുള്ള പാത കാണാതെ പോകുന്നു, ഫയർവാൾ നിയമമല്ല.
റൂട്ട് ചെയ്ത ബദലിന് വിവർത്തനത്തിന് പകരം ദൂരെയുള്ള വശത്ത് തിരികെയുള്ള പാത വേണം. രണ്ട് ഓപ്ഷനുകളും ഫയർവാൾ അനുമതിയോ ആപ്ലിക്കേഷൻ അക്കൗണ്ടോ നൽകുന്നില്ല, അതിനാൽ മാസ്കറേഡിംഗ് ഓഫ് ചെയ്യുന്നത് എങ്ങുമെത്താത്ത ഒരു ടണൽ ക്ലയന്റിനെ ഏതാണ്ട് ഒരിക്കലും ശരിയാക്കുന്നില്ല. IPv4, IPv6 നയങ്ങളും വെവ്വേറെ പരിഗണിക്കുക, കാരണം ഒരു വിവർത്തന ക്രമീകരണം രണ്ട് കുടുംബങ്ങളെയും വിവരിക്കുന്നില്ല.
അനുവദിച്ചതും നിരസിച്ചതുമായ അഭ്യർത്ഥന കൊണ്ട് തീരുമാനം തെളിയിക്കുക
അനുവദിക്കേണ്ട ഒരു അഭ്യർത്ഥനയും നിരസിക്കേണ്ട ഒരു അഭ്യർത്ഥനയും അയച്ച്, ഓരോ തീരുമാനവും എടുത്ത നിയന്ത്രണം തിരിച്ചറിയുക. യാദൃശ്ചികമായി ലോഡ് ചെയ്യുന്ന പേജ് തെളിവല്ല; തെളിവ് എന്നത് പൊരുത്തപ്പെട്ട നിയമമാണ്, അത് പൊരുത്തപ്പെട്ട ശൃംഖലയിൽ. എല്ലാം അനുവദിക്കപ്പെട്ടതല്ല, നയം എന്തോ ചെയ്യുന്നു എന്ന് കാണിക്കുന്നതിനാൽ നിരസിക്കൽ വിജയത്തോളം തന്നെ പ്രധാനമാണ്.
നിലവിലെ പതിപ്പിൽ രണ്ട് കമാൻഡുകൾ ആ തെളിവ് തരുന്നു. അഭ്യർത്ഥന സ്വീകരിക്കുമ്പോൾ പൊരുത്തപ്പെട്ട നിയമത്തിന്റെ കൗണ്ടർ നീങ്ങുന്നു, നിയമത്തിന് ലോഗിംഗ് ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ ലോഗ് ഡ്രോപ്പ് കാണിക്കുന്നു:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'ഏതെങ്കിലും ഫയർവാൾ നയം മാറ്റുന്നതിന് മുമ്പ് ഇപ്പോഴും ഉപയോഗിക്കാനാകുന്ന ഒരു അഡ്മിനിസ്ട്രേഷൻ പാത സൂക്ഷിക്കുക, കോൺഫിഗറേഷന്റെ ഉടമയുടെ സാധൂകരണ, റോൾബാക്ക് പ്രക്രിയ പിന്തുടരുക. നിങ്ങളെ റൂട്ടറിൽ നിന്ന് പുറത്താക്കി പൂട്ടുന്ന മാറ്റം പരീക്ഷണ ഫലമല്ല, അത് രണ്ടാമത്തെ സംഭവമാണ്. ഓരോ നിരീക്ഷണത്തിനും അരികിൽ സോണും ട്രാഫിക് റോളും രേഖപ്പെടുത്തുക, ഫലങ്ങളുടെ ജോടി ഭാഗ്യമുള്ള പേജ് ലോഡ് വിവരിക്കുന്നതിന് പകരം നയം വിശദീകരിക്കാൻ.