Cara membaca pertukaran IKEv2 pertama dalam tangkapan paket
Padankan permintaan dan balasan IKE_SA_INIT melalui SPI dan ID mesej, bezakan IKE daripada ESP terkapsul pada 4500 dan lihat apa yang boleh dibuktikan oleh jejak senyap.
Tangkapan yang diambil di tengah-tengah sesi ialah punca biasa jejak IKEv2 kelihatan seperti hingar, kerana kedua-dua pihak sudah pun memperbaharui kunci atau bertukar muatan tersulit apabila rakaman bermula. Mulakan sebaliknya dengan cubaan sambungan baharu, supaya mesej pertama dalam fail ialah mesej yang membuka rundingan. Urutan bacaan di bawah menganggap perkara itu dan menandakan titik apabila paket berhenti membuktikan apa-apa tentang hujung jauh. Melangkau langkah itu ialah cara terowong yang berfungsi didiagnosis sebagai port tersekat.
Sahkan anda melihat pertukaran pembukaan
Rundingan IKEv2 bermula dengan IKE_SA_INIT, jenis pertukaran 34, ID mesej 0. Pencetus memilih SPI bukan sifar, dan SPI responden ialah sifar dalam permintaan pertama itu dan bukan sifar dalam balasan. Ketiga-tiga fakta itu memisahkan cubaan baharu daripada pembaharuan kunci atau daripada mesej IKE_AUTH yang kebetulan berada di bahagian atas tangkapan.
Medan pengepala boleh dibaca, begitu juga muatan cadangan, pertukaran kunci dan nonce. Boleh dibaca bukan bermakna disahkan: tiada pihak membuktikan identiti pada ketika ini, dan nilai peribadi Diffie-Hellman tidak pernah muncul pada wayar.
Cetak medan sebagai jadual dan bukannya menatal panel nyahkod, kerana penghantaran semula dan SPI yang tidak sepadan menjadi jelas dalam lajur.
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
Baca keluaran secara berpasangan. Permintaan dengan ID mesej 0 diikuti balasan yang membawa ID sama dan SPI responden bukan sifar ialah satu pertukaran, walaupun ia muncul tiga kali kerana permintaan dihantar semula. Tiga permintaan serupa bukan tiga log masuk, dan memperlakukannya begitu ialah cara orang menyimpulkan klien berpusing sedangkan ia hanya sabar. Susun mengikut ID mesej, kemudian mengikut cap masa, dan seluruh perbualan mengecut menjadi senarai cubaan yang pendek.
Baca penolakan sebelum membaca kejayaan
Balasan bukan secara automatik kemajuan. Responden mungkin menjawab dengan pemberitahuan cookie dan mengharapkan pencetus mencuba lagi, atau dengan INVALID_KE_PAYLOAD yang menamakan kumpulan yang lebih rela diterimanya. Kedua-duanya tiba sebagai mesej IKE yang terbentuk baik, dan kedua-duanya kelihatan seperti pertukaran selesai kepada penapis yang hanya mengira paket.
Buka muatan pemberitahuan dan baca jenisnya sebelum apa-apa lagi. Cabaran cookie bermaksud responden mempertahankan diri daripada alamat sumber palsu, dan klien mesti menghantar semula dengan cookie dilampirkan. Kumpulan tidak sah bermaksud kedua-dua cadangan tidak sepakat, yang tidak akan berubah dengan berapa kali pun cubaan semula sehingga konfigurasi satu pihak berganjak.
Hanya IKE_AUTH, pertukaran kedua, membawa identiti tersulit dan muatan pengesahan. Pertukaran IKE_SA_INIT yang selesai kerana itu memberitahu anda bahawa kedua-dua pihak bersetuju tentang algoritma dan kunci terbitan, dan sama sekali tidak memberitahu sama ada kelayakan akan diterima. Jangkakan juga dua mesej di sana, dan jangkakan kedua-duanya legap tanpa kunci sesi.
Port 4500 bukan satu protokol
UDP 500 biasanya membawa pertukaran pembukaan. Setelah pengesanan NAT berjalan, IKE berpindah ke 4500 dan meletakkan penanda sifar empat bait bukan ESP di hadapan setiap mesej. ESP terkapsul pada port yang sama pula bermula dengan SPI ESP bukan sifar, dan keepalive NAT satu bait ialah bentuk ketiga yang muncul apabila tiada perkara lain berlaku.
Penapis yang hanya memadankan port mencampurkan ketiga-tiganya, sebab itulah "ada trafik pada 4500" menyelesaikan begitu sedikit. Pisahkan paparan mengikut protokol sebelum membuat sebarang kesimpulan tentang hujung jauh.
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
Kesenyapan menerangkan titik pemerhatian
Permintaan tanpa balasan menetapkan tepat satu perkara: pada titik tangkapan itu tiada balasan muncul. Penapisan, laluan yang menghantar jawapan ke tempat lain, responden yang tidak dapat dicapai, atau responden yang tidak menyukai cadangan semuanya menghasilkan hasil kosong yang sama, dan pemeriksaan UDP generik tidak akan memisahkannya.
ICMP tidak dapat dicapai ialah bukti jenis lain. Baca paket yang dipetik di dalamnya dan kenal pasti peranti mana yang mengeluarkannya, kerana penolakan pentadbiran penghala bukan ralat disahkan daripada hujung jauh.
tshark -r ike.pcapng -Y "icmp.type == 3" -T fields -e frame.number -e ip.src -e icmp.code
Kaitkan cubaan yang sama dengan log sebelah pelayan di tempat anda dibenarkan membacanya. Adakah permintaan tiba, adakah perkhidmatan menjawab, dan di manakah jawapan berhenti? Ketiga-tiga jawapan itu menghantar anda kepada masalah laluan atau masalah dasar, dan kosnya lebih murah daripada menukar kelayakan buat kali keempat.