Оролдлогын эхний пакетаас өмнө эхэлсэн бичлэгээс эхэл, эс бөгөөс ярианы дундыг уншина. Аль хэдийн явагдаж буй хэлэлцээр шифрлэгдсэн солилцоо болон түлхүүр шинэчлэлтийг харуулдаг бөгөөд аль нь ч эхлэл шиг харагдахгүй. Эхлэл нь түлхүүргүйгээр тайлж болох хэсэг бөгөөд ийм учраас хүртээмжийн асуултад маш сайн хариулдаг. Дараалан хийсэн дөрвөн шалгалт таныг шинэ бичлэгээс аль тал ярихаа больсон тухай хамгаалагдах мэдэгдэл рүү хүргэнэ.

Эхлээд бичлэг эхнээсээ эхэлсэн эсэхийг батал

Туннель боссны дараа эхэлсэн бичлэгт капсуллагдсан өгөгдлийн урсгал болон үечилсэн keepalive агуулагдана, хоёулаа шифрлэгдсэн эсвэл бараг хоосон байна. Клиентийг дахин эхлүүлж оролдлогыг өөрөө бич, эсвэл бичлэг ажиллаж байх үед санаатайгаар шинэ холболт үүсгэ. Хэрэв шинэ оролдлого гаргаж чадахгүй бол тэмдэглэлдээ бич, учир нь ямар ч тайлалт хэзээ ч бичээгүй эхлэлийг буцааж авчрахгүй.

Бичлэгийг хоёр төгсгөлийн цэг болон UDP 500 ба 4500-аар хязгаарлаж, файл уншихад хангалттай жижиг хэвээр байг. Ачаалалтай хост дээр шүүлтгүй бичлэг хэлэлцээрийг хамааралгүй урсгалын дор далдладаг.

tcpdump -i any -n -s 0 -w fresh-ike.pcap 'udp port 500 or udp port 4500'

Оролдлого сонирхолтой үед файлыг хадгал, учир нь мөнөөх бичлэг дараах хоёр асуултад хариулдаг: солилцоо юу байсан, ямар нэг зүйл буцаж ирсэн эсэх. Үүн дээр эхлэх цаг болон шүүсэн төгсгөлийн хосыг тэмдэглэ. Эдгээр хоёр баримтгүй бичлэг долоо хоногийн дараа хэрэггүй болно, хаягууд өөрчлөгдөж, аль оролдлого бичигдсэнийг хэн ч санахгүй үед.

Хоёрдугаарт, ачааллын өмнө толгойг унш

IKE толгой нь аюулгүй байдлын параметрийн индексүүд, солилцооны төрөл болон мессежийн ID-г агуулдаг бөгөөд шинэ хэлэлцээрт эдгээр утга нь онцлог. Эхлүүлэгч тэгээс ялгаатай SPI зохиодог, анхны хүсэлт хариулагчийн тэг SPI-г агуулдаг, учир нь одоохон хариу харагдаагүй, солилцооны төрөл нь IKE_SA_INIT, мессежийн ID нь тэг. Бусад бүхэн нь мөнөөх хэлэлцээрийн хожим үе шат эсвэл огт өөр оролдлогынх.

Энэ эхний солилцооны санал, түлхүүр солилцоо болон nonce ачааллууд нээлттэй хэлбэрээр уншигдана. Уншигдах нь баталгаажсан гэсэн үг биш бөгөөд энэ үед аль ч тал өөрийн хэн болохыг нотлоогүй.

Хувийн Diffie-Hellman утга хэзээ ч утсаар дамждаггүй тул бичлэг сессийн түлхүүр гаргах боломж олгохгүй. Баталгаажуулалт дараагийн солилцоонд явагдана, эхнийх нь тохиролцсоноор хамгаалагдсан. Хэрэв хэн нэгэн тал жинхэнэ эсэхийг асуувал энэ солилцоо тэр асуултад хариулж чадахгүй. Зөвхөн хоёр тал саналд санал нэгдэж, файлд байхгүй нийтлэг нууц бүтээснийг харуулж чадна.

Гуравдугаарт, хүсэлтийг хариутай нь тааруул

SPI хос, солилцооны төрөл болон мессежийн ID-аар тааруулж, дараа нь хариуны төрийг шалга. Дахин илгээлт нь эх хувилбарын мессежийн ID-г давтаж, хоёр дахь нэвтрэх оролдлого биш. Солилцооны оронд пакет тоолох нь эрүүл хэлэлцээрийг сүнслэг давталт болгодог зам.

Хариу нь татгалзал ч байж болно: cookie хүсэлт, хүлээн авах боломжгүй бүлгийн мэдэгдэл эсвэл саналын тухай алдаа. Эдгээр нь хууль ёсны хариу бөгөөд зам ажиллаж байгаа, харин бодлого ажиллахгүй байгааг илэрхийлнэ. Хариу бүрийг амжилт гэж үзэхийн оронд мэдэгдлийг тайл. Мэдэгдэл бүлэг эсвэл саналыг нэрлэх үед засвар нь галт ханын биш, тохиргооны талд байна.

Чиглэл ч чухал. Хариугүй хүсэлт болон клиентэд хэзээ ч хүрэхгүй хариу нь өөр өөр гэмтэл бөгөөд зөвхөн хоёр дахь нь клиентийн талын хугацаа дууссан мэт харагдана.

Дөрөвдүгээрт, 4500 дээр IKE-г бусад бүхнээс тусгаарла

4500 порт нь товч харагдацад ижил харагдах гурван зүйлийг агуулдаг: дөрвөн байтын тэг non-ESP маркерын ард IKE, маркерын байрлалд тэгээс ялгаатай SPI бүхий капсуллагдсан ESP, богино keepalive. IKE-г капсуллагдсан ESP-ээс ялгадаг нь тэр маркер тул урсгалыг IKE гэж нэрлэхийн өмнө тэдгээр байтыг унш. 4500 гэж уншдаг бичлэгийн шошго нь портын дугаар, протокол биш.

Капсуллагдсан ESP нь түлхүүргүйгээр тайлбарлашгүй шифрлэгдсэн ачаалал бөгөөд түүний оршихуй нь гэмтэл биш, ажиллаж буй туннелийн шинж байж болно.

Нэг оролдлогын хувьд хоёр портыг хоёуланг нь ажигла, учир нь IKE 500 дээр нээгдсэн ч NAT илрүүлсний дараа 4500 руу шилжиж болно. Зөвхөн 500-аар шүүсэн мөр нь хэлэлцээр амжилттай болж байр солих яг тэр үед чимээгүй харагдана. Шүүлтийг өргөтгөж, байхгүй байдлаас ямар нэг дүгнэлт хийхийн өмнө мөнөөх цагийн цонхыг дахин унш.

Нэг ажиглалтын цэг дээрх чимээгүй байдал юу гэсэн үг

Клиент дээр хариу байхгүй нь тэр цэг ажигласныг л нотолно. Шүүлт, чиглүүлэлт, буруу алсын хаяг, зогссон үйлчилгээ болон протоколын зөрүү бүгд ижил хоосон мөрийг үүсгэдэг.

Холбогдох ICMP unreachable нотолгоо нэмдэг, гэхдээ дотор нь иш татсан пакетыг уншиж, түүнийг илгээсэн төхөөрөмжийн хаягийг тэмдэглэ.

Маршруулагчийн татгалзал нь талын буцаасан баталгаажсан алдаанаас өөр үйл явдал бөгөөд үйлчилгээ амьд гэдгийг зөвхөн хоёр дахь нь нотолно. Мөнөөх оролдлогыг серверийн лог эсвэл зөвшөөрөгдсөн ажиглалттай холбож, хүсэлт ирсэн эсэх, хариу гарсан эсэхийг мэд. Бичлэгүүдийг хязгаарлагдмал, хувийн байлга, учир нь уншигдах гар барилтын талбарууд файлын үлдсэнийг хор хөнөөлгүй болгодоггүй. Үнэ цэнэтэй үр дүн нь нэг тааруулсан хүсэлт ба хариу, эсвэл нэрлэсэн ажиглалтын цэг бүхий нэг баримтжуулсан цоорхой.

Холбоотой нийтлэлүүд