Kako čitati prvu razmenu IKEv2 u zapisu paketa
Uparite zahtev i odgovor IKE_SA_INIT preko SPI-ja i ID-ja poruke, razlikujte IKE od enkapsuliranog ESP-a na 4500 i vidite šta tihi zapis može dokazati.
Zapisi načinjeni usred sesije jesu najčešći razlog što IKEv2 zapis izgleda kao šum, jer učesnici već obnavljaju ključeve ili razmenjuju šifrovane sadržaje u trenutku kada snimanje počinje. Umesto toga počnite svežim pokušajem povezivanja, pa će prva poruka u datoteci biti upravo ona koja otvara pregovore. Niže opisani redosled čitanja to podrazumeva i označava mesto gde paket prestaje da dokazuje bilo šta o drugoj strani. Preskočiti taj korak znači dijagnostikovati ispravan tunel kao zatvoren port.
Proverite da li gledate u početnu razmenu
Pregovori IKEv2 otvaraju se porukom IKE_SA_INIT, tip razmene 34, ID poruke 0. Inicijator bira SPI različit od nule, dok je SPI odgovarača u tom prvom zahtevu nula, a u odgovoru različit od nule. Ove tri činjenice odvajaju svež pokušaj od obnove ključeva ili od IKE_AUTH poruke koja se slučajno zatekla na čelu zapisa.
Polja zaglavlja mogu se pročitati, a isto važi za terete predloga, razmene ključeva i nonce-a. Pročitati ne znači i overiti: nijedan učesnik nije u tom trenutku dokazao identitet, a privatna vrednost Diffie-Hellmana nikad se ne pojavljuje na žici.
Ispišite polja kao tabelu umesto da prevlačite panel za dekodiranje, jer ponovna slanja i nepodudarni SPI-jevi postaju uočljivi u kolonama.
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
Izlaz čitajte u parovima. Zahtev sa ID-jem poruke 0 iza koga sledi odgovor sa istim ID-jem i SPI-jem odgovarača različitim od nule čini jednu razmenu, čak i kad se pojavi tri puta zbog ponovnog slanja zahteva. Tri jednaka zahteva nisu tri prijavljivanja, a takvo tumačenje vodi zaključku da klijent vrti petlju dok je samo strpljiv. Poređajte po ID-ju poruke, zatim po vremenskoj oznaci, i cela konverzacija svodi se na kratak spisak pokušaja.
Prvo pročitajte odbijanje, pa uspeh
Odgovor nije sam po sebi napredak. Odgovarač može uzvratiti obaveštenjem cookie i čekati da inicijator pokuša ponovo, ili porukom INVALID_KE_PAYLOAD koja navodi grupu koju bi pre prihvatio. Obe stižu kao uredno oblikovane IKE poruke i obe filteru koji samo broji pakete izgledaju kao završena razmena.
Otvorite teret obaveštenja i najpre pročitajte tip. Izazov cookie znači da se odgovarač štiti od falsifikovanih izvornih adresa, pa klijent mora poslati zahtev ponovo sa pridodatim cookie-jem. Neispravna grupa znači da se dva predloga razilaze, i to neće promeniti nijedno ponavljanje dok se konfiguracija jedne strane ne pomeri.
Samo IKE_AUTH, druga razmena, prenosi šifrovani identitet i terete za autentifikaciju. Završen IKE_SA_INIT zato kaže da su učesnici saglasni o algoritmima i izvedenim ključevima, a ništa o tome hoće li akreditivi biti prihvaćeni. Očekujte i tu dve poruke, i očekujte da će obe biti neprozirne bez ključeva sesije.
Port 4500 nije jedan protokol
Početnu razmenu obično prenosi UDP 500. Kada se obavi otkrivanje NAT-a, IKE se seli na 4500 i svakoj poruci dodaje četvorobajtni nulti marker koji nije ESP. Enkapsulirani ESP na istom portu počinje, nasuprot tome, ne-nultim ESP SPI-jem, a jednobajtni NAT keepalive treći je oblik koji se javlja kada se ništa drugo ne dešava.
Filter koji se poklapa samo s portom meša sva tri slučaja, pa "ima saobraćaja na 4500" malo šta rešava. Razdvojite prikaz po protokolu pre nego što zaključite bilo šta o drugoj 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 mesto posmatranja
Zahtevi bez odgovora utvrđuju tačno jednu stvar: na tom mestu snimanja nije se pojavio nijedan odgovor. Filtriranje, ruta koja odgovor upućuje na drugu stranu, nedostupan odgovarač ili odgovarač kome predlog ne odgovara daju isti prazan rezultat, a opšta UDP provera ih neće razlučiti.
ICMP nedostupnost dokaz je druge vrste. Pročitajte citirani paket u njemu i utvrdite koji ga je uređaj ispustio, jer administrativno odbijanje rutera nije overena greška druge 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 servera gde vam je dozvoljeno da ih čitate. Je li zahtev stigao, je li usluga odgovorila i gde se odgovor zaustavio? Ta tri odgovora upućuju vas na problem putanje ili na problem politike, i koštaju manje od četvrte promene akreditiva.