Lančano povezivanje dva VPN-a: što skriva i koliko košta
Ugniježđeni tuneli mijenjaju tko vidi koji kraj, a ne tko vidi vas. Provedite unutarnji kraj kroz vanjski tunel, pa provjerite DNS, MTU i pričuvni put.
Dva ugniježđena tunela ne čine vas anonimnim. Oni dijele opažanja između dva pružatelja, pa nijedan ne vidi vašu kućnu adresu i vaše odredište zajedno. To je stvarna, ali uska korist, i dolazi s problemima usmjeravanja, DNS-a i MTU-a koji se pojave prvi put kad se na nju oslonite.
1. Odlučite čemu služi drugi skok
Zapišite cilj u jednoj rečenici prije nego što bilo što konfigurirate. Ako je cilj da vaš ISP ne može vidjeti koje stranice posjećujete, jedan tunel to postiže. Ako je cilj da nijedan pojedini pružatelj ne može povezati vašu adresu s vašim prometom, to čine dva. Ako je cilj da vas nitko ne može identificirati, nikakav broj skokova to ne postiže.
Lanac je samo onoliko jak koliko su jaki zapisi slabijeg pružatelja i računi koje oba vode. Plaćanja, e-pošta za registraciju i telemetrija aplikacije stoje posve izvan tunela.
2. Učinite unutarnji kraj dostupnim kroz vanjski tunel
Uobičajeni neuspjeh je da se unutarnji tunel nikad ne uspostavi. Vanjska veza s punim tunelom posjeduje zadanu rutu, pa pokušaj unutarnjeg klijenta da dosegne vlastiti kraj bude progutao vanjskim tunelom i odbačen ili vraćen u petlju. Unutarnji kraj treba izričitu rutu kroz vanjsko sučelje, postavljenu prije pokretanja unutarnjeg klijenta. Inače se rukovanje utrkuje s rutom i gubi.
WireGuard pokazuje isti sukob iz drugoga smjera. Svaki peer ima AllowedIPs koji odlučuje koja odredišta ulaze u taj tunel, pa unutarnje sučelje koje traži svaku adresu traži i vanjski kraj, osim ako ne pobijedi preciznija ruta. Preklapajući AllowedIPs na dva sučelja jest konfiguracija u kojoj jedna strana tiho gubi.
Lančano povezivanje kontejnera čini razdvajanje izričitim, a zamku očitom. Kontejner s vlastitim imenskim prostorom, vlastitom zadanom rutom i klijentom unutra prosljeđuje ono što mu host pošalje; host sam ne počinje rabiti taj put. Uključite prosljeđivanje, dodajte rutu za tunel kontejnera i usmjerite uslugu na adresu kontejnera.
3. Držite DNS na istom putu
DNS mora putovati kuda putuje promet. Ako unutarnji pružatelj nudi razrješivače, a host još pita lokalne, ti upiti otkrivaju točno one stranice koje je tunel trebao sakriti. Provjeravajte snimkom na svakom sučelju tunela umjesto da vjerujete ploči stanja klijenta. Curenje je ovdje nevidljivo tijekom normalnog pregledavanja, a očito u snimci.
Podijeljeni DNS dizajni to otežavaju, jer upit za lokalno ime može legitimno pripadati izvan tunela. Napišite popis izuzetaka namjerno, umjesto da ga otkrivate po tome koji je razrješivač slučajno odgovorio.
4. Postavite MTU prije nego što korisnici to otkriju umjesto vas
MTU je druga predvidiva žrtva. Dvije enkapsulacije oduzimaju dva zaglavlja, a vanjski tunel koji je već snizio MTU puta ostavlja manje prostora unutra. Simptomi su poznati: mali zahtjevi prolaze, veliki prijenosi i TLS rukovanja zapinju.
ip link set dev wg1 mtu 1280 je grubo rješenje, a ograničavanje MSS-a na prosljeđivaču je urednije. Ponovni pokušaj veze nije nikakvo rješenje.
5. Testirajte otkaz koji ćete doista dobiti
Namjerno prekinite vanjski tunel i gledajte što se dogodi. Lanac koji tiho padne na izravan put kad vanjski skok umre gori je od nikakva lanca, jer curi baš u trenutku kad ste vjerovali da ste pokriveni. Cilj je kill switch koji zaustavlja sav promet. Zapišite rezultat, jer ga nećete htjeti ponovno otkrivati usred incidenta.
Latencija i druga točka otkaza stalni su trošak. Dva skoka znače i dva reda podrške kad se nešto pokvari u nezgodno vrijeme.