Mogu li DHCP rute poslati vaš saobraćaj mimo VPN tunela?
Šifriranje štiti pakete tek kada uđu u tunel. Odabir rute odlučuje koji će ući. Provjerite DHCP rute, pravila i put koji aplikacije prelaze.
Šifriranje počinje na granici, a ta granica je odluka o usmjeravanju koju krajnja točka donosi prije nego što se bilo koji paket inkapsulira. Mreža koja nikada ne vidi vaše ključeve ipak može vašem računaru dati rutu koju smatra boljom od one koju ima sam tunel. Ovdje se brkaju dva kvara: čitanje paketa koji je već unutar tunela i usmjeravanje paketa koji nikada nije tamo stavljen.
Razlika je važna jer je drugi kvar jeftinije pripremiti i mnogo ga je lakše propustiti. On se pojavljuje kao zahtjev koji je izašao kroz pogrešno sučelje dok je klijent još izvještavao o zdravom spoju.
Dva načina na koja mreža može uticati na vas
Paket koji stigne do tunela ima svoj teret skriven od svakog skoka koji pređe, a ta zaštita vrijedi čak i kada vas put iznenadi. Paket koji nikada ne stigne do tunela običan je zahtjev s vaše adrese, poslan kamo je pokazivala tabela ruta. Prvi kvar traži slomljenu šifru ili kompromitovanog partnera, dok drugi traži samo konfiguracijsku poruku kojoj je vaš računar odlučio vjerovati. Ta asimetrija je razlog zašto polovina s usmjeravanjem zaslužuje zaseban pregled.
Oprema na putu ne treba vaše ključeve da bi uticala na drugi slučaj. Treba joj samo da vaša krajnja točka prihvati rutu, razrješivač ili pravilo politike koje stvara rutu.
expected: app -> tunnel device -> encapsulation -> internet
observed: app -> wlan0 -> plaintext -> internet
Odakle ruta može doći prije nego što tunel postoji
DHCP ne dijeli samo zakup adrese. Opcija bestklasne statičke rute može nositi prefikse odredišta i sljedeće skokove, a RFC 3442 razmatra sigurnosne posljedice pogrešne adrese rutera: pogrešno usmjeren saobraćaj, uskraćivanje usluge ili posmatrač smješten na putu. Klijent koji prihvati te rute prije nego što se tunel podigne može završiti s poželjnim putem koji nema nikakve veze s vašim provajderom.
Ništa od toga ne čini injekciju ruta univerzalnom. Klijent mora prihvatiti opciju, prefiks mora pokrivati saobraćaj do kojeg vam je stalo, odabrani sljedeći skok mora biti dostupan, a politika provođenja mora dozvoliti paketu da izađe tim putem. Uklonite bilo koju od tih stavki i isti odgovor postaje bezopasan. Zato se i dva računara na istoj mreži mogu ponašati različito, jer ne pokreću isti klijent, istu politiku, pa čak ni istu adresnu familiju.
IPv6 zaslužuje zaseban prolaz, jer najave rutera nose zadanu rutu kroz drugačiji kod od opcije DHCPv4. Test koji pregleda samo v4 tabelu nije ga pokrio.
Provjerite put koji jezgro zaista bira
Upiti ruta imaju odgovor, pa ih pitajte umjesto da zaključujete iz statusnog svjetla. Naredbe ispod pokazuju odabranu rutu i izvor za jedno odredište, plus pravila koja mogu nadjačati glavnu tabelu. Pokrenite ih dok ste povezani i ponovo nakon ponovnog spajanja, jer obnova zakupa 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 tražeći dvije stvari: sučelje navedeno u ruti i odabranu izvorišnu adresu. Ruta kroz tunel navodi tunelski uređaj, procurjela ruta navodi fizički, a razlika je vidljiva bez dešifriranja bilo čega. Ako se odgovor promijeni između pokretanja, sačuvajte oba izlaza i uporedite pravila koja su ih proizvela.
Ne zaustavljajte se na zadanoj ruti. Izuzev 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 provođenje treba živjeti
Tri uslova odlučuju je li provođenje na strani klijenta dovoljno ili vam treba nešto izvan njega. Ako klijent instalira i brani rute za svaku adresnu familiju koju koristite, tunel koji posjeduje zadanu rutu obično je dovoljan. Ako računar mora dosegnuti lokalne resurse dok sve ostalo ostaje u tunelu, ta izuzeća moraju biti popisana i posjedovana, umjesto da se prepuste onome što je pristupna mreža objavila. A ako platforma može vezati saobraćaj za sučelje po aplikaciji, ta veza je jača garancija od rute koju bilo šta može nadjačati.
Šta god odabrali, zapišite odluku tamo gdje konfiguracija živi. Pravilo koje postoji jer ga je neko otkucao tokom incidenta neće preživjeti sljedeće podizanje, pa držite lokalna izuzeća i izuzeća pri podizanju uskim i zabilježite zašto svako postoji.
Ponovo pokrenite naredbe za provjeru nakon svakog ažuriranja klijenta i svake promjene mreže i uporedite sa posljednjim zabilježenim izlazom. Tabela ruta je granica provođenja, pa je tretirajte kao takvu.