ഫയർവാൾ നിയമമാറ്റം പ്രവർത്തിക്കുന്നില്ല: നിയമങ്ങളുടെ ക്രമവും കണക്ഷൻ അവസ്ഥയും
തിരുത്തിയ നിയമം മുൻകാല അനുമതിക്ക് പിന്നിൽ ആകാം, അല്ലെങ്കിൽ കണക്ഷൻ ട്രാക്കിംഗ് അത് ഒഴിവാക്കാം. രണ്ട് പരിശോധനകൾ വേർതിരിക്കുക, പുതിയ ഒഴുക്ക് ഉപയോഗിക്കുക, തിരികെ വരാനുള്ള വഴി സൂക്ഷിക്കുക.
നിങ്ങൾ നിയമം തിരുത്തി, നിയമക്കൂട്ടം വീണ്ടും ലോഡ് ചെയ്തു, എന്നിട്ടും ടണൽ മുൻപത്തേതുപോലെ തന്നെ പ്രവർത്തിക്കുന്നു. ഈ ഫലത്തിന് രണ്ട് സാധാരണ കാരണങ്ങളുണ്ട്, അവയ്ക്ക് വ്യത്യസ്ത പരിശോധനകൾ വേണം. ഒന്നുകിൽ പുതിയ നിയമം ഇതിനകം പാക്കറ്റ് സ്വീകരിച്ച മുൻ നിയമത്തിന് ശേഷമാണ്, അല്ലെങ്കിൽ നിങ്ങൾ നിരീക്ഷിക്കുന്ന കൈമാറ്റം മാറ്റം ഒരിക്കലും വീണ്ടും വിലയിരുത്താത്ത ട്രാക്ക് ചെയ്ത കണക്ഷനാണ്. ഫയലിലെ നിയമം ഉദ്ദേശ്യം പ്രകടിപ്പിക്കുന്നു; പാക്കറ്റിന്റെ വിധി നിർണ്ണയിക്കുന്നത് അത് കണ്ടുമുട്ടുന്ന സജീവ പാതയാണ്. താഴെയുള്ള പരിശോധനകൾ ക്രമത്തിൽ ചെയ്യുക, അത് ചെയ്യുമ്പോൾ തിരികെ വരാനുള്ള വഴി തുറന്നിടുക.
നിയമങ്ങളുടെ ക്രമവും കണക്ഷൻ അവസ്ഥയും വ്യത്യസ്ത തകരാറുകളാണ്
ക്രമീകരിച്ച ചെയിനുകൾ മുകളിൽ നിന്ന് താഴേക്ക് വിലയിരുത്തപ്പെടുന്നു, അന്തിമ വിധിയിൽ എത്തുന്ന ആദ്യ നിയമം ആ ചെയിനിലൂടെയുള്ള സഞ്ചാരം അവസാനിപ്പിക്കുന്നു. സൂക്ഷ്മമായി എഴുതിയ ലോക്ക്ഡൗൺ നിയമത്തിന് മുകളിൽ വിശാലമായ അനുമതി വെക്കുക, അപ്പോൾ ലോക്ക്ഡൗൺ നിയമം രേഖയായി മാറുന്നു: അത് നിയമക്കൂട്ടത്തിലുണ്ട്, അതിന്റെ കൗണ്ടർ പൂജ്യമാണ്, ഒരു പാക്കറ്റും അതിൽ എത്തുകയുമില്ല. അതേ പാഠം മറ്റൊരു ചെയിനിൽ പ്രയോഗിച്ചാലും ഒന്നും തെളിയിക്കുന്നില്ല. nftables ൽ അടിസ്ഥാന ചെയിനുകൾ മുൻഗണനകൾ പ്രകാരം ഹൂക്കുകളിൽ ബന്ധിക്കപ്പെടുന്നു, അതിനാൽ ഒരു ചെയിനിലെ അനുമതി മറ്റൊരു ഹൂക്കിലോ മുൻഗണനയിലോ ഉള്ള മറ്റൊരു ചെയിനിന് അതേ പാക്കറ്റ് കാണുന്നത് തടയുന്നില്ല.
കണക്ഷൻ ട്രാക്കിംഗ് രണ്ടാമത്തെ ലക്ഷണം സൃഷ്ടിക്കുന്നു, പുറത്തുനിന്ന് അത് അതേപോലെ കാണപ്പെടുന്നു. ഒരു ഒഴുക്ക് അവസ്ഥാ പട്ടികയിൽ എത്തിയാൽ, ചെയിനിന്റെ മുകളിലിനടുത്തുള്ള established-or-related അനുമതി നിങ്ങളുടെ പുതിയ നിയമം പരിഗണിക്കുന്നതിന് മുൻപേ തിരികെ വരുന്നു. NAT മാപ്പിംഗുകൾക്കും അതേ സ്വഭാവമുണ്ട്: ഒഴുക്ക് തുടങ്ങിയപ്പോൾ തന്നെ വിവർത്തനം നിശ്ചയിച്ചിരുന്നു, അതിനാൽ തിരുത്തിയ postrouting നിയമം ഇതിനകം പ്രവർത്തിക്കുന്ന സെഷൻ വീണ്ടും എഴുതുന്നില്ല. അതുകൊണ്ടാണ് 09:00 ന് പുതിയ കണക്ഷനിൽ മാറ്റം പ്രവർത്തിക്കുന്നതായി തോന്നുന്നതും 08:55 ന് ആരോ തുറന്ന സെഷനിൽ ഒന്നും ചെയ്യാത്തതായി തോന്നുന്നതും.
ക്ലൗഡ് സെക്യൂരിറ്റി ഗ്രൂപ്പുകൾ iptables ൽ പഠിച്ചവരെ പിടിക്കുന്ന മൂന്നാമത്തെ മാതൃക ചേർക്കുന്നു. അവയുടെ ഇൻബൗണ്ട് നിയമങ്ങൾ ആദ്യ പൊരുത്തത്തിന്റെ സഞ്ചാരമല്ല, കൂട്ടമായി വിലയിരുത്തുന്ന അനുമതിപ്പട്ടികയാണ്, അവ അവസ്ഥയുള്ളവയാണ്, അനുമതി നിയമം നീക്കം ചെയ്യുന്നത് ഇതിനകം ട്രാക്ക് ചെയ്യുന്ന ഒഴുക്കുകൾ അവസാനിപ്പിക്കുന്നില്ല. ആദ്യ പൊരുത്തത്തിന്റെ അർത്ഥശാസ്ത്രം ഇല്ലാത്ത പ്ലാറ്റ്ഫോമിൽ അത് അനുമാനിക്കുന്നത് ആത്മവിശ്വാസമുള്ള, തെറ്റായ നിഗമനങ്ങളിലേക്ക് നയിക്കുന്നു.
സജീവ നിയമക്കൂട്ടം വായിക്കുക, നിങ്ങൾ തിരുത്തിയ ഫയലല്ല
കർണൽ ഇപ്പോൾ അമൽപ്പെടുത്തുന്നതിൽ നിന്ന് തുടങ്ങുക. ഒരിക്കലും പ്രയോഗിക്കാത്ത സംരക്ഷിച്ച കോൺഫിഗറേഷൻ അതിശയകരമാംവിധം പല മാറ്റമില്ലാത്ത പെരുമാറ്റങ്ങൾ വിശദീകരിക്കുന്നു, അത് ഒഴിവാക്കാൻ ഒരു കമാൻഡ് മാത്രം മതി:
nft list ruleset
iptables-saveപിന്നെ നിങ്ങളുടെ നിയമം ആകെ എത്തുന്നുണ്ടോ എന്ന് ചോദിക്കുക. പാക്കറ്റ് കൗണ്ടറുകൾ അതിന് നേരിട്ട് ഉത്തരം നൽകുന്നു, ഉദ്ദേശ്യത്തെക്കുറിച്ചുള്ള ഏത് യുക്തിയെക്കാളും നന്നായി ഉത്തരം നൽകുന്നു:
iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forwardയഥാർത്ഥ പരീക്ഷണ ശ്രമത്തിന് ശേഷം പൂജ്യം പാക്കറ്റുള്ള ലോക്ക്ഡൗൺ നിയമം നയപ്രശ്നമല്ല, അത് സ്ഥാനപ്രശ്നമാണ്. അത് നീക്കുന്നത് ഒരു വരിയുടെ മാറ്റമാണ്, യഥാർത്ഥ ബഗ് ഉണ്ടാക്കിയത് കൃത്യമായി ആ വാക്യഘടനയാണ്. iptables ൽ -I ആദ്യം ചേർക്കുന്നു, -A അവസാനം ചേർക്കുന്നു; nftables ൽ insert നിയമം ചെയിനിന്റെ തുടക്കത്തിൽ വെക്കുന്നു, add അവസാനം ചേർക്കുന്നു. ഒരു നിയമം ജയിക്കണമെങ്കിൽ, യാദൃച്ഛികമായി ലോഡ് ചെയ്ത ക്രമം വിശ്വസിക്കുന്നതിന് പകരം അത് വ്യക്തമായി പറയുക.
ഒഴുക്ക് ട്രാക്ക് ചെയ്യുന്നുണ്ടോ എന്ന് തെളിയിക്കുക
നിയമത്തെ കുറ്റപ്പെടുത്തുന്നതിന് മുൻപ്, ട്രാഫിക് ആകെ ട്രാക്ക് ചെയ്ത കണക്ഷനാണോ എന്ന് പരിശോധിക്കുക. അവസ്ഥാ പട്ടിക മുഴുവൻ ഒഴുക്കുന്നതിന് പകരം നിർദ്ദിഷ്ട ഒഴുക്കിനെക്കുറിച്ച് ചോദിക്കുക:
conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194പട്ടിക അവസ്ഥയും ബാക്കിയുള്ള സമയപരിധിയും കാണിക്കുന്നു, അങ്ങനെയാണ് സ്ഥാപിത സെഷനെ പുതിയ ശ്രമത്തിൽ നിന്ന് വേർതിരിക്കുന്നത്; ഇവന്റ് മോഡ് സംഭവിക്കുമ്പോൾ തന്നെ അപ്ഡേറ്റുകൾ അച്ചടിക്കുന്നു, ഇത് ക്ലയന്റ് വീണ്ടും ബന്ധിപ്പിക്കുമ്പോൾ ഉപകരിക്കുന്നു. നിങ്ങൾ എന്തെങ്കിലും തൊടുന്നതിന് മുൻപേ ഒഴുക്ക് സ്ഥാപിത അവസ്ഥയിൽ ഉണ്ടെങ്കിൽ, ഫിൽട്ടർ നിയമങ്ങളുടെ ഏത് തിരുത്തലും അതിന്റെ വിധി മാറ്റില്ല. ഇത് ഫയർവാളിലെ ബഗ്ഗല്ല, ഇത് അവസ്ഥയുള്ള ഫിൽട്ടറിംഗിന്റെ കരാറാണ്.
ഉൽപ്പാദന ഗേറ്റ്വേയിൽ മുഴുവൻ പട്ടികയും കാലിയാക്കുന്ന എളുപ്പവഴിയെ എതിർക്കുക. conntrack -F ലഭ്യമാണ്, അത് യന്ത്രത്തിലെ എല്ലാ ട്രാക്ക് ചെയ്ത ഒഴുക്കുകളും നശിപ്പിക്കുന്നു, നിങ്ങൾ ജോലി ചെയ്യുന്ന മാനേജ്മെന്റ് സെഷനും നിങ്ങളുടെ ഷെൽ വഹിക്കുന്ന ടണലും ഉൾപ്പെടെ. യഥാർത്ഥത്തിൽ ആവശ്യമുള്ളപ്പോൾ വ്യക്തിഗത എൻട്രികൾ ഇല്ലാതാക്കാം, പക്ഷേ പുതിയ സോഴ്സ് പോർട്ടിൽ നിന്നുള്ള പുതിയ ഒഴുക്ക് സാധാരണയായി കൂടുതൽ വൃത്തിയുള്ള പരീക്ഷണമാണ്.
ചില പാതകൾ ട്രാക്ക് ചെയ്യപ്പെടുന്നില്ല, അവ വിപരീതമായി പ്രവർത്തിക്കുന്നു. raw പട്ടികയിൽ notrack എന്ന് അടയാളപ്പെടുത്തിയ ട്രാഫിക്, സാധാരണ ഹൂക്കുകൾ ഒഴിവാക്കുന്ന ചില ടണലുകൾ, ഒഴുക്കിനെ രണ്ട് ഗേറ്റ്വേകൾക്കിടയിൽ വിഭജിക്കുന്ന അസമമായ റൂട്ടിംഗ് — എല്ലാം ഒന്നൊന്നായി വിലയിരുത്തുന്ന പാക്കറ്റുകളോ രണ്ട് അറ്റങ്ങളിലും ഒരിക്കലും ഉണ്ടാകാത്ത അവസ്ഥയോ സൃഷ്ടിക്കുന്നു. ഓരോ പാക്കറ്റിനും കൗണ്ടറുകൾ നീങ്ങുന്നുവെങ്കിൽ, ക്രമത്തെ സംശയിക്കുന്നതിന് മുൻപ് അത്തരം പാതയെ സംശയിക്കുക.
തിരികെ വരാനുള്ള വഴിയോടെ പുതിയ ഒഴുക്കിൽ നിന്ന് പരിശോധിക്കുക
വിദൂര പ്രവേശനം മുറിക്കാനിടയുള്ള നിയമം പരിശോധിക്കുന്നതിന് മുൻപ് വീണ്ടെടുപ്പ് പാത ഉണ്ടാക്കുക: ദാതാവിന്റെ കൺസോൾ, സീരിയൽ കൺസോൾ, ബാൻഡിന് പുറത്തുള്ള മാനേജ്മെന്റ് വിലാസം, അല്ലെങ്കിൽ നിയമത്തിന് പൊരുത്തപ്പെടാനാകാത്ത രണ്ടാമത്തെ ഇന്റർഫേസ്. റോൾബാക്ക് ടൈമർ ന്യായമായ കൂട്ടുകാരനാണ്, കാരണം പരീക്ഷണത്തിനിടയിൽ നിങ്ങളുടെ സെഷൻ മരിച്ചാലും അത് മുൻ നിയമക്കൂട്ടം പുനഃസ്ഥാപിക്കും.
പിന്നെ അവസ്ഥ ഇതിനകം മൂടാനാകാത്ത കൈമാറ്റം കൊണ്ട് പരിശോധിക്കുക. ക്ലയന്റ് വിച്ഛേദിച്ച് വീണ്ടും ബന്ധിപ്പിക്കുക, പുതിയ അഞ്ചെണ്ണം ഉണ്ടാകട്ടെ, അത് സംഭവിക്കുമ്പോൾ രണ്ട് അറ്റങ്ങളും നിരീക്ഷിക്കുക:
tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pagerപരീക്ഷണം രണ്ട് ദിശകളിലും നടത്തുക. പുതിയ ഇൻബൗണ്ട് ഹാൻഡ്ഷേക്ക് തടയുന്ന നിയമത്തിന് മറുപടി പാത അനുവദിക്കാം, അല്ലെങ്കിൽ നേരെ മറിച്ചും, ഏകദിശാ ഫലമാണ് ലോക്ക്ഡൗൺ പകുതി പ്രവർത്തിക്കാനുള്ള സാധാരണ കാരണം. പരീക്ഷണത്തിന് ശേഷം സ്ഥിരമായ അവസ്ഥ ഉറപ്പാക്കാൻ വീണ്ടും ഒരിക്കൽ ബന്ധിപ്പിക്കുക, നിയമാനുസൃത മാനേജ്മെന്റ് പ്രവേശനം അതിജീവിച്ചോ എന്ന് പരിശോധിക്കുക; ഒരു പോർട്ടിനായി എഴുതിയ നിയമത്തിന് ഉദ്ദേശിച്ചതിലും വിശാലമായ ശ്രേണിയുമായി പൊരുത്തപ്പെടാനുള്ള ശീലമുണ്ട്.
നിയമത്തോടൊപ്പം ഉദ്ദേശ്യവും സ്ഥാനവും രേഖപ്പെടുത്തുക
രേഖപ്പെടുത്തിയ ഉദ്ദേശ്യമില്ലാത്ത നിയമം ആരും നീക്കാൻ ധൈര്യപ്പെടാത്ത നിയമമാണ്. ഓരോ ലോക്ക്ഡൗൺ എൻട്രിക്കൊപ്പവും അത് സംരക്ഷിക്കുന്ന ഒഴുക്ക്, അത് ജീവിക്കുന്ന ചെയിനും ഹൂക്കും, വിശാലമായ അനുമതികളുമായി അത് നിലനിർത്തേണ്ട സ്ഥാനം, അത് തെളിയിച്ച പരീക്ഷണം എന്നിവ സൂക്ഷിക്കുക. ആറ് മാസത്തിന് ശേഷം ആരെങ്കിലും ചുറ്റുമുള്ള നിയമക്കൂട്ടം തിരുത്തുമ്പോൾ, ആ കുറിപ്പ് മാത്രമാണ് സ്ഥാനം ബോധപൂർവമായിരുന്നു എന്ന ഏക മുന്നറിയിപ്പ്.
മാറ്റം അടയ്ക്കുന്നതിന് മുൻപ് നാല് കാര്യങ്ങൾ ഉറപ്പാക്കുക: പ്രവർത്തിക്കുന്ന നിയമക്കൂട്ടം ഫയലുമായി പൊരുത്തപ്പെടുന്നു, പുതിയ ശ്രമത്തിന് ശേഷം പുതിയ നിയമത്തിന് പൂജ്യമല്ലാത്ത കൗണ്ടറുകളുണ്ട്, വിപരീത ദിശയും മാനേജ്മെന്റ് പ്രവേശനവും ഇപ്പോഴും പ്രവർത്തിക്കുന്നു, മാറ്റത്തിന് മുൻപുള്ള സെഷന്റെ അവസ്ഥയല്ല, സ്ഥിരമായ അവസ്ഥ തെളിയിക്കാൻ നിങ്ങൾ ഒരിക്കൽ വീണ്ടും ബന്ധിപ്പിച്ചു. ഇവയിലൊന്നും പരിശോധിച്ചിട്ടില്ലെങ്കിൽ, ടണൽ എന്ത് ചെയ്താലും മാറ്റം പൂർത്തിയായിട്ടില്ല.