Mogu li DHCP rute poslati vaš promet oko VPN tunela?
Šifriranje štiti pakete tek kad uđu u tunel. Odabir rute odlučuje koji će ući. Provjerite DHCP rute, pravila i put kojim idu aplikacije.
Šifriranje počinje na granici, a ta granica je odluka o usmjeravanju koju krajnja točka donosi prije nego što se bilo koji paket enkapsulira. Mreža koja nikad ne vidi vaše ključeve ipak može vašem stroju dati rutu koja joj se sviđa više od one koju ima tunel. Ovdje se miješaju dvije pogreške: čitanje paketa koji je već u tunelu i usmjeravanje paketa koji tamo nikada nije stavljen.
Razlika je važna jer je drugu pogrešku jeftinije urediti i mnogo lakše propustiti. Očituje se kao zahtjev koji je izašao kroz pogrešno sučelje dok je klijent još izvještavao o zdravu spoju.
Dva načina na koja mreža može utjecati na vas
Paket koji stigne do tunela ima sadržaj skriven od svakog skoka koji prijeđe, i ta zaštita vrijedi čak i kad vas put iznenadi. Paket koji nikad ne stigne do tunela običan je zahtjev s vaše adrese, poslan onamo kamo je pokazivala tablica usmjeravanja. Prva pogreška traži slomljenu šifru ili kompromitiranog partnera, dok druga traži samo konfiguracijsku poruku kojoj je vaš stroj odlučio vjerovati. Zbog te asimetrije polovica koja se bavi usmjeravanjem zaslužuje zaseban pregled.
Oprema na putu ne treba vaše ključeve da bi utjecala na drugi slučaj. Treba joj samo da vaša krajnja točka prihvati rutu, resolver ili pravilo politike koje takvu proizvodi.
expected: app -> tunnel device -> encapsulation -> internet
observed: app -> wlan0 -> plaintext -> internet
Odakle ruta može doći prije nego tunel postoji
DHCP dijeli više od najma adrese. Opcija besklasnih statičkih ruta može nositi prefikse odredišta i sljedeće skokove, a RFC 3442 raspravlja o sigurnosnim posljedicama pogrešne adrese usmjerivača: promet poslan na pogrešnu stranu, uskraćivanje usluge ili promatrač smješten na putu. Klijent koji prihvati te rute prije nego tunel bude aktivan može završiti s poželjnim putem koji nema nikakve veze s vašim pružateljem usluge.
Ništa od toga ne čini ubacivanje ruta univerzalnim. Klijent mora prihvatiti opciju, prefiks mora pokrivati promet do kojeg vam je stalo, odabrani sljedeći skok mora biti dostupan, a politika provedbe mora dopustiti paketu da izađe tim putem. Uklonite bilo koji od tih uvjeta i isti je odgovor bezopasan. Zato se dva stroja na istoj mreži mogu ponašati različito, jer ne pokreću isti klijent, istu politiku ili čak istu obitelj adresa.
IPv6 zaslužuje zaseban prolaz, jer najave usmjerivača nose zadanu rutu kroz drugi kod od opcije DHCPv4. Test koji pregledava samo v4 tablicu to nije pokrio.
Provjerite put koji jezgra stvarno odabire
Na upite o ruti može se dobiti odgovor, pa pitajte njih umjesto da zaključujete iz svjetla statusa. Naredbe u nastavku pokazuju odabranu rutu i izvor za jedno odredište, plus pravila koja mogu nadjačati glavnu tablicu. Pokrenite ih dok ste spojeni i ponovno nakon ponovnog spajanja, jer obnova najma može promijeniti odgovor.
ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com
Čitajte izlaz zbog dvije stvari: sučelja navedenog u ruti i odabrane izvorne adrese. Ruta tunela navodi tunelski uređaj, procurjela ruta navodi fizički, a razlika je vidljiva bez ikakva dešifriranja. Ako se odgovor mijenja između pokretanja, sačuvajte oba izlaza i usporedite pravila koja su ih proizvela.
Ne zaustavljajte se na zadanoj ruti. Iznimka za aplikaciju, prefiks podijeljenog tunela ili drugo pravilo politike mogu provesti određeno odredište oko tunela dok zadana još pokazuje unutra.
Odlučite gdje treba živjeti provedba
Tri uvjeta odlučuju je li provedba na strani klijenta dovoljna ili trebate nešto izvan nje. Ako klijent instalira i brani rute za svaku obitelj adresa koju koristite, tunel koji posjeduje zadanu rutu obično je dovoljan. Ako stroj mora dosegnuti lokalne resurse dok sve ostalo ostaje u tunelu, te iznimke treba popisati i preuzeti odgovornost za njih, a ne prepustiti onome što je pristupna mreža najavila. I ako platforma može vezati promet uz sučelje po aplikaciji, ta je veza jače jamstvo od rute koju bilo što može nadjačati.
Što god odabrali, zapišite odluku tamo gdje živi konfiguracija. Pravilo koje postoji zato što ga je netko utipkao tijekom incidenta neće preživjeti sljedeće ponovno pokretanje, pa držite lokalne i početne iznimke uskima i zabilježite zašto svaka postoji.
Ponovno pokrenite naredbe za provjeru nakon svakog ažuriranja klijenta i svake promjene mreže, i usporedite sa zadnjim zabilježenim izlazom. Tablica usmjeravanja granica je provedbe, pa se prema njoj tako i odnositi.