Cattura VPN: pacchetti interni su tun0, involucro su eth0
L’interfaccia del tunnel mostra il pacchetto in chiaro, l’adattatore fisico mostra l’involucro cifrato. Legga entrambi prima di definire una cattura una fuga di metadati.
Catturare su un host VPN non registra una sola cosa. Il kernel espone il pacchetto due volte: incapsulato, sull’adattatore fisico, e disincapsulato, sul dispositivo tunnel. Scegliere l’interfaccia significa scegliere quale di queste storie si legge. La maggior parte delle discussioni su ciò che una cattura dimostra riguarda in realtà quale storia sia stata raccolta.
L’incapsulamento crea due viste
Il tunnel prende il pacchetto prodotto da un’applicazione e lo inserisce in uno nuovo la cui destinazione è il server VPN. La forma interna appare su tun0, wg0 o su qualsiasi dispositivo abbia creato il client. La forma esterna appare sull’adattatore che la porta in rete. Entrambe le forme sono legittime; rispondono a domande diverse. Raccogliere ciascuna separatamente, perché le due hanno intestazioni e lettori diversi.
sudo tcpdump -i tun0 -n -s 0
sudo tcpdump -i eth0 -n host 198.51.100.20 and udp port 51820
La pseudointerfaccia any è una cattiva scelta per questo confronto. I pacchetti inoltrati possono essere registrati due volte, e un pacchetto generato localmente compare in entrambe le forme, il che gonfia i conteggi. Se un numero sembra impossibile, controlli l’interfaccia prima di incolpare il tunnel.
Dentro il tunnel, il pacchetto è ordinario
Sul dispositivo tunnel, ciò che si vede è ciò che l’applicazione ha chiesto al kernel di inviare. Indirizzi di destinazione, porte, nomi DNS, nomi dei server TLS, dimensioni e tempi sono tutti lì. Il payload TLS resta cifrato dalla sessione dell’applicazione stessa, quindi la cattura non rivela il contenuto della pagina. Una query DNS in chiaro è visibile qui anche se il suo trasporto è cifrato, perché non è mai stata protetta.
Il DNS cifrato elimina quell’unico campo visibile. Non nasconde l’indirizzo di destinazione, il conteggio dei byte o il ritmo, che sono proprietà del flusso e non della query.
Fuori, solo l’involucro e la sua forma
L’adattatore fisico mostra il vostro indirizzo, quello del server, la porta, le dimensioni dei pacchetti e i tempi. Le destinazioni trasportate all’interno sono assenti, anche se la loro forma può ancora sostenere inferenze. Dimensioni e cadenza possono suggerire un flusso video, un trasferimento massiccio o una sessione di chat senza nominarne alcuna. Un osservatore vicino vede all’incirca la stessa vista, il che spiega come un tunnel possa nascondere i siti pur annunciando la propria presenza.
Questa affermazione dipende dall’instradamento. Una rotta più stretta, un IPv6 predefinito che non entra nel tunnel o un processo legato all’interfaccia fisica metteranno il traffico fuori dall’involucro. Legga la rotta reale prima di trarre conclusioni dalla cattura.
Indirizzo del peer e igiene della cattura
OpenVPN in modalità TCP mantiene un socket stabilito, quindi la tabella dei socket può nominare il peer. OpenVPN in modalità UDP spesso lascia il socket non connesso, e ss potrebbe mostrare solo il lato locale. Legga invece remote del profilo, un log dettagliato del client o la rotta verso l’endpoint. WireGuard riporta direttamente il proprio endpoint e l’ultima stretta di mano.
wg show
ss -tunp | grep 51820
Un file di cattura sopravvive alla sessione che l’ha prodotto. Può essere copiato e può essere leggibile da chiunque abbia accesso locale. Conservi solo ciò che serve all’indagine, limiti i permessi e lo elimini quando il lavoro è finito.
Una cattura condivisibile dovrebbe dire quale interfaccia l’ha prodotta e quando. Senza quella nota, il lettore successivo deve indovinare quale livello stia guardando.