Miundo miwili inaahidi kitu kimoja: lango linapoanguka, hakuna kinachotoka nje kwa uwazi. Moja huendesha skript wakati wa kushusha na kukata violongo. Nyingine huacha sheria ya firewall ikiwa na nguvu na haimwombi mteja wa VPN chochote. Zinatofautiana kwa nani ana ruhusa ya kutenda, nini hufanyika ndani ya pengo na jinsi mashine inarudi mtandaoni baada ya hapo. Kuzilinganisha katika hoja hizo tatu ni muhimu zaidi kuliko kubishana ipi ni kali zaidi.

Kazi moja kwa njia mbili

Mteja anaweza kuendesha ndoano lango linapopanda na linaposhushwa, ikiwa profaili inaruhusu utekelezaji wa skript. Ndoano hiyo huendeshwa ndani ya mzunguko wa maisha wa mteja, wakati muunganisho unafungwa. Sheria ya firewall, kwa upande mwingine, inamilikiwa na mfumo na haijali ikiwa mteja anaendesha, umeanguka au umeuawa.

PropertyTeardown scriptFirewall unit
Runs when the client is killedNoYes
Needs privilege at teardown timeUsually yesConfigured once, at boot
Acts on the whole machineOften, including recovery pathsOnly on the flows it matches

Jedwali hilo ndilo hoja yote. Skript inayoendeshwa tu wakati wa kufunga kwa utulivu inashughulikia kesi ambayo ulikuwa na wasiwasi mdogo nayo; kesi muhimu ni kuanguka au mtandao kupotea, na hakuna hata moja inayotoa kushusha safi.

Ndoano ya kushusha inaweza kufanya nini na haitaweza kufanya nini

Mfumo ulioandikwa hupitia violongo vya mtandao na kushusha kila kitu isipokuwa loopback. Kifaa halisi kinaposhushwa, hakuna kinachoweza kutoroka nje ya lango, na hilo ndilo lengo hasa.

#!/bin/sh
for dev in /sys/class/net/*; do
  name=$(basename "$dev")
  [ "$name" = lo ] || ip link set dev "$name" down
done

Pia hushusha mtandao wa ndani, huduma yoyote inayohifadhiwa na mashine na njia ambayo ungetumia kurekebisha tatizo. Kwenye kompyuta ya mkononi kifaa kisichotumia waya wakati mwingine huhitaji kubadilishwa kwa mkono baadaye, kwa hivyo usumbufu mfupi unakuwa kikao cha ukarabati. Mbaya zaidi, huenda ndoano isiruhusiwe kufanya lolote la hayo: mteja anapotoa ruhusa, skript ya kushusha huendeshwa chini ya akaunti isiyo na ruhusa, na kila mabadiliko ya violongo hushindwa kwa hitilafu ya ruhusa iliyoandikwa wakati ambao hakuna anayesoma kumbukumbu.

Angalia jinsi mteja anavyoanzishwa kabla ya kuamini ndoano. Skript inayofanya kazi unapoiendesha kwa mkono kama root haithibitishi chochote kuhusu huduma inayoanza wakati wa kuwasha.

Sheria ya firewall inafanya nini tofauti

Sheria inayoruhusu trafiki ya lango pekee inaendelea kufanya kazi mchakato wa mteja unapotoweka, kwa sababu kiini hakitagemei mchakato huo. Sheria pia ni nyembamba zaidi: inazuia mtiririko unaolingana nayo na kuacha loopback, subnet ya ndani na njia ya urejeshaji, ndiyo sababu haiachi mashine imekwama.

Gharama ni kwamba sheria lazima iandikwe na kudumishwa na mmiliki wa firewall ya mwenyeji, na lazima itaje kifaa cha lango ambacho mteja huunda kwa kweli. Hiyo inamaanisha sheria na profaili lazima zidumishwe pamoja; violongo vilivyobadilishwa jina huacha firewall inayozuia kila kitu na haielezi chochote.

Hakuna utaratibu unaofanya mwingine kuwa usio wa lazima. Sheria ya firewall isiyopakiwa upya kamwe baada ya hariri ni ya kubuni kama skript isiyoendeshwa kamwe.

persist-tun huamua ikiwa kuna pengo

Kifaa cha lango kinapostahimili kukatika, njia zinazoelekea humo pia hustahimili. Trafiki basi hutupwa badala ya kuelekezwa upya, kwa hivyo njia ya msingi hairudi kwenye lango halisi. Tabia hii ndiyo inayofanya uvujaji usiwezekane hata kabla ya sheria yoyote ya firewall kuhusika.

Bila mpangilio huo kifaa huondolewa pamoja na njia, na njia ya msingi inaweza kuelekea tena kwenye lango halisi. Ikiwa itafanya hivyo inategemea jukwaa na mteja, na ndiyo sababu hali lazima izingatiwe badala ya kudhaniwa. Chukulia mpangilio kama sehemu ya kill switch, si chaguo la utendaji.

Weka njia ya kuunganisha upya ikiwa hai, kisha jaribu hali nne

Kizuizi kikali kinaweza pia kumzuia mteja kuunganisha upya, kwa sababu mteja bado anahitaji njia ya kufikia seva kupitia lango halisi wakati kila kitu kingine kinakataliwa. Sakinisha njia ya mwenyeji kwa anwani moja hiyo kabla lango halijapanda, na tatua jina kwanza, kwa sababu DNS inaweza kuwa imezuiwa wakati unaihitaji.

ip route add 198.51.100.20/32 via 192.168.0.1 dev wlan0

Kisha thibitisha hali na si lebo. Fanya mazoezi ya matukio manne kwa makusudi: kuanza baridi bila lango, kikao chenye afya, anguko ambalo hakuna aliyeliomba, na kikao baada ya kupona. Katika kila tukio soma njia ya msingi na fanya ombi moja ambalo anwani yake ya kutoka inaonekana. Programu inayokata tamaa wakati lango liko chini haisemi chochote kuhusu mteja wa barua au kisasaishaji, kwa hivyo rudia ukaguzi wa mwisho na programu moja ya chinichini. Andika sheria, majina ya violongo na hatua za urejeshaji, kwa sababu kill switch ambayo hakuna anayeweza kuthibitisha ni uvumi tu.

Makala zinazohusiana