Mabadiliko ya kanuni ya firewall hayafanyi kazi: mpangilio wa kanuni na hali ya muunganisho
Kanuni iliyohaririwa inaweza kukaa nyuma ya idhini ya awali au kurukwa na ufuatiliaji wa miunganisho. Tenganisha majaribio mawili, tumia mtiririko mpya na uweke njia ya kurudi.
Ulihariri kanuni, ukapakia upya seti ya kanuni, na handaki inafanya kama ilivyokuwa awali. Matokeo haya yana sababu mbili za kawaida, na zinahitaji majaribio tofauti. Ama kanuni mpya iko baada ya kanuni ya awali iliyokwisha kukubali pakiti, au mabadilishano unayoyaangalia ni muunganisho unaofuatiliwa ambao mabadiliko hayaufanyii tathmini upya kamwe. Kanuni iliyo katika faili huonyesha nia; kinachoamua pakiti ni njia hai ambayo inakutana nayo. Pitia ukaguzi ulio hapa chini kwa mpangilio, na wakati huo huo weka njia ya kurudi wazi.
Mpangilio wa kanuni na hali ya muunganisho ni hitilafu tofauti
Minyororo iliyopangwa hupimwa kutoka juu hadi chini, na kanuni ya kwanza inayofikia uamuzi wa mwisho humaliza mwendo katika mnyororo huo. Weka idhini pana juu ya kanuni ya kufunga iliyoandikwa kwa uangalifu, na kanuni ya kufunga inakuwa nyaraka: iko katika seti, kihesabu chake ni sifuri, na hakuna pakiti itakayoifikia kamwe. Maandishi yale yale yaliyotumika kwenye mnyororo mwingine pia hayathibitishi chochote. Katika nftables minyororo ya msingi huunganishwa na ndoano kwa vipaumbele, kwa hivyo idhini katika mnyororo mmoja haizuii mnyororo mwingine kwenye ndoano au kipaumbele tofauti kuona pakiti hiyo hiyo.
Ufuatiliaji wa miunganisho huzalisha dalili ya pili, na kwa nje inaonekana sawa kabisa. Mtiririko unapoingia kwenye jedwali la hali, idhini ya established-or-related karibu na kilele cha mnyororo hurudi kabla kanuni yako mpya haijazingatiwa. Ramani za NAT zina sifa hiyo hiyo: tafsiri iliwekwa mtiririko ulipoanza, kwa hivyo kanuni ya postrouting iliyohaririwa haiandiki upya kikao kinachoendelea tayari. Ndiyo sababu mabadiliko yanaonekana kufanya kazi saa 09:00 kwa muunganisho mpya na yanaonekana hayafanyi chochote kwa kikao ambacho mtu alifungua saa 08:55.
Vikundi vya usalama vya wingu vinaongeza mfano wa tatu unaowakamata wale waliojifunza kwenye iptables. Kanuni zao za kuingia ni orodha ya ruhusa inayopimwa kama seti badala ya mwendo wa mechi ya kwanza, zina hali, na kuondoa kanuni ya ruhusa hakuendeshi mtiririko ambao tayari unafuatiliwa. Kudhani semantiki ya mechi ya kwanza kwenye jukwaa lisilo nayo hupelekea hitimisho la uhakika lakini lisilo sahihi.
Soma seti hai ya kanuni, sio faili uliyohariri
Anza na kile kerneli inatekeleza sasa hivi. Mipangilio iliyohifadhiwa ambayo haikutumika kamwe hufafanua idadi ya kushangaza ya tabia zisizobadilika, na kuiondoa kunagharimu amri moja tu:
nft list ruleset
iptables-saveKisha uliza kama kanuni yako inafikiwa hata kidogo. Vihesabu vya pakiti hujibu hilo moja kwa moja, na hujibu vizuri zaidi kuliko hoja yoyote kuhusu nia:
iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forwardKanuni ya kufunga yenye pakiti sifuri baada ya jaribio halisi la mtihani sio tatizo la sera, ni tatizo la mahali. Kuihamisha ni mabadiliko ya mstari mmoja, na sintaksia ndiyo hasa iliyosababisha hitilafu ya awali. Kwa iptables -I huingiza na -A huongeza mwishoni; kwa nftables insert huweka kanuni mwanzoni wa mnyororo wakati add huongeza mwishoni. Kanuni inapopaswa kushinda, sema hivyo wazi badala ya kutegemea mpangilio uliopakiwa kwa bahati.
Thibitisha kama mtiririko unafuatiliwa
Kabla ya kulaumu kanuni, angalia kama trafiki ni muunganisho unaofuatiliwa hata kidogo. Uliza jedwali la hali kuhusu mtiririko mahususi badala ya kumwaga lote:
conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194Orodha inaonyesha hali na muda uliobaki, na hivyo unatofautisha kikao kilichoanzishwa na jaribio jipya; hali ya matukio huchapisha masasisho yanapotokea, ambayo ni muhimu unapounganisha mteja tena. Ikiwa mtiririko upo katika hali iliyoanzishwa kabla ya kugusa chochote, hakuna uhariri wa kanuni za kuchuja utakaobadilisha hatima yake. Hii sio hitilafu katika firewall, hii ni mkataba wa kuchuja kwa hali.
Pinga njia ya mkato ya kumwaga jedwali lote kwenye lango la uzalishaji. conntrack -F inapatikana, na pia huharibu kila mtiririko unaofuatiliwa kwenye mashine, ikiwa ni pamoja na kikao cha usimamizi unachofanyia kazi na handaki inayobeba shell yako. Maingizo ya mtu mmoja yanaweza kufutwa unapohitaji kweli, lakini mtiririko mpya kutoka bandari mpya ya chanzo kwa kawaida ni jaribio safi zaidi.
Baadhi ya njia hazifuatiliwi, na zinafanya kinyume. Trafiki iliyowekwa alama kama notrack katika jedwali la raw, baadhi ya handaki zinazopita ndoano za kawaida, na uelekezaji usio sawa unaogawanya mtiririko kati ya lango mbili zote huzalisha pakiti zinazopimwa moja baada ya nyingine, au hali ambayo haijaumbwa kamwe katika ncha zote mbili. Ikiwa vihesabu vinahama kwa kila pakiti, shuku njia ya aina hiyo kabla ya kushuku mpangilio.
Jaribu kutoka mtiririko mpya ukiwa na njia ya kurudi
Kabla ya kujaribu kanuni inayoweza kukata ufikiaji wa mbali, weka njia ya urejeshaji: konsoli ya mtoa huduma, konsoli ya mfululizo, anwani ya usimamizi nje ya bendi, au kiolesura cha pili ambacho kanuni haiwezi kukilinganisha. Kipima muda cha kurudisha nyuma ni mwenza anayefaa, kwa sababu kitarejesha seti ya awali ya kanuni hata kikao chako kikifa katikati ya jaribio.
Kisha jaribu kwa mabadilishano ambayo hali haikuweza kuifunika tayari. Tenganisha na unganisha tena mteja ili mchanganyiko mpya wa tano uundwe, na uangalie ncha zote mbili wakati hilo likitokea:
tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pagerEndesha jaribio katika pande zote mbili. Kanuni inayozuia kukosisana kwa kuingia mpya bado inaweza kuruhusu njia ya jibu, au kinyume chake, na matokeo ya upande mmoja ndiyo sababu ya kawaida ya kufunga kufanya kazi nusu. Unganisha tena mara moja baada ya jaribio ili kuthibitisha hali thabiti, na angalia kama ufikiaji halali wa usimamizi uliokoka; kanuni iliyoandikwa kwa bandari moja ina tabia ya kukutana na kiwango pana kuliko ilivyokusudiwa.
Rekodi kusudi na mahali pamoja na kanuni
Kanuni isiyo na kusudi lililorekodiwa ni kanuni ambayo hakuna anayethubutu kuiondoa. Kando ya kila ingizo la kufunga, weka mtiririko inaolinda, mnyororo na ndoano inamoishi, mahali inapaswa kushikilia kuhusiana na idhini pana, na jaribio lililothibitisha hilo. Mtu anapohariri seti ya kanuni inayozunguka baada ya miezi sita, noti hiyo ndiyo onyo pekee kwamba mahali palikuwa kwa kusudi.
Kabla ya kufunga mabadiliko, thibitisha mambo manne: seti ya kanuni inayoendesha inalingana na faili, kanuni mpya ina vihesabu visivyo sifuri baada ya jaribio jipya, mwelekeo wa kinyume na ufikiaji wa usimamizi bado hufanya kazi, na umeunganisha tena mara moja ili kuthibitisha hali thabiti badala ya hali ya kikao cha zamani kuliko mabadiliko. Ikiwa chochote kati ya hivi hakijathibitishwa, mabadiliko hayajakamilika, vyovyote handaki inavyofanya.