Si të bllokosh daljen e Linux-it që asgjë të mos rrjedhë kur bie VPN-ja
Rrugëtimi dhe filtrimi janë vendime të ndara. Blloko grepën e daljes, pastaj kufizo përjashtimet e pikës fundore, DNS dhe administrimit që tuneli ka nevojë për t'u rilidhur.
Imagjino një kuti media në një lidhje shtëpiake që duhet ta arrijë internetin vetëm përmes një tuneli. Kur tuneli bie, aplikacioni duhet të ndalet në vend që të vazhdojë në heshtje përmes ndërfaqes fizike. Arritja e këtij sjelljeje është problem i murit të zjarrit dhe jo i rrugëtimit, dhe dallimi ka rëndësi sepse rruga mund të zëvendësohet nga një rinisje e demonit, ndërsa filtri mbetet aty ku e vendose. Më poshtë shohim si vendos në të vërtetë shtegu i paketës, dhe pastaj si të kufizohen përjashtimet që e mbajnë tunelin duke u rilidhur.
Dalja lokale është grepë tjetër nga përcjellja
Një paketë që largohet nga një aplikacion në makinë kalon nëpër grepën e daljes; një paketë që makina e rrugëton për një host tjetër kalon nëpër përcjellje. Një politikë që përmend vetëm forward kufizon të dytën dhe e lë të parën plotësisht të hapur, dhe për këtë arsye kaq shumë blloqe daljeje duken të sakta dhe nuk bëjnë asgjë. Përputhja e ndërfaqes i përket të njëjtit rregull: oifname "tun0" accept lejon kalimin e trafikut që tashmë është rrugëtuar përmes tunelit. Rrugëtimi dhe filtrimi gjithashtu mbeten vendime të ndara, kështu që një rrugë lidhjeje mund të ekzistojë ndërsa filtri e refuzon paketën. Ju mbështeteni pikërisht në këtë ndarje.
Një portë që përcjell për pajisje të tjera ka nevojë për të dyja grepërat. Bllokimi vetëm i daljes mbron vetë makinën dhe e lë çdo klient në rrjedhën e poshtme të lirë të rrjedhë.
Shkruani listën e përjashtimeve nga pika fundore nga jashtë
Filloni nga pika fundore e tunelit: një adresë destinacioni ose një grup i vogël i miratuar, protokolli i transportit dhe porta e destinacionit, për shembull udp dport 1194 ip daddr 203.0.113.7 accept. Nëse klienti zgjidh një emër hosti, shkëmbimi fillestar DNS ka nevojë për rregullin e vet të kufizuar te zgjidhësi dhe te porta 53, jo një leje të përgjithshme për adresën e atij zgjidhësi. Çdo përjashtim duhet të emërtojë arsyen pse ekziston. Një leje për të gjithë trafikun UDP drejt portës së VPN mbulon shumë më tepër sesa ai shërbim i vetëm i vërtetuar që kishit në mendje.
Zgjidhja fillestare është vendi ku blloqet zakonisht kalben. Një grup adresash që përditësohet me kohëmatës ka nevojë për sjellje të përcaktuar kur përditësimi dështon, dhe kjo sjellje nuk mund të jetë hapja e lidhjes derisa të ketë sukses. Përditësoni përmes tunelit sa kohë tuneli është lart, dhe përndryshe kthehuni te pika e fundit e shëndoshë e njohur.
Administrimi lokal ka nevojë për të njëjtin trajtim. Një nënrrjet administrimi nuk është i besueshëm thjesht sepse adresat e tij janë private, dhe një rregull që i beson fton një shteg të dytë rreth bllokimit.
Përputhja e ndërfaqes nuk është provë e një tuneli të shëndoshë
Rregullat që pranojnë gjithçka që del nga tun0 supozojnë se një paketë në atë ndërfaqe erdhi nga tuneli. Emrat e ndërfaqeve rikrijohen, dhe një emër nuk është identitet kriptografik. Partneri gjithashtu mund të ketë ikur ndërsa ndërfaqja mbetet lart, gjë që e kthen rregullin në një mosveprim shumë bindës.
Ndjekja e lidhjeve shton një kurth të lidhur. Një rregull i gjerë për lidhjet e vendosura riprodhon lejen që një rrjedhë mori më parë, kështu që një sesion që nisi para rënies së tunelit vazhdon pas saj. Kufizoni pranimin me gjendje te ndërfaqet dhe adresat që keni vërtet në mendje, përndryshe keni ndërtuar një bllokim që hapet vetë. Rregullat e hyrjes dhe të daljes gjithashtu përgjigjen pyetjeve të ndryshme, dhe forcimi i njërës duke injoruar tjetrën e lë makinën të arritshme në drejtimin që nuk e keni marrë parasysh.
Çfarë i mbijeton një rrëzimi të demonit
Një filtër i instaluar nga një skript që ekzekutohet pasi tuneli ngrihet zhduket bashkë me tunelin, pikërisht në momentin kur duhej. Ngarkoni bllokimin në nisje dhe lëreni demonin të administrojë vetëm përjashtimet e tij.
Fshirja e rrugës së paracaktuar nuk është zëvendësim as ajo. Rruga është gjendje që demoni e zotëron dhe e rishkruan, dhe heqja e saj mund të marrë shtegun e nevojshëm për t'u rilidhur. IPv6 ka nevojë për planin e vet, sepse zbulimi i fqinjëve dhe njoftimet e ruterit janë shërbime lidhjeje që duhet të vazhdojnë të punojnë ndërsa trafiku i zakonshëm është i bllokuar. DHCP i përket të njëjtit kategori. Shkruajini këto si përjashtime me qëllim, në vend që t'i zbuloni më vonë si ndërprerje.
Shtegu i rikuperimit para vendosjes
Testoni bllokimin ashtu siç do të dështojë: nisje pa tunel, vrasja e demonit, ndryshimi i pikës fundore dhe rilidhja. Çdo rast duhet t'i ndalojë aplikacionet dhe ta lërë kanalin e rikuperimit funksional. Bëjeni nga një konsolë, sepse një shell në distancë është sesioni që ka më shumë gjasa të bllokohet nga rregulli juaj.
Pastaj kontrolloni ku mund të arrijë ende një aplikacion i zakonshëm, me një destinacion të padëmshëm dhe një kërkesë që mund ta verifikoni. Rezultati që dëshironi është refuzim në lidhje dhe sukses përmes tunelit, jo një afat i paqartë që mund të nënkuptojë të dyja. Mbajeni grupin e rregullave nën të njëjtin pronar si pjesa tjetër e murit të zjarrit, në vend që të zëvendësoni të gjithë tabelën nga një skript shell. Një politikë ku çdo leje mund të justifikojë vetveten vlen më shumë sesa një grup i gjatë rregullash që askush nuk di ta shpjegojë.