Målet er rimeleg: berre tunnelbrukarar skal nå tenestene på denne maskina. Løysinga folk grip til, er ein IPv6-inngangskjede som droppar alt utanom WireGuard, og som dermed også droppar trafikken som held verten knytt til si eiga lenkje. Naboellesing og meldingar om vedlikehald av stien er ikkje tenestetilgang, og å fjerne dei gjev ei maskin som er utilgjengeleg av grunnar som ikkje har noko med policyen din å gjere. Tunnelen kjem opp, tenestene er rett avgrensa, og ingenting anna på lenkja verkar.

Tre ansvarsområde, eitt regelverk

Det første ansvaret er drift av det ytre nettet: verten må bli på lenkja si, slå opp naboar og lære grensene for stien til den lenkja. Det andre er den krypterte lyttaren, som tek imot UDP på adressa og porten du valde. Det tredje er settet med dekrypterte tenester du vil at tunnelbrukarar skal nå.

Det er tre ulike policyar, og berre den andre og tredje handlar om VPN. Eit regelverk som handsamar dei som éin, arvar ein feilmodus der ei stramming av applikasjonsgrensa stille bryt tilkoplinga til verten.

Hald dei i skilde kjeder eller i det minste skilde kommentarar, slik at neste person ser kva linje som finst og kvifor.

Kva ICMPv6 gjer for verten

IPv6 er avhengig av ICMPv6 for langt meir enn ekko. Naboeførespurnad og -annonsering erstattar ARP og er naudsynte for lokal levering. Packet Too Big ber informasjon om MTU-en til stien, og å ignorere han gjev overføringar som stoppar på store pakkar. Ruterkunngjeringar ber standardruta og prefiksinformasjon når lenkja brukar automatisk konfigurasjon.

RFC 4890 skil meldingane eit vertsfilter må tillate frå dei som er eit administrativt val, og gjer det i ein vertsdel som er ulik reglane for ein ruter som videresender mellom nett. Les ein berre videresendingsdelen, får ein ein inngangspolicy som er for streng for verten han vernar.

Den praktiske regelen er å tillate dei vesentlege feil- og konfigurasjonsmeldingane på grensesnittet som treng dei, avgrensa etter type og kjelde der plattforma tillèt det, og å ta eit uttrykkeleg val om resten.

Å erstatte alt dette med ei generell ICMPv6-tillating løyser tilgjengeproblemet og gjev opp filtreringa. Å erstatte det med ein generell dropp løyser filterproblemet og gjev opp verten.

Slepp tunnelen inn, deretter tenesta

Godta WireGuard-transporten på den tiltenkte ytre adressa og UDP-porten, og godta returtrafikken gjennom tilkoplingssporing. Tillat deretter applikasjonstenestene gjennom tunnelgrensesnittet, frå kjeldene du faktisk autoriserer.

Ei tillating for den ytre UDP-porten autoriserer ikkje dei dekrypterte førespurnadene inni han. Den skilnaden er heile grunnen til at tunnelgrensesnittet dukkar opp i tenestereglane.

Les regelverket slik det er, ikkje slik fila skildrar det:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

Ein lyttar på ei fysisk adresse er ei separat eksponering frå same tenesta på tunneladressa. Viss maskina også videresender trafikk til ei anna maskin, er det eit val i videresendingskjeda og ikkje denne inngangspolicyen, og det treng si eiga grunngjeving.

Test lenkja, ikkje berre tunnelen

Ein tunnel som verkar etter endringa, beviser mindre enn det ser ut som, fordi ei eksisterande nabo-oppføring og ei etablert tilkopling kan skjule ei kontrollmelding som policyen no droppar.

Kontroller tilkoplinga direkte, og kontroller deretter at den utelukka stien framleis feilar:

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

Ein naboetabell som blir verande fullstendig etter omstart, er signalet om at lesinga framleis verkar. Ein tabell som tømmest og aldri blir fylt igjen, er signalet om at du har filtrert han bort. Den tredje kommandoen validerer syntaksen i regelverket utan å bruke det, noko som er verdt å gjere medan du framleis har ein sesjon.

Gjenopprett ein vert du låste deg ute frå

Før du endrar brannmurreglar som ber din eigen administrasjonssesjon, hald ein annan kanal: ein konsoll, ei seriell tilkopling eller ei planlagd tilbakerulling som fjernar dei nye reglane viss du ikkje avbryt henne.

Viss ei endring faktisk låser deg ute, skjer gjenopprettinga gjennom den kanalen og ikkje gjennom nettet du nettopp fjerna. Gjenopprett det førre regelverket frå ein lagra kopi, stadfest at verten er nåbar igjen, og bruk først då den tiltenkte policyen i mindre bitar.

Den endelege policyen er ikkje universell. Adressering, ruting og brannmurimplementasjon er innspel til utrullinga, men grensa er den same overalt: avvis utilsikta applikasjonstilgang medan du held på kontrolltrafikken som ber den autoriserte tunnelen.

Relaterte artiklar