ഒരു നിഷേധ നിയമം ചേർത്തിട്ടും തുറന്ന ഡൗൺലോഡ് തുടരുന്നത് UFW-ന്റെ ബഗ് അല്ല. നിങ്ങൾ ചേർത്ത നിയമം ഈ ഫ്ലോ ഇതിനകം അംഗീകരിച്ച നിയമങ്ങൾക്ക് ശേഷമാണ് നിൽക്കുന്നത്, മുമ്പ് സ്ഥാപിതമായ കണക്ഷൻ അവയുമായി പൊരുത്തപ്പെടുന്നത് തുടരുന്നു. ഇത് ശരിയാക്കാൻ ശരിയായ സ്ഥാനത്ത് ചേർക്കുകയും മുൻ നിയമങ്ങൾ എന്താണ് വാഗ്ദാനം ചെയ്യുന്നതെന്ന് മനസ്സിലാക്കുകയും വേണം. ആ മാറ്റത്തിന്റെ സങ്കുചിത രൂപമാണ് താഴെ.

നിയമത്തിന്റെ അസ്തിത്വമല്ല, ക്രമമാണ് തീരുമാനിക്കുന്നത്

UFW എന്നത് netfilter നിയമങ്ങൾ ഘട്ടങ്ങളായി എഴുതുന്ന ഒരു ഫ്രണ്ട് എൻഡാണ്: ഉപയോക്തൃ നിയമങ്ങൾക്ക് മുമ്പ് പ്രവർത്തിക്കുന്ന ഫ്രെയിംവർക്ക് വിഭാഗം, പിന്നെ ഉപയോക്തൃ നിയമങ്ങൾ തന്നെ, പിന്നെ അവയ്ക്ക് ശേഷം പ്രവർത്തിക്കുന്ന വിഭാഗം. സ്റ്റോക്ക് മുൻ നിയമങ്ങൾ സ്ഥാപിത, ബന്ധപ്പെട്ട കണക്ഷനുകളുടെ ട്രാഫിക് സ്വീകരിക്കുന്നു, ആ നിയമങ്ങൾ നിങ്ങൾ സാധാരണ allow അല്ലെങ്കിൽ deny ഉപയോഗിച്ച് ചേർക്കുന്ന ഏതിനും മുമ്പ് വിലയിരുത്തപ്പെടുന്നു. UFW കമാൻഡ് റഫറൻസ് ചേർക്കൽ സിന്താക്സും ഈ മാറ്റം ആശ്രയിക്കുന്ന നമ്പർ ഇട്ട അവസ്ഥാ കാഴ്ചയും രേഖപ്പെടുത്തുന്നു.

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

ഈ ജോലിക്ക് route നിയമങ്ങൾ ഉപയോഗിക്കുക, കാരണം പാക്കറ്റ് ഗേറ്റ്വേയുടെ സ്വന്തം സേവനങ്ങളെ അഭിസംബോധന ചെയ്യുന്നതിനുപകരം ഗേറ്റ്വേയിലൂടെ ഫോർവേഡ് ചെയ്യപ്പെടുന്നു. ഇൻപുട്ട് നിയമം തെറ്റായ ട്രാഫിക് ഫിൽട്ടർ ചെയ്ത് ഒന്നും ചെയ്യാത്തതുപോലെ തോന്നിയേനെ.

വിശാല അനുമതിക്ക് മുകളിൽ ചേർക്കുക

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

sudo ufw --dry-run route insert 1 deny in on tun0 proto tcp from 10.88.0.55/32 to 192.0.2.88/32

പ്രിവ്യൂവിൽ പ്രതീക്ഷിച്ച സ്ഥാനത്ത് കൃത്യമായി ഒരു നിയമം കാണിച്ചാൽ, dry-run ഫ്ലാഗ് ഇല്ലാതെ അതേ കമാൻഡ് പ്രയോഗിക്കുക. സ്ഥാനം 1 അതിനെ കൂടുതൽ വിശാല ഉപയോക്തൃ അനുമതികൾക്ക് മുകളിൽ വയ്ക്കുന്നു, മുമ്പ് ചർച്ച ചെയ്ത ഫ്രെയിംവർക്ക് നിയമങ്ങൾക്ക് മുകളിലല്ല. ഇന്റർഫേസ് നാമം ഈ ഗേറ്റ്വേയിലെ ടണൽ ഉപകരണവുമായി പൊരുത്തപ്പെടുന്നെന്ന് ഉറപ്പാക്കുക, കാരണം ഇനി ഇല്ലാത്ത ഇന്റർഫേസിനോട് ബന്ധിപ്പിച്ച നിയമം ലിസ്റ്റിലിരുന്ന് ശരിയായി കാണപ്പെടും, പക്ഷേ ഒന്നുമായും പൊരുത്തപ്പെടില്ല. പ്രയോഗിക്കുന്നതിന് മുമ്പ് ഉപകരണ റഫറൻസ് പുനർനാമകരണം ചെയ്യുക, പരിശോധന പരാജയപ്പെട്ടതിന് ശേഷമല്ല.

ആ നിയമത്തിൽ ലക്ഷ്യ പോർട്ട് ഇല്ല, അതിനാൽ അത് ആ വിലാസത്തിലെ HTTPS മാത്രമല്ല, എല്ലാ TCP പോർട്ടുകളും നിഷേധിക്കുന്നു. ഉദ്ദേശ്യം ഒരൊറ്റ സേവനമാണെങ്കിൽ പോർട്ട് പേര് നൽകുക; പോളിസിയേക്കാൾ വിശാലമായ നിയമം അതിന്റെ ആദ്യ വായനക്കാരനെ കാത്തിരിക്കുന്ന ഭാവി സംഭവമാണ്.

ഉറവിടം ഒരൊറ്റ വിലാസത്തിൽ പരിമിതപ്പെടുത്തുക, ആ വിലാസം ഉദ്ദേശിച്ച ഐഡന്റിറ്റിയുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ മാത്രം. ചലനാത്മക അനുവദനത്തോടുകൂടിയ VPN പൂൾ നാളെ അതേ വിലാസം മറ്റൊരു ക്ലയന്റിന് നൽകാം, നിഷേധം വ്യക്തിയെയല്ല, വിലാസത്തെ പിന്തുടരും.

സ്ഥാപിത ഫ്ലോകൾ പുതിയ നിയമത്തെ അതിജീവിക്കുന്നു

നിലവിലുള്ള സെഷൻ തുടരാനുള്ള കാരണം കണക്ഷൻ ട്രാക്കിംഗാണ്. ഒരു ഫ്ലോ സ്ഥാപിതമായി രേഖപ്പെടുത്തിയാൽ, മുൻ നിയമങ്ങൾ നിങ്ങളുടെ നിഷേധം പരിശോധിക്കുന്നതിന് മുമ്പുതന്നെ അതിന്റെ പാക്കറ്റുകൾ സ്വീകരിക്കുന്നു, കൈമാറ്റം ഒന്നും മാറാത്തതുപോലെ അവസാനിക്കുന്നു. അതിനാൽ തുറന്ന കണക്ഷൻ പുനരുപയോഗിക്കുന്ന ബ്രൗസർ ഉപയോഗിച്ചുള്ള പരിശോധന പുതിയ പോളിസിയെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല. വിന്യാസത്തിന് ശേഷം മിനിറ്റുകൾക്കുള്ളിൽ നിഷേധം ഉപയോഗശൂന്യമായി തോന്നാം, അടുത്തതായി കണക്ട് ചെയ്യുന്ന ഉപയോക്താവിന് പൂർണ്ണമായി ഫലപ്രദവുമാകാം.

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

പരിധികളും ഓർക്കുക. ഈ നിയമം ICMP, UDP അല്ലെങ്കിൽ IPv6-നെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല, അതിനാൽ വിജയകരമായ ping നിഷേധം പരാജയപ്പെട്ടതിന്റെ തെളിവല്ല. ഒരു IPv4 വിലാസവും വെബ്സൈറ്റല്ല: ഒരു നാമം പല വിലാസങ്ങളിലേക്ക് പരിഹരിക്കാം, നിങ്ങൾ പേരിട്ട ഒന്ന് മാത്രമാണ് ഉൾപ്പെടുത്തിയിരിക്കുന്നത്.

പുതിയ ഫ്ലോ ഉപയോഗിച്ച് പരിശോധിക്കുക

നമ്പർ ഇട്ട ഉപയോക്തൃ നിയമങ്ങളും ഫലപ്രദമായ അസംസ്കൃത കാഴ്ചയും വായിച്ച ശേഷം തിരഞ്ഞെടുത്ത ക്ലയന്റിൽ നിന്ന് പുതിയ കണക്ഷൻ തുറക്കുക:

sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail

അസംസ്കൃത കാഴ്ച പ്രധാനമാണ്, കാരണം status കൈകൊണ്ട് എഴുതിയ ഫ്രെയിംവർക്ക് നിയമങ്ങൾ ഒഴിവാക്കുന്നു, അതിനാൽ ക്രമം കെർണൽ നടപ്പാക്കുന്നതിൽ നിന്ന് വ്യത്യസ്തമായി തോന്നാം. ഒരു നിയമം തെറ്റായ സ്ഥലത്താണെന്ന് തീരുമാനിക്കുന്നതിന് മുമ്പ് രണ്ടും താരതമ്യം ചെയ്യുക.

പിന്നെ, നിയമം വിശാലമല്ല, സങ്കുചിതമാണെന്ന് തെളിയിക്കുന്ന രണ്ട് നിയന്ത്രണങ്ങൾ പരിശോധിക്കുക: അതേ ക്ലയന്റിൽ നിന്നുള്ള അനുവദനീയ ലക്ഷ്യം ഇപ്പോഴും പ്രവർത്തിക്കുന്നു, രണ്ടാമത്തെ ക്ലയന്റ് അതിന്റെ പോളിസി അനുവദിക്കുകയാണെങ്കിൽ നിഷേധിച്ച ലക്ഷ്യത്തിലേക്ക് ഇപ്പോഴും എത്തുന്നു. രണ്ട് പരിശോധനകളും തകർക്കുന്ന നിഷേധം പോളിസി മാറ്റമാണ്, ലക്ഷ്യമിട്ട നടപടിയല്ല.

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

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