Én maskin, to jobber, én brannmur: en Wi-Fi-uplink, et lite Ethernet-subnett bak den, og en desktop-VPN-klient som antar at alt som forlater maskinen, er lokalt. Lokalt startede applikasjoner går ut via den lokale utgangsveien. Enheter bak arbeidsstasjonen kommer inn på Ethernet-porten og trenger en videresendingsbeslutning. Et unntak skrevet for den første veien ser aldri den andre, og derfor omgår en nettleser tunnelen mens enhetene ikke gjør det.

To pakkeveier, én policy

OriginPathDecision owner
Application on the workstationOUTPUT then egressThe VPN app's routing policy
Device behind the workstationPREROUTING then FORWARDThe workstation's own forwarding policy

Den første raden er det de fleste split-tunneling-veiledninger beskriver. Den andre er en ruter-konfigurasjon som tilfeldigvis ligger på samme maskin. Å smelte dem sammen til én mental modell er feilen; de deler en kjerne, men ikke en policy. Tegn begge veiene før du redigerer noen regel, og resten av designet følger av hvilken vei som mangler.

Tabellen forklarer også hvorfor én maskin kan bestå én test og feile en annen. En nettleser på arbeidsstasjonen beviser den lokale veien; en bærbar PC koblet til Ethernet-porten beviser videresendingsveien. Valider en endring med hver av dem, ellers forblir den andre utestet uansett hvor mange ganger nettleseren oppdateres.

Hva et applikasjonsunntak faktisk klassifiserer

Et unntak per applikasjon fungerer vanligvis ved å markere pakker fra en prosess eller en bruker og deretter rute merket trafikk utenfor tunnelen. Det er en konstruksjon for lokal utgang. En pakke fra en nedstrøms enhet har ingen lokal prosess, så den matcher aldri velgeren, uansett hva velgeren er.

Uansett hva velgeren er, er de to listene ikke den samme listen, og det er hele poenget. Mullvads Linux-veiledning beskriver merker som brannmuren og rutingpolicyen bruker, og eksemplene dens retter seg mot lokal utgang; de er ikke en støttet beskrivelse av en nedstrøms ruter. Å kopiere dem gir en maskin som tror den har et unntak mens den videresender alt inn i tunnelen.

Skriv transitkontrakten

Navngi nedstrøms kilde-prefiks og inngangsgrensesnittet sammen, og begrens deretter dette prefikset ved inngangen. Uten begrensningen kan enhver enhet som når porten, kreve en utelukket adresse og forlate via omgåelsen. Behandle det som to spørsmål: får disse vertene bruke denne uplinken i det hele tatt, og får de nå arbeidsstasjonen eller tunnelens private områder? Det er ekstra tillatelser, ikke bivirkninger av uplink-valget.

Tillat videresending, og filtrer den deretter. Linux-gatewayen trenger aktivert videresending, regler som tillater den tiltenkte trafikken i begge retninger, og enten en oppstrøms returrute eller bevisst begrenset kildeoversettelse. NAT alene velger ikke uplinken og gir ikke passasje gjennom et filter; det skriver bare om en adresse etter disse beslutningene.

Klassifisering for transit må skje før beslutningen om videresendingsruten, noe som betyr prerouting-trinnet og ikke output. En regel plassert etter beslutningen kan fortsatt endre pakken, men kan ikke endre hvor pakken allerede er sendt.

Merker tilhører applikasjonen som eier dem

Merkeverdier, tabellnumre og kjedeprioriteter er en del av VPN-applikasjonens policy, ikke tidløse konstanter. Et varig nettverk som avhenger av å sette inn en regel i en tabell som et annet program regenererer, vil bryte ved neste oppdatering, vanligvis under en gjentilkobling og ikke på et beleilig tidspunkt.

Å legge til en andre basiskjede med en accept-avgjørelse overstyrer ikke nødvendigvis en senere kjedes drop. Basiskjeder har hooks og prioriteter, og den første avgjørelsen i rekkefølgen vinner; en accept i én kjede annullerer ikke en drop som en annen kjede når først. Se på hele regelsettet og rekkefølgen i rutingpolicyen, ikke på den ene telleren som økte. En teller beviser at en regel kjørte, aldri at avgjørelsen dens var den som ble anvendt.

Integrer, eller flytt subnettet

De to designene skiller seg i hvem som eier omgåelsen. Et integrert design holder én maskin og én policy, på bekostning av avhengighet til VPN-applikasjonens tabell-livssyklus og til et sett med merker som dokumentasjonen kan endre. En dedikert ruter for nedstrømsnettverket fjerner den avhengigheten helt: subnettet har sin egen uplink, og arbeidsstasjonen forblir en klient uten videresendingsrolle.

Velg den andre når nedstrømsnettverket må fortsette å virke gjennom VPN-oppdateringer, eller når ingen kan teste den integrerte policyen etter hver utgivelse. Velg den første bare når integrasjonen er dokumentert og noen eier den.

Verifiser grensen i fire tilstander: tilkoblet, gjentilkobling, bevisst blokkert og stoppet. Kontroller navneoppslag og begge adressefamiliene under hver av dem, fordi en omgåelse som lekker DNS ikke er unntaket du designet. Testen skal bevise den presise grensen, ikke bare at én side ble lastet.

Relaterte artikler