Kako čitati prvu IKEv2 razmjenu u snimci paketa
Uparite IKE_SA_INIT zahtjev i odgovor prema SPI-ju i ID-u poruke, razlikujte IKE od enkapsuliranog ESP-a na 4500 i pogledajte što tihi trag može dokazati.
Snimke uzete nasred sesije uobičajen su razlog zašto IKEv2 trag izgleda kao šum, jer strane već obnavljaju ključeve ili razmjenjuju šifrirane terete kad snimanje počne. Umjesto toga počnite novim pokušajem povezivanja, tako da prva poruka u datoteci bude ona koja otvara pregovore. Redoslijed čitanja u nastavku to pretpostavlja i označava točku u kojoj paket prestaje dokazivati bilo što o udaljenoj strani. Preskakanje tog koraka vodi do toga da se ispravan tunel dijagnosticira kao blokiran port.
Potvrdite da gledate početnu razmjenu
IKEv2 pregovori počinju s IKE_SA_INIT, tipom razmjene 34, ID-om poruke 0. Inicijator bira SPI različit od nule, a SPI odgovarača je nula u tom prvom zahtjevu i različit od nule u odgovoru. Te tri činjenice razdvajaju novi pokušaj od obnove ključeva ili od IKE_AUTH poruke koja se slučajno nalazi na vrhu snimke.
Polja zaglavlja su čitljiva, kao i tereti prijedloga, razmjene ključeva i nonce. Čitljivost nije autentifikacija: nijedna strana nije dokazala identitet u ovoj fazi, a privatna vrijednost Diffie-Hellmana nikad se ne pojavljuje na žici.
Ispišite polja kao tablicu umjesto da skrolate kroz ploču za dekodiranje, jer ponovna slanja i neusklađeni SPI postaju očiti u stupcima.
tshark -r ike.pcapng -Y "isakmp" -T fields -e frame.number -e ip.src -e udp.srcport -e isakmp.exchangetype -e isakmp.messageid -e isakmp.initiator_spi -e isakmp.responder_spi
Čitajte izlaz u parovima. Zahtjev s ID-om poruke 0 iza kojeg slijedi odgovor s istim ID-om i SPI-jem odgovarača različitim od nule jest jedna razmjena, čak i kad se pojavi tri puta jer je zahtjev ponovno poslan. Tri identična zahtjeva nisu tri prijave, i upravo takvo tretiranje vodi do zaključka da klijent kruži u petlji dok je samo strpljiv. Poredajte po ID-u poruke, zatim po vremenskoj oznaci, i cijeli razgovor sažima se u kratak popis pokušaja.
Pročitajte odbijanje prije nego uspjeh
Odgovor nije automatski napredak. Odgovarač može odgovoriti cookie obavijesti i očekivati da inicijator pokuša ponovno, ili s INVALID_KE_PAYLOAD koji imenuje skupinu koju bi radije prihvatio. Oba dolaze kao ispravno oblikovane IKE poruke, i oba izgledaju kao završena razmjena filtru koji samo broji pakete.
Otvorite teret obavijesti i pročitajte tip prije svega ostaloga. Cookie izazov znači da se odgovarač brani od lažiranih izvornih adresa i klijent mora ponovno poslati s pridodanim cookiejem. Neispravna skupina znači da se dva prijedloga ne slažu, što nijedno ponavljanje neće promijeniti dok se konfiguracija jedne strane ne pomakne.
Samo IKE_AUTH, druga razmjena, nosi šifrirani identitet i terete autentifikacije. Završeni IKE_SA_INIT zato vam kaže da se strane slažu o algoritmima i izvedenim ključevima, i baš ništa o tome hoće li vjerodajnice biti prihvaćene. Očekujte i tamo dvije poruke i očekujte da će obje biti neprozirne bez ključeva sesije.
Port 4500 nije jedan protokol
UDP 500 obično nosi početnu razmjenu. Nakon što se izvrši otkrivanje NAT-a, IKE prelazi na 4500 i ispred svake poruke stavlja četverobajtni nulti marker koji nije ESP. Enkapsulirani ESP na istom portu počinje pak ne-nultim ESP SPI-jem, a jednobajtni NAT keepalive treći je oblik koji se pojavljuje kad se ništa drugo ne događa.
Filtar koji uspoređuje samo port miješa sva tri, zbog čega "ima prometa na 4500" tako malo rješava. Podijelite prikaz po protokolu prije nego zaključite bilo što o udaljenoj strani.
tshark -r ike.pcapng -Y "udp.port == 4500 && isakmp" -T fields -e frame.number -e isakmp.exchangetype tshark -r ike.pcapng -Y "udp.port == 4500 && !isakmp" -T fields -e frame.number -e esp.spi
Tišina opisuje točku promatranja
Zahtjevi bez odgovora dokazuju točno jedno: u toj točki snimanja nijedan se odgovor nije pojavio. Filtriranje, ruta koja odgovor šalje negdje drugdje, nedostupan odgovarač ili odgovarač koji ne voli prijedlog svi daju isti prazan rezultat, a generička UDP provjera neće ih razdvojiti.
ICMP nedostupnost dokaz je druge vrste. Pročitajte citirani paket unutar njega i utvrdite koji ga je uređaj emitirao, jer administratorovo odbijanje usmjerivača nije autentificirana pogreška udaljene strane.
tshark -r ike.pcapng -Y "icmp.type == 3" -T fields -e frame.number -e ip.src -e icmp.code
Povežite isti pokušaj sa zapisima na strani poslužitelja tamo gdje vam je dopušteno čitati ih. Je li zahtjev stigao, je li usluga odgovorila i gdje se odgovor zaustavio? Ta tri odgovora vode vas do problema s putanjom ili do problema s politikom, i koštaju manje od četvrtog mijenjanja vjerodajnica.