ESP — bu IP 50-protokoli, TCP 50-porti emas: nimaga ruxsat berish kerak
Protokol raqamlari va port raqamlari turli nom fazolaridir. TCP 50-porti uchun qoida hech narsaga ruxsat bermaydi va NAT traversal ESP ni UDP 4500 ga ko‘chiradi.
Firewall shakllari TCP portini so‘raydi va ko‘zga tashlanadigan javob 50. Bu javob hech narsaga ruxsat bermaydi, chunki ESP — 50-raqamli IP protokoli, protokol raqamlari esa port emas. Ikki nom fazosi faqat kichik butun sonlarni bo‘lishadi, boshqa hech narsani emas, va xato IKE tugagunga qadar va himoyalangan trafik hech qachon yetib kelmaguncha ko‘rinmay qoladi.
Kichik sonlarni bo‘lishadigan ikki nom fazosi
IP sarlavhasi keyin nima kelishini nomlaydigan protokol maydonini olib yuradi: TCP uchun 6, UDP uchun 17, ICMP uchun 1, ESP uchun 50, AH uchun 51. TCP yoki UDP sarlavhasi port raqamlarini olib yuradi, ular manzil xostida jarayonni tanlaydi. 50-protokol va TCP 50-porti bog‘liq bo‘lmagan qiymatlar, ammo muloqot oynasi ularni almashtiriladigan qilib ko‘rsatishi mumkin.
Shu sababli portni yo‘naltirish qoidasi mahalliy ESP ni ifodalay olmaydi. Yo‘naltirish uchun ESP manzil porti yo‘q, va faqat port qoidalarini tushunadigan qurilmaning bu paket uchun lug‘ati umuman yo‘q. To‘g‘ri qoida buning o‘rniga IP protokolni nomlaydi. Har qanday port muloqoti bu paket uchun noto‘g‘ri asbob.
Chalkashlikning ikkinchi yarmi ham bor. Paket shifrlangan bo‘lsa, uning ichidagi hamma narsa shaffof emas, asl ulanishning TCP sarlavhasi ham. Shu paketdagi portlarni tekshiradigan firewall tashqi sarlavhaga qaraydi, mahalliy holatda esa u yerda tekshiriladigan port yo‘q.
Mahalliy ESP, so‘ngra qoplangan muqobil
Mahalliy ESP to‘g‘ridan-to‘g‘ri IP protokoli sifatida tashiladi, bu esa birdek samarali va noqulay. Samarali, chunki qo‘shimcha sarlavha yo‘q, va noqulay, chunki manzil va portni tarjima qiladigan hech qanday qurilma uni kuzata olmaydi. NAT traversal aynan shuni hal qilish uchun bor: ESP paketini UDP ichiga o‘raydi, tarjimon qayta yozadigan portlarga ega bo‘lishi uchun.
| Form on the wire | How it is identified | What the firewall must permit |
|---|---|---|
| IKE negotiation | UDP with a destination port | UDP 500, and 4500 once traversal is detected |
| Native ESP | IP protocol 50 in the outer header | The protocol itself, with no port to name |
| ESP inside UDP | UDP 4500 carrying an ESP payload | The UDP port pair, which translation devices can track |
Ikki shakl — bir xil ma’lumot kanalining muqobil joylashtirishlari, birining qatlamlari emas. Mahalliy ESP ga ruxsat berish qoplangan shaklga ruxsat bermaydi, UDP 4500 ga ruxsat berish esa mahalliy trafikka ruxsat bermaydi, shuning uchun qoidalar to‘plami joylashtirishga mos kelishi kerak, tasodifan ikkalasini qamrab olmasligi kerak.
Bu yerda aniqlash ham muhim. Oxirgi nuqtalar muzokaralar davomida shakllar orasida qaror qabul qiladi, va almashinish odatda ular orasida NAT aniqlanganda sodir bo‘ladi. Shuning uchun tunnel o‘rnatilgandan keyin o‘zgaradigan yo‘l trafikni sizning qoidalaringiz hech qachon qamrab olmagan nom fazosiga ko‘chirishi mumkin.
Ulanish aslida qaysi shaklni ishlatishini o‘qing
Firewalldan taxmin qilish o‘rniga oxirgi nuqtadan so‘rang. Linuxda holat yozuvi birlashma UDP qoplamasidan foydalanadimi va qaysi portlar ishtirok etishini xabar qiladi. Paketlarni ushlash xuddi shu savolga simdan javob beradi, va ikkalasi ham qoidalar to‘plamini o‘qib umid qilishdan tezroq.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
Birinchi buyruq NAT traversal ishlatilganda qoplama turini ko‘rsatadi, ishlatilmaganda hech narsa ko‘rsatmaydi. Ikkinchisi ikki shakldan qaysi biri interfeysdan haqiqatan o‘tayotganini ko‘rsatadi, va bu qog‘ozda to‘g‘ri ko‘rinadigan konfiguratsiya haqidagi bahslarni tugatadi.
Qarshi dalil ham shu bosqichga tegishli. Nol moslik haqida xabar beradigan qoida paket unga hech qachon yetib kelmaganini aytadi, va bu firewall emas, marshrutlash yoki tanlagich masalasi.
So‘ngra boshqaruv kanalini alohida tasdiqlang. IKE ning o‘z portlari va o‘z jurnallari bor, va ma’lumotsiz tugallangan muzokara aynan shu maqola haqidagi ajralishdir.
Qoidani to‘g‘ri nom fazosida yozing
Protokol qoidasi va port qoidasi turli ko‘rsatmalar, shuning uchun asbob siz nazarda tutgan narsani ifodalashi kerak. nftablesda protokol mosligi aniq, va qoplangan muqobil o‘zining UDP qoidasini oladi. Ikki qoidani yonma-yon tuting, ko‘rikda juftlik ko‘rinadigan bo‘lsin.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
Noto‘g‘ri tashxisni qoplash uchun qoidalarning birortasini kengaytirish vasvasasiga qarshi turing. Har bir interfeysda ESP protokoli uchun hamma narsaga ruxsat berish yoki har qayerdan har qayerga UDP ruxsati alomatni tuzatadi va siz o‘rnatmoqchi bo‘lgan nazoratni olib tashlaydi. Shakl ma’lum bo‘lgach, tor qo‘llab-quvvatlanadigan oqim deyarli har doim yetarli.
Nihoyat, tunnel ishlab, dastur ishlamaganda qatlamlarni to‘g‘ri tuting. Shlyuzga yetib kelgan paketlar hali ham yo‘naltirish, qaytish marshruti va ularni qabul qiladigan siyosatga muhtoj, va ularning hech biri ESP qoidasi bilan ifodalanmaydi. Yetishmayotgan port aniq bir nosozlikni tushuntiradi, har bir IPsec nosozligini emas. Qoida tuzatishini va marshrutlash tekshiruvini ikki alohida xulosa sifatida tuting.
Kuzatgan shaklni, qo‘shgan protokol qoidasini va keyin ko‘rgan hisoblagichni yozib qo‘ying. Uch qator, va keyingi odam tushlik o‘rniga bir daqiqada nom fazosi xatosini marshrutlash xatosidan ajrata oladi.