Blackhole-leið gegn VPN-kill-switch: hvað hvort um sig gerir
Blackhole-leið hendir samsvarandi umferð og þvingar lokaða leið við bilun. Berðu saman umfang hennar og blindu bletti við kill-switch sem byggir á pakkasíun.
Pakki yfirgefur fartölvu, nær aldrei VPN-gáttinni og enginn eldveggjateljari hreyfist. Leiðatöflugreinin hefur þegar ráðið afdrif pakkans: blackhole-færsla samsvaraði honum og kjarninn henti honum áður en nokkurt tengi sá hann. Þessi hegðun er gagnleg þegar áfangastaður á að mistakast lokaður, en hún er leiðarvalssaðgerð með þröngt umfang. Að líta á hana sem fullkomið kill-switch er þar sem hönnun fer úrskeiðis.
Hvað hendingaraðgerðin samsvarar í raun
Leiðarleit velur töflu og síðan lengsta samsvarandi forskeyti innan hennar. Blackhole-leið er venjuleg færsla þar sem aðgerðin er að henda, svo hún hefur aðeins áhrif á pakka sem hefðu valið þá færslu eftir alla ákvörðunina. Breyttu töflunni með stefnureglu, eða bættu við nákvæmara forskeyti, og hendingin gildir ekki lengur.
Þess vegna er umfang blackhole nákvæmt og auðvelt að orða: það nær yfir forskeytið, í töflunni, fyrir þá vistfangafjölskyldu. Það nær ekki yfir áfangastað sem önnur tafla myndi vinna og nær ekki yfir IPv6 bara af því að IPv4-forskektinu er hent.
ip route get sýnir ákvörðunina áður en þú setur eitthvað upp, þar á meðal töfluna og leiðartegundina. Að lesa það úttak er hraðara en að álykta út frá misheppnaðri beiðni hvaða regla eða forskeyti virkaði.
Blackhole er ekki það sama og unreachable eða prohibit
Linux býður þrjár leiðartegundir sem líkjast hendingu, og þær eru ólíkar að því hvað sendandinn sér. Blackhole sleppir pakkanum án svars, svo biðlarinn sér tímamörk. Unreachable-leið skilar ICMP unreachable skilaboðum, svo tengingin mistekst fljótt með hýsil- eða netvillu. Prohibit-leið skilar villu um stjórnunarbann, sem er nær viljandi synjun stefnu.
Veldu þá hegðun sem þú vilt að forritið sjái. Hljóðlát hending hentar þegar þú vilt ekki afhjúpa stefnuna, og tafarlaus villa er betri þegar notendur þurfa að skilja hvers vegna áfangastaður er óaðgengilegur. Að blanda tegundunum um net framleiðir stuðningsmiða sem lýsa sömu stefnu sem þremur mismunandi bilunum.
Ekki gera ráð fyrir að hver hendingarfærsla sé skiptanleg þegar þú greinir tengingu. Villutextinn, tímasetningin og pakkaskráningin eru ólík, og leiðartegundin í töflunni segir þér hverja þú ert að skoða. ip-route handbókin listar tegundirnar og villihegðun þeirra.
Hvernig hún kemur út á móti kill-switch
Kill-switch er pakkasíun: eldveggjarregla sem hendir útleiðarumferð sem myndi fara utan jarðganga. Blackhole-leið er framsendingarákvörðun sem tekin er fyrr í staflanum. Báðar geta stöðvað umferð, en þær sjá ólíka hluti og missa ólík tilfelli.
| Mechanism | What it blocks | What it misses | How failure looks |
|---|---|---|---|
| Blackhole route | Destinations matching the prefix and table | Other tables, other address families, traffic with a different route | Silent timeout |
| Firewall kill switch | Egress not bound to the tunnel interface | Rules that are too broad can break the endpoint or DHCP | Dropped packets with counters |
| WireGuard AllowedIPs | Destinations not routed into the interface | Traffic that never enters the interface at all | No tunnel route, direct egress |
Umfangið er þar sem samanburðurinn skiptir máli. Eldveggur getur samsvarað eiganda, porti eða tengi og lokað á forrit á meðan endapunkturinn er áfram aðgengilegur; leið getur það ekki. Hins vegar getur leið sent heilt forskeyti í hendingu án þess að nokkur pakkasía sé hlaðin, sem er gagnlegt á lágmarkskerfi.
AllowedIPs í WireGuard er dulritunarlyklaleiðsla, ekki eldveggur. Það ákveður hvaða áfangastaðaforskeyti eru samþykkt í tengið, og snið sem telur aðeins upp jarðganganetið lætur aðra áfangastaði eftir venjulegu sjálfgefnu leiðinni. Þess vegna nota full-jarðgangasnið 0.0.0.0/0 og þess vegna setur wg-quick líka upp eldveggjarreglur þegar það getur.
Haltu endapunkti jarðgangsins utan hendingarinnar
Ytra vistfang endapunktsins verður að vera áfram aðgengilegt gegnum líkamlega tengið. Hending sem grípur líka þetta vistfang kemur í veg fyrir að handabandið komist út, og jarðgangið kemur aldrei upp, sem lítur út eins og VPN-bilun frekar en leiðarstefna. Athugaðu leiðina að endapunktinum fyrir og eftir breytinguna.
Stjórnunaraðgangur tilheyrir sömu yfirferð. Ef eina leiðin að beininum eða biðlinum er jarðgangið getur of breið hending læst þig úti frá vélinni sem myndi leyfa þér að fjarlægja hana. Haltu skjalfestri leið utan bands, stjórnborði eða tímasettri afturköllun.
IPv6 þarf eigin færslu og eigin yfirferð. Hönnun sem hendir IPv4 í blackhole en lætur IPv6 vera á sjálfgefnu leiðinni lekur nákvæmlega þeirri umferð sem stefnan átti að stöðva, og mistökin eru ósýnileg í prófun sem aðeins notar IPv4.
Leiddu það inn með tímatakka og afturköllun
Notaðu leiðina með stuttri sjálfvirkri fjarlægingu svo mistök lifi endurræsingu af. Skipanirnar hér að neðan nota skjölunarbil; skiptu því út fyrir forskeytið sem hönnunin þín hendir í raun:
sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8Önnur skipunin ætti að tilkynna blackhole-leiðina og töfluna sem hún kom úr. Þriðja skipunin tímasetur fjarlægingu eftir eina mínútu, sem er nægur tími til að staðfesta stefnuna og nógu stuttur til að ná sér af mistökum á fjartengdum hýsli. Þegar hegðunin er staðfest skaltu gera færsluna varanlega gegnum sömu stillingastjórnun og á hinar leiðirnar.
Lokaðu breytingunni með því að skrá forskeytið, töfluna, vistfangafjölskylduna og afturköllunaraðferðina. Hending er viljandi undantekning í leiðarhönnuninni, og næsti verkfræðingur þarf að vita hvaða umferð henni var ætlað að stöðva áður en hann ákveður hvort hún eigi enn heima þar.