IKEv2 нь UDP 500 ба 4500-ыг ашигладаг: аль нь өгөгдлийг зөөдөг вэ?
Эхний солилцоо болон өгөгдлийг зөөх зам нь нэг урсгал биш. Хоёр портыг шалгаж, төрөлх ESP нь порт биш, протоколын дугаар гэдгийг санаарай.
Галт ханын дотор UDP 500-ыг нээх нь туннельд хэлэлцээр хийх боломж олгож, дараа нь холболт трафикийг дамжуулахаа болино. Портын жагсаалт бүрэн бус байсан, буруу биш. IKEv2 нэг сокет дээр эхэлж, олон бодит байршуулалтад өөр сокет дээр үргэлжилдэг бол ачаа нь порт огт биш байж болно. Үе шатыг дарааллаар нь унших нь аль дүрэм дутуу байгааг тайлбарлана.
Хоёр порт, хоёр үүрэг
IKEv2 нь UDP 500 дээр түлхүүр солилцоогоор эхэлж, тэнд талууд бие биенээ баталгаажуулж, туннельд зориулсан аюулгүй байдлын холбоо байгуулна. Дараах өгөгдлийн зам нь тусдаа асуудал: энэ нь порт биш IP протоколын дугаар болох төрөлх ESP, эсвэл 4500 дээр UDP дотор боогдсон трафик байж болно. Галт ханын хяналтад эдгээрийг тусад нь барих нь хэлэлцээр хийдэг туннель ба ажилладаг туннелийн ялгаа юм. Нэг сокет удирдлагыг, нөгөө нь ачааг зөөнө.
Тиймээс зөвхөн 500-ыг зөвшөөрсөн дүрэм бүх протоколын гэр бүлд хамгийн будлиантай шинж тэмдгийг үүсгэдэг: хэлэлцээр амжилттай болж, ямар ч ашигтай зүйл дагахгүй. Төлөв нь түншийг харуулж, лог нь байгуулагдсан IKE SA-г харуулж байхад аппликейшн хугацаа хэтэрсээр байна. Дутуу зөвшөөрөл нь саяхан амжилттай болсон урсгалаас өөр урсгалд хамаарна.
4500 яагаад огт байдаг вэ
Олон NAT төхөөрөмж TCP эсвэл UDP-ээс өөр протокол дамжуулж чадахгүй, зарим нь ESP-ийн бүрэн бүтэн байдлын шалгалтыг эвдэх байдлаар хаягийг дахин бичдэг. ESP-ийг UDP дотор боох нь хоёр асуудлыг шийддэг ч нэмэлт толгой болон зөвшөөрөх ёстой хоёр дахь портын зардалтай. Яг энэ боолт нь хоёр дахь порт огт байгаагийн шалтгаан юм.
NAT илэрсний дараа IKE өөрөө ч 4500 руу шилжиж, бүх трафик орчуулагчаар дамжин нэг замыг хуваалцана. ESP биш дөрвөн байтын тэмдэг тэр сокет дээрх удирдлагын мессежийг өгөгдлөөс ялгана. Энэ шилжилт нь протоколын шийдвэр, администраторын сонголт биш.
Эх порт хаана өөрчлөгддөг вэ
Орчуулагч клиентийн эх портыг дахин бичиж болох тул серверт харагдах tuple нь клиентийн tuple-тай тохирохгүй. Дүрмийг үл тоомсорлож байна гэж дүгнэхээс өмнө NAT-ын үсрэлт бүрийн хоёр талыг хар. Зөвхөн клиент дээр асуудал хайх нь зөв мэт харагдах боловч бүтэлгүйтэх дүрэм өгч болно.
MOBIKE дэмждэг хэрэгжүүлэлтүүд NAT илрээгүй ч 4500 руу шилжиж болох ба зарим байршуулалт энэ замыг санаатайгаар тулгадаг. Тиймээс 4500-ыг харах нь шийдвэрийн нотолгоо, гэрийн чиглүүлэгчийн нотолгоо биш.
Хил бүр дээр хоёр урсгалыг шалга
Гурван хилийг туул: клиентийн сүлжээ, ямар ч завсрын галт хана, сервер. Тус бүрт байршуулалтын баримтжуулсан урсгалууд хэрэгтэй, өөр тохиолдлын тухай нийтлэлийн урсгалууд биш.
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or udp port 4500'
sudo iptables -S | grep -E '500|4500|esp'
ip xfrm state
Галт ханын жагсаалт дахь ESP мөр нь протоколын тохирол тул портын дүрэм түүнийг хэзээ ч хамардаггүй. Хэрэв оператор өөр порт ашигладаг бол хоёр төгсгөлд баримтжуулсан тохиргоог дага, учир нь клиент танил дугаар сонгосноор серверт сонсогч үүсгэж чадахгүй.
Хэлэлцээр хаана зогссон, охин аюулгүй байдлын холбоо суулгасан эсэхийг тэмдэглэ, учир нь энэ хос хаагдсан замыг баталгаажуулалт эсвэл бодлогын алдаанаас ялгана. Дараа нь серверийн шалгалтыг асааж туршилтыг давта, учир нь хүртээмж нь баталгаажуулалт биш. Тэр сүүлчийн алхам зөвшөөрөгдсөн портыг итгэмжлэгдсэн түншээс ялгана.