Snimili ste promet na IPsec hostu, vidjeli odlazne ESP pakete, niste vidjeli ništa što se vraća i zaključili da je udaljena strana pokvarena. Snimka ne podupire taj zaključak. ESP štiti jedan smjer razgovora i ništa ne potvrđuje na IP sloju, pa nedostatak povratnog ESP-a može jednako lako značiti da aplikacija nije imala što reći kao i da je tunel mrtav. Pročitajte unutarnju razmjenu i stanje prijemne strane prije nego okrivite bilo koji kraj.

Mit: svaki zaštićeni paket dobiva odgovor

ESP nije protokol zahtjeva i odgovora. Šifrira i autentificira sve što politika odabere, a primatelj validira, dešifrira i dostavlja taj unutarnji paket bez stvaranja vlastitog paketa. UDP upit koji odredište ignorira, ili ICMP jeka koju ulazna politika odbaci, proizvodi tišinu u oba smjera kao ispravan ishod. Tretiranje te tišine kao transportnog kvara šalje vas u potragu za mrežnim kvarom kojeg nikada nije bilo.

Jednosmjerna snimka zapravo dokazuje da je stog pošiljatelja nešto šifrirao u toj točki promatranja. Ništa o dolasku i ništa o namjeri da se odgovori. Korisno pitanje nije „zašto nema odgovora“ nego „što je unutarnji razgovor trebao proizvesti“.

Dvije SA, dva SPI, jedan razgovor

IPsec sigurnosne asocijacije su jednosmjerne, pa uobičajena zaštićena razmjena vodi ulaznu asocijaciju i izlaznu asocijaciju s odvojenim identifikatorima i neovisnim stanjem. Traženje povratnog prometa po SPI-ju odlaznog paketa stoga je kategorijska pogreška, jer svaki odgovor putuje pod vlastitom izlaznom SA partnera s vlastitim SPI-jem. Umjesto toga uparite par po selektorima prometa i adresama partnera.

Obnova ključa na nekoliko sekundi komplicira sliku jer se staro i zamjensko stanje mogu preklapati. Ako je simptom počeo oko obnove ključa, prikupite identifikatore asocijacija i vremenske oznake zajedno, a ne samo naziv veze.

Što primatelj mora učiniti prije nego išta odgovori

StageWhat to look atWrong conclusion if skipped
Sender encryptsoutbound SA packet counter"the tunnel is up"
Peer receivesinbound SA counter and replay window"the peer is down"
Inner deliverytarget host or service logs"routing is broken"
Application repliesthe app's own trace"the reply was dropped"
Protected returnthe peer's outbound SA"ESP only works one way"

Svaki redak zataji neovisno i svaki kvar ima drugog vlasnika, zato jedna snimka ne može razlikovati te kvarove. Ulazni brojač jedini je izravni dokaz dolaska, jer se paket koji ne prođe autentifikaciju ili provjeru ponavljanja odbacuje bez ikakvog odgovora. Partner čiji se ulazni brojač nije pomaknuo stoga vam uopće ne daje nikakvu informaciju o svojoj politici.

Dostava je odvojen korak od dešifriranja. Stanje može biti valjano, a paket ipak kasnije odbaci ulazna politika ili ruta koja ne uključuje unutarnje odredište, pa provjerite je li ciljni host vidio čisti tekst, umjesto da pretpostavite da čist brojač znači da je paket otišao kamo ste htjeli.

Izvorni ESP nije UDP

Izvorni ESP je IP protokol 50, koji nije ni TCP ni UDP i uopće nema portova. Pravilo vatrozida koje dopušta IKE na UDP 500 stoga ne govori ništa o putu podataka, a filtar napisan oko portova može pustiti tunel da pregovara i zatim odbaciti sve što se u njemu prenosi. Testirajte put podataka zasebno, u načinu koji ste stvarno promatrali.

Iza NAT-a oblik se mijenja: zaštićeni teret putuje unutar UDP-a, obično na portu 4500, kako definira RFC 3948. Zabilježite aktivni način prije pisanja bilo kojeg pravila, jer uređaj na putu može potpuno različito tretirati izvorni ESP i ESP inkapsuliran u UDP, a neka posrednička kutija dopuštaju jedno dok odbacuju drugo.

Čitajte brojače koji pripadaju ovom incidentu

Na strongSwan hostu swanctl --list-sas izvješćuje brojače paketa i bajtova po asocijaciji u oba smjera, što je dovoljno da se odvoji „nikad nije stiglo“ od „stiglo i nije odgovoreno“. Na Linuxu /proc/net/xfrm_stat broji agregirane kvarove poput nedostajućeg stanja, nedostajuće politike i pogrešaka protokola. Ti se zbrojevi nakupljaju od podizanja sustava i pripadaju jednom mrežnom imenskom prostoru, pa velik broj nije pripisivanje.

Uzmite dva očitanja oko prozora incidenta u ispravnom imenskom prostoru i usporedite razlike, inače ćete prošlotjedne pogreške pripisati današnjem nalogu. Stavite imenski prostor i obje vremenske oznake u nalog kako bi sljedeći čitatelj mogao ponoviti usporedbu umjesto da vjeruje zbroju.

Imenujte fazu, ne osumnjičenika

Koristan zaključak kaže gdje se paket zaustavio: nikad primljen, primljen i odbačen, dostavljen ali bez odgovora, ili odgovoren i izgubljen na povratku. Svaki od njih upućuje na drugog vlasnika i drugu sljedeću naredbu. „Nema odgovora od VPN poslužitelja“ sažima četiri različita kvara u jednu rečenicu koju snimka nikada nije opravdala.

Držite snimke uskima i ne stavljajte sirovo stanje kernela u naloge, jer ono može nositi ključni materijal koji ne bi trebao napustiti host. Razlike brojača i vremenske oznake dijelovi su koje vrijedi predati sljedećoj osobi.

Povezani članci