VPN marshruti yoki xavfsizlik devori qoidasi: paketni qaysi biri tashlab yuboradi?
Marshrut yo'lni tanlaydi, filtr esa ruxsatni hal qiladi. Xavfsizlik devori qoidasini kengaytirishdan oldin bir xil manba, manzil va yo'nalish uchun ikkalasini ham tekshiring.
Xuddi shu paket ustida ikkita mustaqil qaror qabul qilinadi va ularning har biri so'rovni jimgina tugatishi mumkin. Marshrut qidiruvi interfeysni va keyingi sakrashni tanlaydi, so'ng paket filtri bu birikmaga ruxsat berilgan-berilmaganini hal qiladi. Vaqt tugashi sizga ikkisidan biri rad etdi, qaysi biri emas deb aytadi. Bosqichlarni tartib bilan o'ting va tuzatish odatda taxmin bo'lishdan qoladi.
Ikki qaror, bitta paket, ikki egasi
Marshrut qidiruvi avval siyosat qoidalariga, keyin ular ko'rsatgan jadvalga murojaat qiladi va manzilga mos keladigan eng aniq prefiksni tanlaydi. Tunnel marshrutini o'rnatgan mijoz bu qarorga ega va xavfsizlik devori qoidasidagi hech narsa uni almashtira olmaydi. Qidiruv kutilmagan joyni ko'rsatsa, har bir keyingi bosqich noto'g'ri paket ustida ishlaydi.
Filtrlash alohida. Linux xostida netfilter ilgaklari trafikni paket kimga tegishli ekaniga qarab ajratadi: chiqish mashinani tark etadi, kirish unda tugaydi, uzatish undan o'tadi. VPN mijozlarini qabul qilib, ularni LANga yo'naltiruvchi shlyuzga uzatish yo'li kerak va bu ko'pchilik standart konfiguratsiyalar bo'sh qoldiradigan zanjirdir.
Manba tanlash ham shu qarorga tegishli va aynan shu yerda ko'p nomuvofiqliklar yashirinadi. Yadro marshrut bittasini ko'rsatmasa, chiquvchi interfeysdan manba manzilini tanlaydi, shuning uchun LAN quyi tarmog'i uchun yozilgan filtr qoidasi tunnel manzili bilan chiqadigan paketga hech qachon mos kelmaydi.
Qidiruv aslida nima tanlaganini o'qing
Qarorni taxmin qilish o'rniga chop eting. Quyidagi buyruq yadro shu manzil uchun ishlatadigan marshrutni, jumladan interfeys va u tanlaydigan manbani hal qiladi:
ip route get 10.8.0.5 ip route get 10.8.0.5 from 192.0.2.44 ip rule show ip route show table all | sed -n '1,40p'
VPN mijozlari ko'pincha siyosat qoidalarini asosiy jadvaldan past ustuvorliklarga o'rnatadilar, shuning uchun toza asosiy jadval o'z-o'zidan hech narsani isbotlamaydi. Qoidalarning ustuvorliklarini ular tanlaydigan jadvallar bilan solishtiring va tunnel marshruti bir marta qo'lda qo'shilish o'rniga qayta ulangandan keyin ham saqlanib qolishini tekshiring.
Siyosatga asoslangan IPsec marshrutlash qamrab olmaydigan uchinchi moslashtirish bosqichini qo'shadi, buni strongSwanning uzatish eslatmalari tunnel va transport sozlamalari uchun bayon qiladi. Xavfsizlik siyosati trafikni prefiks va protokol bo'yicha tanlaydi, marshrut esa faqat himoyalanmagan paket qayerga ketishini hal qiladi. Marshrutlangan, ammo mos tanlagichi bo'lmagan quyi tarmoq yo himoyasiz qoladi, yo konfiguratsiyaga qarab tashlab yuboriladi va ikkala natijadan hech biri xavfsizlik devori muammosiga o'xshamaydi. Siyosatni chop eting va uning tanlagichlarini tunnel olib o'tadi deb kutgan prefikslar bilan solishtiring.
Filtrlash ilgakda amal qiladi, marshrutda emas
VPN tinglovchisiga ruxsat beruvchi qoida shlyuzning o'ziga yo'naltirilgan trafik haqidagi qoidadir. U shu shlyuz orqasidagi xostlarga yetib boruvchi mijozlar haqida hech narsa demaydi, chunki uzatilgan trafik boshqa zanjirdan o'tadi. Qoidalar to'plamini bitta tekis ro'yxat sifatida o'qish to'g'ri ko'rinadigan qoida hech qachon ishga tushmasligining odatiy sababidir.
Hisoblagichlar savolni tez hal qiladi. Paket hisobi nolga teng qoidaga hech qachon yetib borilmagan, bu noto'g'ri zanjir, noto'g'ri interfeys yoki oldingi tashlab yuborishni ko'rsatadi. Tashlab yuborish siyosati ostida hisobi o'sib borayotgan qoida siz izlagan chegara va paket noto'g'ri yo'naltirilish o'rniga tashlab yuborilmoqda.
Mijoz ishlatadigan yo'l orqali zond yuboring
Shlyuzning o'zida ishga tushirilgan testlar shlyuzning o'z manba manzili bilan chiqish va kirishdan o'tadi. Bu mijozning uzatilgan so'rovidan boshqa yo'l, shuning uchun muvaffaqiyatli mahalliy curl ko'ringanidan kamroq narsani isbotlaydi. Muvaffaqiyatsiz bo'lgan mashinadan sinab ko'ring yoki interfeys va manbani aniq mahkamlang.
nc -vz -w 3 10.8.0.5 443 ping -c 3 -W 1 10.8.0.5 tcpdump -ni any host 10.8.0.5 and port 443 iptables -vnL FORWARD --line-numbers nft list ruleset | sed -n '1,60p'
Ikki uchida ushlash qolgan holatlarni ajratadi. Mijozni tark etib hech qachon yetib bormaydigan SYN marshrutlash, shifrlash yoki yuqori oqimdagi ruxsat ro'yxatini bildiradi. Yetib kelib javob olmaydigan SYN xizmat yoki uning xost filtridir, tunnel esa hech qachon muammo bo'lmagan.
Qaytish trafigi alohida qarashga loyiq. Asimmetrik marshrutlash va teskari yo'l filtrlash noto'g'ri interfeysga keladigan javoblarni tashlab yuboradi, bu yopiq port o'rniga bir tomonlama ulanish sifatida ko'rinadi. Xavfsizlik devorini u keltirmagan alomat uchun ayblashdan oldin sysctl qiymatini tekshiring.
Jurnal yozish birinchi qadam emas, ikkinchi fikr sifatida ishlaydi. Uzatish zanjiridagi vaqtinchalik jurnal bayonoti unga urilgan interfeys va manzillarni nomlaydi va keyin uni olib tashlash oson. Uni doimiy qoldirsangiz, javob o'rniga jurnal hajmi muammosini qurgan bo'lasiz.
Har bir o'zgarishni qayta ulangandan keyin saqlanadigan joyga qo'ying
ip route add bilan qo'shilgan marshrut interfeys tushguncha yashaydi. Uni ulanish profilida saqlang: NetworkManager ulanishda qo'shimcha marshrutlarni qabul qiladi, netplan esa ularni yuklashlar orasida saqlaydi. Xuddi shu qoida mijoz tomonidagi xavfsizlik devori istisnosiga ham tegishli, u keyingi qayta yuklashdan keyin yo'qoladi.
Server tomonidagi qoidalar xizmat ishga tushganda yuklaydigan konfiguratsiya fayliga tegishli, siz yopganingizda tugaydigan interaktiv sessiyaga emas. Qoidani yozing, qayta yuklang va hisoblagich siljiganini tasdiqlang, chunki sintaksisni rad etgan qayta yuklash eski qoidalar to'plamini jimgina joyida qoldiradi.
So'ng asl ilova so'rovini boshidan oxirigacha takrorlang va qaysi qatlam o'zgarganini yozib oling. Filtr o'zgarishini ham talab qilgan marshrut tuzatishi baribir muvaffaqiyatsiz bo'ladi va birinchisi yo'qolganini bilganingizdan keyin ikkinchi muvaffaqiyatsizlikni o'qish ancha oson. Natija yoniga sana va mijoz versiyasini yozing, chunki marshrutlash va filtrlash standartlari nashrlar orasida o'zgaradi. O'sha eslatmani chiptada saqlang, keyingi odam ikki bosqichli yo'lni takrorlamasdan siz to'xtagan joydan boshlashi uchun.