Kuwasha upya ni njia ya kawaida zaidi ambayo watu hutumia kujaribu swichi ya usalama, na ndiyo jaribio linalosema uongo mara nyingi zaidi. Kisanduku cha kuteua kwenye mteja ni upendeleo tu; kinachojaliza ni kama kitu fulani kinalazimisha kizuizi kati ya wakati safu ya mtandao inapoinuka na wakati handaki linapowekwa kweli. Kwenye Windows kitu hicho kwa kawaida ni kichujio katika Windows Filtering Platform, kwenye Linux ni seti ya kanuni zinazopakiwa na kitengo, kwenye macOS ni nanga ya pf, kwenye Android ni bendera za mfumo wenyewe za kila-wakati-imewaka na kufunga. Mipangilio hii hujiendesha kwa namna tofauti sana katika kuwasha upya, na ni ile ya ngazi ya jukwaa pekee iliyo mahali pake kabla ya mtu yeyote kuingia.

Kuwasha upya huuliza maswali matatu tofauti

Gawanya swali. Kwanza, sera ipo kwenye diski katika umbo ambalo kitu fulani husoma wakati wa kuwasha? Pili, msomaji huyo hufanya kazi kabla ya trafiki yoyote kutoka? Tatu, sera inashughulikia trafiki unayojali, yaani kila mchakato, familia zote mbili za anwani na DNS. Ndiyo kwa la kwanza na hapana kwa la pili huzaa hasa hitilafu ambayo watu huiripoti kama swichi ya usalama isiyostahimili kuwasha upya: trafiki hutoroka kwa sekunde chache wakati wa kuanza, na hakuna anayegundua hadi mtu aende kuangalia.

Tenganisha tabaka. Seti ya kanuni za ukuta wa moto iliyohifadhiwa, huduma inayoanza wakati wa kuwasha na upendeleo wa mteja ni vitu vitatu tofauti vyenye maisha matatu tofauti. Upendeleo huo hustahimili kuwasha upya kwa sababu ni thamani katika faili ya usanidi. Kanuni ni kitu pekee kinachozuia pakiti, na hizo hupotea pamoja na kiini kilizoshikilia.

Pata kitu kinachorejesha kizuizi

Kwenye Linux kanuni za netfilter huishi ndani ya kiini. Hakuna kinachoziandika tena wakati wa kuwasha isipokuwa umepanga hivyo: iptables-save pamoja na netfilter-persistent, nftables.service hupakia /etc/nftables.conf, au kitengo cha systemd kinachoendesha script yako mwenyewe. Angalia kinachowezeshwa, si kile unachokumbuka kuwa ulisanidi.

systemctl is-enabled nftables netfilter-persistent 2>/dev/null
sudo nft list ruleset
sudo iptables -S OUTPUT

Seti tupu ya kanuni sekunde chache baada ya kuwasha ni jibu la swali lililo kwenye kichwa. Kwenye Windows uliza huduma ya mteja jinsi inavyoanza, kisha toa hali ya kichujio cha jukwaa wakati handaki likiwa chini.

Get-Service | Where-Object { $_.Name -match 'vpn' } | Select-Object Name, Status, StartType
netsh wfp show state

Amri ya pili huandika wfpstate.xml kwenye folda ya sasa. Tafuta vichujio vyenye kitendo cha kuzuia ambavyo tayari vipo kabla mteja hajaunganisha. Base Filtering Engine huanza mapema wakati wa kuwasha na hurejesha vichujio vilivyoongezwa kwa bendera ya kudumu, ndiyo sababu baadhi ya swichi za usalama huzuia trafiki kabla ya dirisha lolote la mteja kuwepo na nyingine hazifanyi. Kwenye macOS sudo pfctl -s info huripoti kama pf imewezeshwa, sudo pfctl -s rules huonyesha kilichopakiwa, na wateja wa VPN kwa kawaida huambatanisha kanuni zao na nanga badala ya seti kuu. Kanuni inayotaja utun3 inaweza baada ya kuwasha kunako fuata kuelekeza kwenye kiolesura kingine, kwa sababu namba hiyo hutolewa wakati wa utekelezaji.

Angalia pengo kati ya mtandao kupanda na handaki kupanda

Muda hatari si kuwasha upya kote, ni pengo. Kiolesura hupokea kukodisha na njia chaguo-msingi kwa wakati mmoja, huduma ya VPN huanza kwa wakati mwingine, na handaki huthibitisha baadaye zaidi, wakati mwingine tu baada ya mtumiaji kuingia na wakala wa vitambulisho kufanya kazi. Kama kizuizi kinatumika mwisho, kila kitu kilicho kwenye pengo hutoka wazi.

Kwenye wenyeji wa systemd soma mpangilio badala ya kukisia. Endesha systemctl cat kwenye vitengo vya VPN na ukuta wa moto na tafuta After= au Before= kuhusiana na network-pre.target na network-online.target. Kitengo cha ukuta wa moto kilichopangwa baada ya network-online.target hushindwa na kiolesura; kile kinachohitajika na kupangwa kabla ya network-pre.target hushinda. Kwenye Windows maswali yanayolingana ni aina ya kuanza ya huduma na vitegemezi vyake, kwa sababu huduma iliyowekwa kwenye Manual haiwezi kuzuia mchakato wa wakati wa kuwasha. Kama hitaji lako linajumuisha trafiki kabla ya kuingia, ni mpangilio wa ngazi ya kifaa pekee unaolikidhi: handaki la kifaa la Always On VPN huthibitisha kwa cheti cha mashine na huunganisha kabla mtumiaji hajaingia, na Microsoft huandika usanidi wa handaki la kifaa kando na handaki la mtumiaji. Android huchukua njia nyingine, hulazimisha VPN ya kila-wakati na huzuia miunganisho bila hiyo kutoka kwenye mfumo na si kutoka kwenye mchakato wa programu.

Endesha jaribio, kisha linganisha mistari miwili ya muda

Washa upya ukiwa na lengo ambalo hakuna gharama kama likivuja, na nasa hali wakati wa pengo badala ya baada yake. Njia safi zaidi ni kichunguzi cha wakati wa kuwasha: kitengo cha oneshot au kazi iliyoratibiwa inayoanza mapema kadri jukwaa linavyoruhusu, hurekodi njia chaguo-msingi na hali ya ukuta wa moto, hujaribu ombi moja kwa muda mfupi na huongeza mstari kwenye faili ya ndani. Linganisha rekodi hiyo na muda wa kuanza wa huduma ya VPN kutoka journalctl -b -u au kumbukumbu ya Mfumo.

Kisha endesha jaribio la kawaida: handaki juu, kata muunganisho, angalia kama trafiki ya moja kwa moja imezuiwa, rejesha. Kupita la pili na kushindwa la kwanza ni matokeo ya kawaida, na inamaanisha utekelezaji uko upande wa mteja, hutumika wakati mteja angana na si wakati wa kuwasha. Kwenye mashine ya mwisho niliyoikagua, kizuizi kilitoka kwenye script ya msambazaji wa NetworkManager: ipo na ni sahihi na haina faida kwa sekunde kabla kiolesura haijapanda. Andika matokeo yote mawili, kwa sababu kustahimili kuwasha upya kuna maana tu unaposema tabaka gani lilistahimili na kuanzia wakati gani.

Funga pengo bila kukata njia yako ya kurudi

Kama kizuizi hakipo wakati wa kuwasha, sogeza utekelezaji chini tabaka moja badala ya kuongeza kanuni ya pili ya mteja. Hifadhi seti ya kanuni na uipakishe kutoka kwenye kitengo kilichopangwa kabla mtandao haujawa tayari kutumika, na hakikisha kitengo hicho hakihitaji utafutaji wa DNS au upachikaji wa mtandao ambao kinapaswa kuulinda. Upeo ni muhimu kama muda: kanuni zinazolingana na kitambulisho cha mtumiaji au cgroup huwaacha kila daemon ya mfumo nje ya kizuizi, na seti inayoshughulikia IPv4 pekee huiacha IPv6 na DNS zikifikiwa.

Jiachie njia ya kurudi. Mashine inayozuia kila kitu wakati wa kuwasha kisha isiweze kuthibitisha haina mtandao kabisa, na suluhisho si kufuta kizuizi bali kurekebisha vitambulisho au mpangilio. Weka utaratibu ulioandikwa wa konsoli ya ndani na ubaguzi mwembamba, wa kukusudia kwa kile handaki linahitaji kweli, kama anwani ya seva na kitatuzi kinachotumika kabla handaki halipo.

Kabla ya kuamini mpangilio huu, thibitisha mambo manne kwa mpangilio. Sera imehifadhiwa mahali ambapo kuwasha kunasoma. Msomaji huyo hufanya kazi kabla kiolesura hakijawa tayari kutumika. Kizuizi kinashughulikia familia zote mbili za anwani na DNS. VPN bado inaweza kuthibitisha wakati kizuizi kikiwa hai. Mambo yote manne yanapokuwepo, kuwasha upya hakubadilishi chochote.

Makala zinazohusiana