Nega OpenVPN marshruti strongSwan XFRM siyosatiga yutqazadi
Muayyan OpenVPN marshruti XFRM siyosatini bekor qilmaydi: marshrut va siyosat tanlagichlarini o'qing, so'ngra toraytiring, istisno qiling yoki XFRM interfeysiga o'ting.
Paketlar OpenVPN marshrutini kuzatib, baribir IPsec siyosati tomonidan ushlanishi mumkin va bu birikma to'g'ri burchakdan boshqa har bir burchakdan marshrutlash xatosi kabi ko'rinadi. Linux marshrutni hal qiladi va so'ngra alohida xavfsizlik siyosatlari bazasiga murojaat qiladi, shuning uchun aniqroq manzil marshruti mos keluvchi XFRM siyosatini siqib chiqarmaydi. Ko'rinadigan belgi — hostdan chiqib, hech qachon yetib bormaydigan trafik, holbuki ikkala tunnel ham o'zini sog'lom deb e'lon qiladi. Buni uchta variant hal qiladi va qaysi birini tanlashingiz o'sha prefiksni ikki yo'ldan qaysi biri olib yurishi kerakligiga bog'liq.
Ikki qaror, bitta emas
Marshrut tanlovi tor savolga javob beradi: qaysi keyingi sakrash va manba manzili bu paketni olib yurishi kerak. Xavfsizlik siyosatlari bazasi boshqasiga javob beradi: bu paket IPsec himoyasiga muhtojmi va qaysi tanlagichlar ostida. Ikkalasi ham bir paket uchun ishlaydi va birinchisini bajarish ikkinchisi haqida hech narsa demaydi. Shuning uchun metrikni o'zgartirish yoki statik marshrut qo'shish belgini tegilmagan holda qoldirishi mumkin.
Keng IPsec tanlagichi odatiy sabab. 172.16.0.0/12 ni himoya qiluvchi siyosat 172.20.8.0/24 ni ham qamrab oladi, u yerga administrator OpenVPN tunneli orqali yetib borishni niyat qilgan bo'lishi mumkin. Niyat faqat marshrutlash jadvalida mavjud va siyosatlar bazasi bu haqda hech qachon bilmagan.
Buni ikki metrika raqobati emas, balki sozlangan ikki himoya yo'lining to'qnashuvi deb qabul qiling. Tuzatish noto'g'ri qamrov bilan sozlangan komponentga tegishli.
Yadro haqiqatda tanlaydigan marshrutni o'qing
Yadro bajaradigan qidiruvdan boshlang, manba manzili va paketni boshqa jadvalga burishi mumkin bo'lgan har qanday siyosat qoidasi bilan birga. Asosiy jadvaldagi marshrut, agar oldingi qoida boshqa jadvalni tanlasa, hech qachon ko'rib chiqilmasligi mumkin va eng uzun prefiks mosligi faqat qoida tanlagan jadval ichida amal qiladi.
ip rule show
ip route show table all
ip route get 172.20.8.20 from 10.44.7.15
Oxirgi buyruq muhim, chunki u tanlangan marshrutni yadro ishlatadigan manba manzili bilan birga chop etadi. Bu chiqishni IPsec siyosati mos keladigan tanlagich bilan solishtiring. Marshrut OpenVPN interfeysiga ishora qilsa va siyosat hali ham o'sha juftlikka mos kelsa, siz to'qnashuvni taxmin qilmasdan qayta hosil qildingiz.
Demplarni chiptaga yetib borgunga qadar aloqasiz manzillardan xoli saqlang. Ishlab chiqarish hostining marshrutlash jadvali ichki topologiyani olib yuradi va faqat savolga javob beradigan satrlar yopishtirishga arziydi.
Amal qiladigan siyosatni ham o'qing
Siyosatlar ro'yxati yo'nalish, tanlagichlar va mos keluvchi paket bilan nima bo'lishini hal qiluvchi shablonni ko'rsatadi. Avval chiqish yo'nalishini, so'ngra qaytish trafigi uchun kirish tomonini o'qing, chunki bir tomonlama istisno boshlanib, hech qachon tugamaydigan ulanish hosil qiladi.
ip -s xfrm policy
swanctl --list-sas
Ro'yxatdagi tanlagichlarni ulanish kelishgan prefikslar bilan solishtiring. strongSwan ning marshrut o'rnatishini o'chirish bu siyosatlarni olib tashlamaydi va metrikni o'zgartirish siyosat qaysi manba va manzil juftini himoya qilishini o'zgartirmaydi. Bu ikki yolg'on tuzatishni erta istisno qilishga arziydi, chunki odamlar birinchi navbatda shularni sinab ko'radi.
Agar ro'yxatda kutilgan prefiks uchun siyosat bo'lmasa, muammo boshqa joyda va marshrutlash jadvali ehtimol haqiqatni aytmoqda. Agar unda prefiksni qamrab oluvchi kengroq siyosat bo'lsa, siz ushlashni topdingiz.
Ikkala yo'l ham qonuniy bo'lganda uchta variant
Keng prefiks talab emas, qulaylik bo'lganida IPsec tanlagichini toraytirish eng toza variant. Uzoq trafik tanlagichini haqiqatan IPsec orqasida bo'lgan quyi tarmoqlargacha kamaytirish to'qnashuvni har bir host uchun birvarakayiga yo'q qiladi va uning narxi yangi komponent emas, kalitni qayta kelishishdir.
Keng tanlagich qolishi kerak bo'lganda o'tkazish istisnosi jarrohlik varianti hisoblanadi. strongSwan child i pass rejimini ishlatadigan alohida ulanishni qo'llab-quvvatlaydi, bu yadroga mos keluvchi trafikni IPsec qayta ishlamasligi kerakligini aytadi. Loopback uzoq manzili bu ulanishning kiruvchi hamkorlar uchun tanlanishiga yo'l qo'ymaydi va tanlagichlar hamma narsani emas, haqiqiy ruxsat etilgan juftlikni tasvirlashi kerak.
connections {
openvpn-exception {
remote_addrs = 127.0.0.1
children {
openvpn-exception {
local_ts = 10.44.7.0/24
remote_ts = 172.20.8.0/24
mode = pass
start_action = trap
}
}
}
}
strongSwan konfiguratsiya misollari bu siyosat turini va loopback hamkor an'anasini hujjatlashtiradi. Uchinchi variant — XFRM interfeyslari bilan marshrutga asoslangan dizayn, u siyosatni global tanlagichga emas, nomlangan interfeys orqali marshrutlangan trafikka bog'laydi. Bu sozlash emas, migratsiya, va trafik hali ham kelishilgan tanlagichlarga javob berishi kerak.
| Option | Use it when | Cost |
|---|---|---|
| Narrow the selector | The broad prefix was convenience | A rekey and a policy review |
| Passthrough child | The broad selector must stay | One exception per intended pair |
| XFRM interface | Policy should follow routing | A design migration |
Qolganini zaiflashtirmasdan istisnoni isbotlang
O'zgarish yuklangandan so'ng, istisno va himoyalangan qolishi kerak bo'lgan oddiy manzilni sinab ko'ring. Ikkala yo'nalishni tekshiring, so'ngra OpenVPN tunnelini tushiring va istisno qilingan trafikka nima bo'lishini tasdiqlang. Tunnel o'chirilganda o'sha prefiksni jimgina ochiq yuboradigan istisno — hodisa paytida kashf qilinadigan emas, ataylab qabul qilinadigan siyosat qarori.
Qaysi prefiks qaysi yo'lni va nima uchun ishlatishini yozib qo'ying. Aks holda keng tanlagichni ko'rgan keyingi muhandis o'sha tekshiruvni qaytadan ochadi va javob hech kim o'qimaydigan commit xabarida qoladi.