Š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čunalu 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 utjecati na vas

Paket koji stigne do tunela ima svoj teret skriven od svakog skoka koji prijeđ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 tablica ruta. Prvi kvar traži slomljenu šifru ili kompromitiranog partnera, dok drugi traži samo konfiguracijsku poruku kojoj je vaše računalo odlučilo vjerovati. Ta asimetrija razlog je zašto polovica s 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, 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 besklasne statičke rute može nositi prefikse odredišta i sljedeće skokove, a RFC 3442 razmatra sigurnosne posljedice pogrešne adrese usmjerivača: pogrešno usmjeren promet, uskraćivanje usluge ili promatrač 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 pružateljem usluga.

Ništa od toga ne čini injekciju ruta univerzalnom. 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 koju od tih stavki i isti odgovor postaje bezopasan. Zato se i dva računala na istoj mreži mogu ponašati različito, jer ne pokreću isti klijent, istu politiku pa čak ni istu adresnu obitelj.

IPv6 zaslužuje zaseban prolaz, jer najave usmjerivača nose zadanu rutu kroz drugačiji kôd od opcije DHCPv4. Test koji pregledava samo v4 tablicu nije ga pokrio.

Provjerite put koji jezgra stvarno bira

Upiti ruta imaju odgovor, pa pitajte njih 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 tablicu. Pokrenite ih dok ste povezani i ponovno 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 ičega. Ako se odgovor promijeni 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 provedba treba živjeti

Tri uvjeta odlučuju je li provedba na strani klijenta dovoljna ili vam treba nešto izvan nje. Ako klijent instalira i brani rute za svaku adresnu obitelj koju koristite, tunel koji posjeduje zadanu rutu obično je dovoljan. Ako računalo mora dosegnuti lokalne resurse dok sve ostalo ostaje u tunelu, te iznimke moraju biti popisane i posjedovane, umjesto da se prepuste onome što je pristupna mreža objavila. A ako platforma može vezati promet za sučelje po aplikaciji, ta veza je jače jamstvo od rute koju bilo što može nadjačati.

Što god odabrali, zapišite odluku tamo gdje konfiguracija živi. Pravilo koje postoji jer ga je netko otipkao tijekom incidenta neće preživjeti sljedeće podizanje, pa držite lokalne iznimke i iznimke pri podizanju 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 ruta je granica provedbe, pa je tretirajte kao takvu.

Povezani članci