Menyen tilbyr Koble fra, vinduet har en lukkeknapp, og oppgavebehandlingen tilbyr Avslutt oppgave. Hver av dem ser ut som en måte å stoppe VPN-en på, og hver av dem kan etterlate maskinen i en annen tilstand. Én kan stoppe tunnelen mens en blokkering blir stående, en annen kan rydde opp alt som del av en ryddig avslutning, og en tredje kan bare skjule grensesnittet mens bakgrunnskomponenten fortsetter å kjøre. Å behandle dem som synonymer er nettopp hvordan en personverntest ender med feil konklusjon om hva som skjedde.

Klientens dokumentasjon er det eneste pålitelige stedet å lære hva som er hva.

Fire kontroller, muligens fire atferder

Koble fra river vanligvis ned tunnelen mens klienten blir værende i minnet, noe som betyr at en tjeneste, en komponent i systemkurven eller en regel for kill switch kan overleve klikket. Deretter fortsetter mange klienter å blokkere trafikk fordi retningslinjene sier at enheten ikke skal falle tilbake til direkte tilgang så lenge klienten er til stede. Den atferden ser ut som et ødelagt nettverk og er bevisst beskyttelse.

Avslutt er ment å avslutte programmet, og en veloppdragen klient fjerner reglene sine på vei ut. Noen design lar i stedet en egen hjelper bli igjen som håndhever retningslinjene, og det er et valg, ikke en feil. Å lukke vinduet er en grensesnittshandling uten definert virkning på tunnelen, og Pause, der det tilbys, er en fjerde atferd med egne regler.

Et utfall på tjenersiden er en helt femte vei, og det er den brukerne faktisk møter oftest.

Les tilstanden før og etter hver handling

Registrer prosesslisten, tjenestestatusen og brannmurreglene før handlingen, og gjenta deretter registreringen umiddelbart etter. Å sammenligne de to listene viser hva kontrollen faktisk gjorde, uten å stole på grensesnittets egen beskrivelse.

systemctl status wg-quick@wg0 --no-pager
pgrep -a -f 'openvpn|wireguard|vpnagent'
ip link show | grep -E 'tun|wg'
nft list ruleset | grep -E 'drop|reject' | head -20
scutil --nc list

Hvis reglene forsvinner sammen med prosessen, var det klienten som eide dem. Hvis reglene blir stående mens prosessen er borte, er det noe annet som håndhever retningslinjene, og å finne den komponenten kommer før enhver endring. Registrer tjenestestatusen i samme øyeblikk, for et stoppet grensesnitt sier ingenting om en systemtjeneste.

En manuell frakobling er ikke et krasj

Koble fra kjører den tiltenkte avslutningsveien, og et krasj hopper over den. Resultater fra det ene overføres derfor ikke til det andre, så en test som brukte et menyelement kan ikke støtte en påstand om atferd når klienten dør.

På samme måte sier et krasj ingenting om en godkjent midlertidig pause. Hold de tre spørsmålene atskilt i testplanen og i alt som skrives ned etterpå. Avslutningsveien forklarer også hvorfor en ren avslutning kan fjerne regler som et krasj etterlater. Samme knapp, annen kode, annet bevis.

Velg den utilgjengelige tilstanden du faktisk trenger

Hvis trafikken må holde seg blokkert hver gang tunnelen er nede, verifiser det kravet under den konkrete handlingen du bryr deg om, med ufarlig trafikk til et kjent mål. Ta med unntak for programmer og unntak for det lokale nettverket, fordi håndheving for hele enheten ofte er smalere enn navnet antyder. Bekreft deretter hva som skjer etter en omstart, for det er da den foreldede tilstanden vanligvis dukker opp.

Hvis målet er vanlig direkte tilgang, bruk den dokumenterte kontrollen i stedet for å drepe prosesser eller slå av hele brannmuren. Foreldede regler som en avbrutt avslutning etterlater, er et annet problem enn en bevisst låsing, og de trenger en annen gjenoppretting.

Skriv ned hvilken komponent som stoppet: tunnelen, det synlige programmet eller laget som håndhever retningslinjene. Den ene setningen hindrer det meste av forvirringen disse kontrollene skaper.

Relaterte artikler