VPN sagovornik pinguje druge interfejse jer su lokalni
Lokalna tabela rutiranja šalje pakete na svaku adresu koju host posjeduje, bez obzira na kojoj se interfejsu nalazi. Postavke prosljeđivanja nikada ne ulaze na taj put.
WireGuard klijent se povezuje i pinguje adresu na potpuno drugom interfejsu, i odgovor stiže. Snimci pokazuju zahtjev samo na tunelu. Ništa nije pokvareno, a postavka prosljeđivanja koja je pažljivo onemogućena nema nikakve veze s tim. Ovo je poređenje dva puta koji na dijagramu izgledaju slično, a u kernelu su potpuno različiti.
Jedan put prosljeđuje pakete za nekog drugog; drugi ih dostavlja samom hostu.
Paket adresiran na host ostaje u hostu
Udaljeni klijent šalje IP paket na adresu koju host posjeduje. Rutiranje postavlja jedno pitanje o tom paketu: je li ovo odredište lokalno? Svaka adresa koju host drži pojavljuje se u lokalnoj tabeli rutiranja, i ta tabela se pregleda prije glavne, pa paket ide u vlastiti stek hosta umjesto da izađe kroz drugi interfejs. Odgovor se generira lokalno i vraća se kroz tunel jer je upit došao odatle.
To je cijeli mehanizam. Nikakvo prosljeđivanje se ne događa, nikakva promjena stanja interfejsa nije uključena, a dotična adresa ne mora biti dostupna ni odakle drugdje.
Zašto se ip_forward ne primjenjuje
Prosljeđivanje upravlja paketima koji moraju izaći kroz drugi interfejs od onoga na koji su stigli. Ping prema samom hostu nikada ne ide tim putem: paket se troši lokalno i odgovor se generira lokalno. Postavljanje net.ipv4.ip_forward=0 zato ovdje ništa ne mijenja, a pravilo u lancu prosljeđivanja nikada ne vidi taj promet. Ispravna kontrola nalazi se na ulaznom putu, ograničena dolaznim interfejsom ili izvorom.
Zato onemogućavanje prosljeđivanja i pretpostavka da je host izoliran stvaraju lažan osjećaj sigurnosti.
Pročitajte lokalnu tabelu koja je odlučila
ip rule show obično prijavljuje pravilo s prioritetom nula koje sve pretrage prvo šalje u lokalnu tabelu, a ip route show table local navodi vlastite adrese hosta s lokalnim opsegom. Ta tabela uključuje adrese na interfejsima koji su administrativno isključeni ali još konfigurirani. IPv4 adrese dodijeljene statički obično prežive prekid veze, i tako ping prema isključenom mostu može ipak uspjeti i iznenaditi operatera.
IPv6 se razlikuje upravo u ovoj točki. Njegove adrese obično se povlače kada veza padne, osim ako je postavljen keep_addr_on_down. Uporedite porodice umjesto da pretpostavite da jedno pravilo pokriva oboje.
Šta sagovornik zapravo doseže
Odgovor s vlastite adrese rutera na segmentu ne govori ništa o mašinama iza tog segmenta. Sagovornik ne može doći do hosta iza drugog interfejsa ovim putem; doseže samo adrese koje sam ruter posjeduje. Testiranje usluge na zasebnom LAN hostu, umjesto pinganja ruterove adrese, ono je što utvrđuje je li prosljeđivanje uopće dopušteno.
Ograničavanje sagovornika na usluge vezane na adresi tunela pitanje je ulazne politike. Dopustite željenu uslugu na interfejsu tunela i ograničite izvore koji je smiju koristiti, jer paket zaista stiže tamo.
Provjerite i adrese koje ste namjeravali ukinuti. Uklanjanje adrese s interfejsa pouzdanije je od slaganja firewall pravila na zastarjelu adresu.