Opnemen op een VPN-host legt niet één ding vast. De kernel toont het pakket twee keer: ingepakt, op de fysieke adapter, en uitgepakt, op het tunnelapparaat. De interface kiezen is kiezen welk van die verhalen u leest. De meeste discussies over wat een opname bewijst, gaan eigenlijk over welk verhaal is verzameld.

Encapsulatie creëert twee weergaven

De tunnel neemt het pakket dat een toepassing heeft geproduceerd en stopt het in een nieuw pakket waarvan de bestemming de VPN-server is. De binnenste vorm verschijnt op tun0, wg0 of welk apparaat de client ook heeft gemaakt. De buitenste vorm verschijnt op de adapter die hem naar het netwerk draagt. Beide vormen zijn legitiem; ze beantwoorden verschillende vragen. Verzamel elk afzonderlijk, want de twee hebben verschillende headers en verschillende lezers.

sudo tcpdump -i tun0 -n -s 0
sudo tcpdump -i eth0 -n host 198.51.100.20 and udp port 51820

De pseudo-interface any is een slechte keuze voor deze vergelijking. Doorgestuurde pakketten kunnen twee keer worden vastgelegd, en een lokaal gegenereerd pakket verschijnt in beide vormen, wat de tellingen opblaast. Als een getal onmogelijk lijkt, controleer dan de interface voordat u de tunnel de schuld geeft.

Binnen de tunnel is het pakket gewoon

Op het tunnelapparaat is wat u ziet wat de toepassing de kernel heeft gevraagd te versturen. Bestemmingsadressen, poorten, DNS-namen, TLS-servernamen, groottes en timing staan er allemaal. De TLS-payload blijft versleuteld door de eigen sessie van de toepassing, dus de opname onthult geen paginainhoud. Een DNS-query in platte tekst is hier zichtbaar, ook al is de drager versleuteld, omdat die nooit was beschermd.

Versleutelde DNS verwijdert dat ene zichtbare veld. Het verbergt niet het bestemmingsadres, het bytetelling of het ritme, die eigenschappen van de stroom zijn en niet van de query.

Buiten alleen het omhulsel en zijn vorm

De fysieke adapter toont uw adres, het adres van de server, de poort, pakketgroottes en timing. Bestemmingen die binnenin worden gedragen ontbreken, hoewel hun vorm nog steeds gevolgtrekkingen kan ondersteunen. Groottes en cadans kunnen een videostream, een grote overdracht of een chatsessie suggereren zonder een ervan te benoemen. Een nabije waarnemer ziet ongeveer hetzelfde beeld, wat verklaart hoe een tunnel sites kan verbergen terwijl hij zijn eigen aanwezigheid adverteert.

Die bewering hangt af van routing. Een smallere route, een IPv6-standaard die de tunnel niet ingaat, of een proces dat aan de fysieke interface is gebonden, plaatsen verkeer buiten het omhulsel. Lees de werkelijke route voordat u conclusies uit de opname trekt.

Peeradres en opnamehygiëne

OpenVPN in TCP-modus houdt een gevestigde socket, dus de sockettabel kan de peer noemen. OpenVPN in UDP-modus laat de socket vaak onverbonden, en ss toont mogelijk alleen de lokale kant. Lees in plaats daarvan remote van het profiel, een uitgebreid clientlog of de route naar het eindpunt. WireGuard rapporteert zijn eindpunt en laatste handshake rechtstreeks.

wg show
ss -tunp | grep 51820

Een opnamebestand overleeft de sessie die het heeft geproduceerd. Het kan worden gekopieerd en het kan leesbaar zijn voor iedereen met lokale toegang. Bewaar alleen wat het onderzoek nodig heeft, beperk de rechten en verwijder het wanneer het werk klaar is.

Een deelbare opname moet vermelden welke interface hem heeft geproduceerd en wanneer. Zonder die notitie moet de volgende lezer raden naar welke laag hij kijkt.

Gerelateerde artikelen