Zachytenia urobené uprostred relácie sú obvyklým dôvodom, prečo stopa IKEv2 vyzerá ako šum, pretože strany už obnovujú kľúče alebo si vymieňajú šifrované obsahy, keď sa záznam začína. Začnite namiesto toho novým pokusom o pripojenie, aby prvá správa v súbore bola tá, ktorá otvára vyjednávanie. Nasledujúce poradie čítania to predpokladá a označuje bod, v ktorom paket prestáva čokoľvek dokazovať o vzdialenej strane. Práve vynechanie tohto kroku vedie k tomu, že funkčný tunel je diagnostikovaný ako zablokovaný port.

Overte, že sa pozeráte na úvodnú výmenu

Vyjednávanie IKEv2 začína správou IKE_SA_INIT, typom výmeny 34 a ID správy 0. Iniciátor volí nenulové SPI a SPI respondéra je v tejto prvej požiadavke nulové a v odpovedi nenulové. Tieto tri skutočnosti oddeľujú nový pokus od obnovy kľúčov alebo od správy IKE_AUTH, ktorá náhodou stojí na začiatku zachytenia.

Polia hlavičky sú čitateľné, rovnako ako obsahy návrhu, výmeny kľúčov a nonce. Čitateľnosť nie je autentizácia: žiadna zo strán v tomto okamihu nepreukázala identitu a súkromná hodnota Diffie-Hellmana sa nikdy neobjaví na linke.

Vypíšte polia ako tabuľku namiesto prechádzania panela dekódovania, pretože opakované prenosy a nezhodné SPI sú v stĺpcoch zrejmé.

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

Čítajte výstup po dvojiciach. Požiadavka s ID správy 0 nasledovaná odpoveďou s rovnakým ID a nenulovým SPI respondéra je jedna výmena, aj keď sa objaví trikrát, pretože požiadavka bola prenesená znova. Tri rovnaké požiadavky nie sú tri prihlásenia a práve takéto zaobchádzanie vedie k záveru, že klient sa zacyklil, keď je len trpezlivý. Zoraďte podľa ID správy a potom podľa časovej značky a celý rozhovor sa zúži na krátky zoznam pokusov.

Prečítajte odmietnutie skôr než úspech

Odpoveď nie je automaticky pokrok. Respondér môže odpovedať oznámením cookie a očakávať, že iniciátor to skúsi znova, alebo správou INVALID_KE_PAYLOAD, ktorá uvedie skupinu, ktorú by namiesto nej prijal. Obe prichádzajú ako správne vytvorené správy IKE a obe vyzerajú ako dokončená výmena pre filter, ktorý iba počíta pakety.

Otvorte obsah oznámenia a prečítajte typ skôr než čokoľvek iné. Výzva cookie znamená, že sa respondér bráni proti podvrhnutým zdrojovým adresám a klient musí odoslať znova s priloženým cookie. Neplatná skupina znamená, že sa dva návrhy nezhodujú, čo žiadne opakovanie nezmení, kým sa nepohne konfigurácia jednej strany.

Iba IKE_AUTH, druhá výmena, nesie šifrovanú identitu a obsahy autentizácie. Dokončené IKE_SA_INIT vám teda hovorí, že strany sa zhodli na algoritmoch a odvodených kľúčoch, a absolútne nič o tom, či budú prihlasovacie údaje prijaté. Očakávajte tam tiež dve správy a očakávajte, že obe budú bez kľúčov relácie nepriehľadné.

Port 4500 nie je jeden protokol

Úvodnú výmenu zvyčajne prenáša UDP 500. Keď prebehne zisťovanie NAT, IKE prejde na 4500 a pred každú správu vloží štvorbajtový nulový marker, ktorý nie je ESP. Zapuzdrené ESP na tom istom porte začína naopak nenulovým SPI ESP a jednobajtový keepalive NAT je tretia podoba, ktorá sa objaví, keď sa nič iné nedeje.

Filter, ktorý zodpovedá iba portu, mieša všetky tri, a preto "na 4500 je prevádzka" vyrieši tak málo. Rozdeľte pohľad podľa protokolu, skôr než o vzdialenej strane čokoľvek uzavriete.

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

Ticho opisuje pozorovací bod

Požiadavky bez odpovedí stanovujú presne jednu vec: v tom mieste zachytenia sa neobjavila žiadna odpoveď. Filtrovanie, trasa, ktorá posiela odpoveď inam, nedostupný respondér alebo respondér, ktorému sa návrh nepáči, dávajú všetci rovnaký prázdny výsledok a všeobecná sonda UDP ich neoddelí.

Nedostupnosť ICMP je dôkaz iného druhu. Prečítajte citovaný paket vnútri a určte, ktoré zariadenie ho vyslalo, pretože administratívne odmietnutie routera nie je autentizovaná chyba vzdialenej strany.

tshark -r ike.pcapng -Y "icmp.type == 3" -T fields -e frame.number -e ip.src -e icmp.code

Prepojte ten istý pokus so serverovými záznamami tam, kde ich smiete čítať. Dorazila požiadavka, odpovedala služba a kde sa odpoveď zastavila? Tieto tri odpovede vás pošlú k problému s cestou alebo k problému s pravidlami a stoja menej než štvrtá výmena prihlasovacích údajov.

Súvisiace články