Kill switch huzuia seva ya VPN kabla ya trafiki yoyote kutiririka
Hatua ipi kill switch inazuia: utafutaji wa mwisho wa njia, njia ya nje, njia ya kurudi na misamaha ya wenzao iliyopitwa na wakati — kwa vihesabu badala ya makisio.
Kill switch hushindwa katika mwelekeo ambao watu hawautarajii: zimejengwa kuzuia trafiki wakati handaki iko chini, na pakiti zinazojenga handaki ni trafiki zenyewe. Hilo ndilo hitilafu yote. Seti ya kanuni inayotupa kila kitu kisichotoka kupitia handaki pia hutupa makubaliano ya mkono ambayo yangelipeleka juu, kwa hivyo mteja hujaribu tena katika mzunguko na hitilafu huhusishwa na hatua inayokaguliwa kwanza. Kabla ya kupanua ukuta wa moto, tambua ni hatua ipi kati ya tatu inayokataliwa: utafutaji wa jina, pakiti ya nje kwa mwenzao, au jibu linalorudi.
Jinsi handaki na usafiri wake wenyewe hutegemeana
Soma mteja wa VPN kama hali mbili za mtandao zinazoshiriki njia moja ya soketi. Kabla handaki haijakuwepo, mteja hufungua soketi kwenye adapta ya kimwili na kutuma fremu zilizosimbwa kwa anwani na bandari ya mwenzao. Ni baada ya ubadilishanaji huo kufaulu ndipo huunda kifaa cha handaki na kusakinisha njia. Kill switch ni sera kuhusu hali ya pili, iliyoandikwa kwa upana kiasi kwamba inatumika kwa zote mbili.
Kanuni zinazotegemea kiolesura ndio umbo la kawaida: kubali kinachotoka kupitia tun0 au wg0, tupa njia iliyobaki ya kutoka. Muundo huo hauwezi kuondoa muunganisho wa mteja mwenyewe kwa seva, kwa hivyo utekelezaji sahihi huongeza msamaha huo kwa uwazi, na wewe pia unapokuwa unaandika kanuni kwa mkono. Kanuni za kila programu kwenye Windows na macOS huepuka sehemu ya hii kwa kulinganisha mchakato badala ya kiolesura, lakini mchakato bado lazima utoke kabla handaki haijakuwepo.
Hatua tatu, kwa mpangilio zinazotokea
Hatua ya kwanza ni utatuzi. Wakati wasifu huhifadhi jina la mwenyeji badala ya anwani halisi, mteja anahitaji jibu la DNS kabla ya kutuma kitu chochote. Wasifu unaoelekeza DNS kwa kitatuzi cha handaki huunda mkwamo: kitatuzi kinafikiwa tu kupitia handaki ambayo utafutaji unapaswa kuiwezesha. Kutatua nje ya handaki, au kubandika mwisho wa njia kwenye anwani, huondoa utata huo.
Hatua ya pili ni pakiti ya nje, ambayo lazima ivuke kwanza uelekezaji na kisha ukuta wa moto, kwa mpangilio huo. wireguard-tools hushughulikia nusu ya uelekezaji ya hii kwa WireGuard kwa kutia alama pakiti zake na kuongeza kanuni ya sera ili zikwepe njia ya chaguo-msingi ambayo imeisakinisha hivi punde; ukurasa wa mwongozo wa wg-quick unaeleza kanuni hiyo na jedwali linalotumia. Jenga upya uelekezaji huo kwa mkono, au acha chombo cha pili kiandike upya kanuni, na pakiti zilizotiwa alama zinaweza kurudishwa ndani ya handaki ambayo zilipaswa kuunda.
Hatua ya tatu ni njia ya kurudi. Makubaliano ya mkono bila jibu si uthibitisho wa kutupwa nje; yanaendana vivyo hivyo na kanuni ya ndani ya seva au kifaa cha NAT kilichosahau ramani. Tenganisha hayo kabla ya kugusa mteja.
| What you see | Stage | Where to look |
|---|---|---|
| The client log repeats a resolve step and no packets appear on the wire | 1, name lookup | Resolver path while the tunnel is down |
| The send counter on the physical adapter stays flat | 2, routing | Peer route and policy rules |
| The send counter rises and a firewall drop counter rises | 2, firewall | Rule order, mark, and interface match |
| Packets leave and nothing comes back | 3, return path | Server input rules, NAT, listening port |
Wateja huandika dalili wanayogundua, si hatua iliyoshindwa, kwa hivyo jedwali kwa kawaida huwa haraka kuliko kumbukumbu.
Vihesabu huamua haraka kuliko kumbukumbu
Kwenye Linux, nft list ruleset au iptables -vnL OUTPUT huchapisha kihesabu cha pakiti kwa kila kanuni. Ungana mara moja, iache ishindwe, kisha soma vihesabu tena. Kanuni ambayo kihesabu chake kimehamia ndiyo kanuni ambayo makubaliano ya mkono yaligonga; ikiwa hakuna kilichohamia mahali popote, pakiti haikufika kamwe kwenye ukuta wa moto. Nimeona seti ya kanuni ikitupa makubaliano yake ya mkono, na ni vihesabu pekee vilivyosema hivyo.
Ili kutenganisha haikufika kamwe kwenye ukuta wa moto na haikutoka kamwe kwenye mwenyeji, angalia kiolesura chenyewe. ip -s link show dev wlan0 huripoti pakiti zilizotumwa, na tcpdump -ni wlan0 udp port 51820 huonyesha fremu. Ikibaki tambarare wakati mteja anajaribu tena, hitilafu iko juu ya netfilter: njia ya mwenzao inayokosekana, kanuni ya sera inayoelekeza kwenye kifaa ambacho hakipo bado, au hitilafu ya soketi ambayo mteja anaimeza.
Jaribu misamaha kwa anwani za nyaraka kama 203.0.113.10, ili makosa yasichunguze mwenyeji wa mtu mwingine.
Msamaha wa mwisho wa njia uliopitwa na wakati husomwa kama kuzima kwa seva
Toleo lenye kupotosha zaidi huonekana baada ya anwani ya mwenzao kubadilika: huduma ya anwani inayobadilika imeihamisha, mwenyeji amejengwa upya, au anwani ya kutoka ya mtandao wako ni tofauti. Msamaha bado unataja anwani ya zamani, kwa hivyo pakiti zinazokwenda kwa mpya hugonga kanuni ya kutupa. Mpangilio huo huo ulifanya kazi jana, na ndiyo sababu watu huanza kwa kuchunguza seva.
Jina la mwenyeji ndani ya kanuni ya ukuta wa moto haliwezi kukuokoa. Katika nftables jina hutatuliwa wakati seti ya kanuni inapakiwa, kwa hivyo hubandika anwani iliyokuwepo wakati huo na hupitwa na wakati kama anwani halisi. Suluhisho la kudumu ni kusasisha msamaha wakati mwisho wa njia unabadilika na kuuendeleza ukiwa mwembamba: anwani moja ya mwenzao, bandari moja ya usafiri. Masafa mapana vya kutosha kustahimili mabadiliko ya anwani pia ni mapana vya kutosha kuruhusu trafiki isiyohusiana kutoka.
Wakati kill switch inafanya kazi kwenye mwenyeji wa seva
Utegemezi huo huo upo upande wa pili, na huko ni rahisi kuukosa. Ikiwa mashine inayohudumu kama seva yako ya VPN pia inaendesha mteja wa kompyuta ya mezani mwenye kill switch, au wasifu wa ukuta wa moto ulionakiliwa kutoka kwa kompyuta ya mkononi, kanuni zake za kutupa zinatumika kwa huduma inayomaliza handaki. Majibu kwa makubaliano ya mkono ya mteja hutupwa, kwa hivyo kila mteja hushindwa kuunganisha wakati seva inaonekana mzima na kiolesura chake cha handaki kimekaa bila kutumika.
Mwenyeji huyo anahitaji makubaliano matatu membamba kabla ya kutupa: bandari ya kusikiliza kwenye kiolesura cha kimwili, kiolesura cha handaki kwa trafiki iliyofumbuliwa, na uhawilishaji kutoka handaki kuelekea kile ambacho wateja wanapaswa kufikia. Soma seti iliyosakinishwa kwa nft list ruleset, iptables -S, au pfctl -sr kabla ya kubadilisha kitu chochote, na kumbuka kwamba seti ya kanuni iliyohifadhiwa hustahimili kuwashwa upya, kwa hivyo hitilafu huko huishi zaidi ya mchakato ulioifanya.
Mpangilio wa urejeshaji unaoifanya mashine ibaki imefungwa
Fanya kazi kutoka wasifu kuelekea nje. Soma anwani na bandari ya mwenzao ambazo mteja hutumia, thibitisha kwamba jina la mwenyeji linatatuliwa bila handaki, kisha ongeza msamaha mmoja kwa anwani na bandari hiyo kwenye adapta ya kimwili pekee. Ungana tena na uangalie kihesabu cha kutuma; makubaliano ya mkono yaliyokamilika ni ishara kwamba hatua ya pili imerekebishwa.
Acha sera iliyobaki ya kutupa mahali pake wakati wa kujaribu. Ukaguzi usio na madhara ni kujaribu muunganisho kwa anwani ya nyaraka isiyohusiana na kuthibitisha kwamba bado inaisha kwa muda, jambo linaloonyesha kill switch inafanya kazi na haijazimwa. Kaza msamaha wakati handaki ni thabiti, na usiache idhini ya kudumu ya kila kitu kwa programu ya mteja kwa sababu tu ni rahisi.
Ikiwa handaki itapanda na programu bado ikishindwa, hatua zilizobaki si hii: DNS iliyogawanywa, MTU na uelekezaji wa kila programu kila moja huzalisha handaki iliyounganishwa na trafiki iliyovunjika, na kila moja ina ukaguzi wa kwanza tofauti.