Hvad lokale systemlogfiler afslører om en VPN-forbindelse
Styresystemet registrerer tjenestestarter, adapterændringer og rutefejl, som en app aldrig skriver ned. Læs ét snævert vindue og korreler det.
Hver computer fører sin egen registrering af, hvad en VPN gjorde, og applikationens eksport er normalt den mindst komplette af dem. Tjenestestyringer noterer, hvornår en enhed blev startet, kernen noterer, hvornår en grænseflade dukkede op, og netværksstakken noterer, hvornår ruter ikke kunne anvendes. Ingen af disse faciliteter ved, hvad klienten havde til hensigt, og klienten ved ikke, hvad kernen gjorde med dens anmodning.
At læse én sådan registrering isoleret indbyder til den forkerte konklusion. Læs to, fra det samme minut, og rækkefølgen bliver synlig.
Tre faciliteter med tre ordforråd
På Linux fanger systemd-journalen livscyklusbeskeder for enheden fra wg-quick@wg0 eller NetworkManager VPN-pluginet, og kernens ringbuffer bærer grænseflade- og rutningsbeskeder. På Windows fordeler hændelsesloggen historien på system-, WLAN- og fjernadgangsudbydere, hver med deres egne id'er. På macOS bærer den samlede log delsystemafgrænsede beskeder, som den grafiske Console kun delvist viser.
Ordforrådene oversætter ikke. Et hændelses-id fra én platform betyder intet på en anden, og et skærmbillede af en Windows-dialog beviser intet om en Linux-enhed.
Det, alle tre deler, er et tidsstempel, en kilde og en alvorlighedsgrad, og netop den trio gør korrelation mulig mellem en klientlog og en registrering i styresystemet. Tilgængeligheden varierer også: en container uden journal, et trimmet Windows-image eller et logniveau, der er sænket ved build, kan skjule et helt lag.
| Facility | What it records | What it cannot show |
|---|---|---|
| systemd journal | Unit start and stop, helper output, exit status | Whether packets actually reached the peer |
| Kernel and netlink | Interface creation, address assignment, route changes | Why the client asked for that configuration |
| Windows event log | Provider-specific connection and adapter events | Anything the provider chose not to log |
Hvad en forbundet linje beviser og ikke beviser
En tjenestestart-hændelse registrerer, at den lokale enhed blev bedt om at starte, og at den ikke afsluttede med det samme. Den registrerer ikke et fuldført handshake, en gyldig peer-nøgle eller en fungerende rute. At behandle den linje som bevis på en tunnel er den mest udbredte fejllæsning af disse logfiler. Linjen beviser hensigt og procestilstand og absolut intet om tilgængelighed.
Videresendelsestilstanden er en separat observation, og den kommer fra rutetabellen og ikke fra nogen log.
En adapterhændelse kan forklare en tavs fejl: grænsefladen kom op, adressen blev tildelt, og ruterne blev aldrig installeret, fordi en politikregel afviste dem. I den sekvens ser hver synlig linje sund ud, mens intet sendes ad rute, og den eneste måde at se det på er at sammenligne loggens tidsstempler med rutetabellen i samme øjeblik. Hold klientens egen hændelsesrækkefølge ved siden af begge, for klienten er den eneste kilde, der ved, hvad den bad om. De to fakta, du har brug for sammen, optræder næsten aldrig på samme linje.
En senere genopkobling overskriver den interessante del af billedet, så fang vinduet ved den første fejl i stedet for efter tre forsøg.
Korreler et snævert vindue
Noter forsøgstiden med dens tidszone, og træk derefter de få minutter omkring den. Den første fejl i vinduet ligger næsten altid før den afbrydelseslinje, som supportbilletter citerer.
journalctl -u wg-quick@wg0 --since "today 09:00" --until "today 09:20" ip route show table all | grep wg0 log show --last 20m --predicate 'subsystem == "com.apple.network"'
Hver kommando besvarer en forskellig del af spørgsmålet: den første giver livscyklussen, den anden videresendelsestilstanden, den tredje macOS' netværksdelsystem. På Windows filtrerer du systemloggen efter udbydernavn i stedet for at rulle gennem hele kanalen, og eksporterer kun de matchende hændelser.
Hold uddraget så lille, at en læser kan følge det. Et vindue på tyve minutter med fire relevante hændelser understøtter en konklusion; en eksport for en hel dag med tusindvis af linjer understøtter intet.
Hvor disse registreringer stopper
Lokale registreringer beskriver enheden, ikke vejen. De kan ikke vise, hvad en udbyder gemte, om en session blev knyttet til en konto, eller hvad en destination så. En udbyders erklæring om ikke at føre logfiler siger intet om styresystemet på din bærbare, og en lokal hændelse beviser intet om udbyderens historiske registreringer.
De bærer også flere personoplysninger end forventet: brugernavne, værtsnavne, monteringsstier og enheds-id'er optræder i almindelige systembeskeder, selv når der ikke er noget browservindhold. Fjern dem, før du vedhæfter noget til en billet, og opbevar originalen under normale adgangskontroller.
På en administreret enhed beder du IT om det relevante uddrag i stedet for at forsøge at slette organisationslogning. Det diagnostiske mål er ét snævert spørgsmål besvaret af to kilder, ikke en fuldstændig historie om maskinen.