Jak zaznamenat a ověřit použitou výstupní adresu VPN
Klientské aplikace ukazují název lokality, ne adresu, kterou váš provoz odešel. Zachyťte výstupní IP při připojení a porovnejte ji s přímou referencí.
Zeptejte se desktopového VPN klienta, které servery jste použili, a poctivá odpověď je obvykle název lokality. Ten název je vstupní bod, který jste vytáčeli, a adresa, kterou váš provoz odešel, může být úplně jiný stroj. Nic v aplikaci není navrženo tak, aby si druhý údaj pamatovalo, takže záznam musí vzniknout v okamžiku použití. Existují dva postupy a jen jeden z nich přežije kontakt s případem podpory.
Dva záznamy, z nichž existuje jen jeden
Pohled samotného klienta je v nejlepším případě seznam zvolených lokalit s časovými razítky. To je rozhodnutí o návrhu, ne opomenutí: adresy jsou provozní detail, rotují mezi přiřazeními a zveřejnění mapování ztěžuje jak podporu, tak řešení zneužití. Poskytovatelé stavějí před své sítě cloudové instance právě proto, aby se koncový bod mohl přesunout, aniž by o tom někdo věděl. Co vám aplikace ukazuje, je vaše volba, ne trasa, kterou provoz šel.
Záznam, který si můžete postavit, je místní soubor s jednou veřejnou adresou a jedním časovým razítkem UTC na řádek. Je menší, ošklivější a mnohem užitečnější, protože popisuje přesně to, co může vidět i vnější pozorovatel.
Varianta A: zachyťte výstupní adresu sami
Ozvěnová služba vrací zdrojovou adresu, ze které požadavek přišel, což je z definice výstupní adresa. Spusťte zachycení poté, co tunel ohlásí připojení, protože klient, který řekne připojeno dřív, než se usadí trasy a DNS, zaznamená adresu před tunelem a od první řádky otráví log.
#!/bin/sh
umask 077
log="$HOME/vpn-exit.log"
printf '%s %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$(curl -fsS https://api.ipify.org)" >> "$log"
Dva detaily dělají ten úryvek použitelným, ne dekorativním. Časové razítko a adresa sdílejí jeden řádek, takže pozdější zpracování nemusí párovat záznamy, a umask 077 drží soubor soukromý od okamžiku vytvoření. Spouštějte ho jednou na připojení, ne jednou na start, a mějte jeden soubor na zařízení.
Log zaznamenává, kdy jste tunel použili a ze které sítě jste se objevili, což je blíž historii prohlížení než počítadlu. Zvolte dobu uchování, kterou dokážete obhájit, držte soubor mimo sdílené synchronizační složky a mažte ho vědomě.
Varianta B: požádejte poskytovatele o historii
Někteří poskytovatelé vedou záznamy o připojení a odpoví na otázku podpory časovým razítkem a názvem serveru. Ten záznam popisuje jejich infrastrukturu, ne váš provoz, a platí jen tolik, kolik platí jejich okno uchování a jejich ochota se podívat. Také popisuje relaci, ne požadavek. Okno bývá krátké a měří se z poskytovatelovy strany tunelu.
Poskytovatelé, kteří inzerují, že nic nelogují, to na požádání nedokážou doložit, a seznam nedávných lokalit na straně klienta není totéž. Žádat poskytovatele bez logů o výstupní adresu obvykle skončí vysvětlením, proč ta data neexistují.
Co může každý záznam prokázat v případu podpory
Oba záznamy odpovídají na různé otázky a právě v tabulce přestává být srovnání akademické.
| Question | Your local log | Provider record |
|---|---|---|
| Which address did the traffic leave from? | Yes, for the moment it was captured | Usually not disclosed |
| Was the tunnel in use at 14:20? | Yes, if the capture ran | Yes, within the retention window |
| Why did a location get slower? | Yes, by comparing addresses over time | Sometimes, as an infrastructure note |
| Who sent this specific request? | No | No |
Pod vaší kontrolou je jen první sloupec. Záznam poskytovatele může potvrdit, že účet byl v danou dobu připojen, ale nemůže potvrdit, které požadavky tunel použily, a neoznačí adresu, kterou poskytovatel považuje za provozní detail. Ani jeden záznam neidentifikuje osobu, protože sdílená výstupní adresa může v téže minutě nést mnoho zákazníků.
Porovnejte oba s referencí, než jednomu z nich uvěříte
Adresa sama o sobě nic nedokazuje. Zachyťte přímou adresu před připojením, tunelovanou po něm, a porovnejte je. Shodné hodnoty znamenají, že tunel ten požadavek nenese, ať už kvůli rozdělenému tunelu, nadřazené proxy nebo klientovi, který přešel na přímou cestu.
curl -fsS https://api.ipify.org; echo
curl -fsS https://api64.ipify.org; echo
dig +short TXT o-o.myaddr.l.google.com @1.1.1.1
Zopakujte srovnání pro DNS a pro IPv6, protože ozvěna adresy dokazuje cestu jednoho požadavku HTTP a nic o tom, který resolver odpověděl. Zařízení, které uniká v jednom z případů, může v druhém vypadat naprosto zdravě.