SSH orqali ishlayotgan mashinada OpenVPN mijozi ishga tushiring va buyruq o‘rtasida sessiya muzlab qoladi. Tunnel ulanganini bildiradi, host u orqali internetga chiqa oladi, klavish bosishlaringiz hali ham yetib boradi, ammo qaytib hech narsa kelmaydi. O‘zgargan narsa tunnel emas: bu sizga manzillangan paketlarning qaytish yo‘li, u endi yangi standart marshrutga mos keladi va uzoq shlyuz sizning stolingizga yetish uchun ishlatmaydigan tunnelga kiradi.

redirect-gateway aslida nima o‘rnatadi

def1 shaklida redirect-gateway standart marshrutni qayta yozish o‘rniga 0.0.0.0/1 va 128.0.0.0/1 qo‘shadi. Bu ikki yarim butun manzil maydonini qamrab oladi, ikkalasi ham 0.0.0.0/0 dan uzunroq prefiks bo‘lib qoladi, shuning uchun aniqroq moslikka ega bo‘lmagan har qanday manzil endi tunnelga kiradi. Aynan shu mexanizmni yodda tutish kerak, chunki quyidagi har bir tuzatish aniqroq moslik o‘rnatish orqali ishlaydi.

Ma’muriy manzilingiz ana shunday manzillardan biri.

VPN serveri mijozlarining trafigini internetga yo‘naltiradi. U siz ulanayotgan ommaviy manzil uchun marshrutga ega emas va bu paketlarni mijozdan kelayotgan trafikdan boshqa narsa deb hisoblashga asosi yo‘q, shuning uchun ularni tashlab yuboradi. Shu bilan birga yuborgan so‘rovingiz baribir hostga yetib bordi, shuning uchun sessiya faqat bir tomondan tirik ko‘rinadi.

ip route show table main | head -n 20
ip route get 198.51.100.23

Manba manzilingizni va tunnelgacha bo‘lgan yo‘lni toping

Serverda o‘rnatilgan SSH ulanishini ro‘yxatga oling va u kelgan tengdosh manzilini yozib qo‘ying. Aynan shu manzilni qaytish marshrutingiz qamrab olishi kerak va bu har doim siz o‘ylagan narsa emas: sakrash hosti, NAT shlyuzi yoki operatorning manzil tarjimoni boshqa manbani qo‘yishi mumkin.

So‘ng tunnel boshlanishidan oldin trafikni olib yurgan jismoniy shlyuz va interfeysni toping. def1 tartibida standart marshrut yarim standartlar ostida hali ham mavjud, shuning uchun ma’lumot bor, garchi uzun marshrut jadvalini ko‘z bilan o‘qish xatolarga chorlaydi.

Ikkala qiymatni va interfeys nomini birga yozing, chunki qo‘shmoqchi bo‘lgan marshrutingiz uchtasiga ham muhtoj. Agar host o‘z yuqori kanalini tanlash uchun siyosat marshrutlash qoidasidan foydalangan bo‘lsa, oddiy marshrut umuman ko‘rib chiqilmasligi mumkin va bu imkoniyat tuzatishni o‘zgartiradi.

Yarim standartlardan ustun turuvchi host marshrutini mahkamlang

/32 marshruti har qanday yarim standartdan uzunroq, shuning uchun manzilingizga keladigan javoblar tunnel o‘rniga uni oladi. Keyingi sakrash tunneldan oldingi shlyuz, qurilma esa jismoniy interfeys, bu paketni tunnel paydo bo‘lishidan oldin ishlatgan yo‘lda ushlab turadi.

ip route add 198.51.100.23/32 via 203.0.113.1 dev eth0

Jadvalni ko‘zdan kechirish o‘rniga qidiruv bilan tekshiring: javobda eth0 va shlyuz bo‘lishi kerak, hech qachon tun0 emas.

OpenVPN allaqachon xuddi shu sababga ko‘ra VPN serverining o‘z manziliga host marshrutini qo‘shadi, shuning uchun bu naqsh tanish va ma’muriy manzil shunchaki yana bir istisno. Buni tuzatish uchun route-nopull ga murojaat qilmang, chunki u tunnelga kerak bo‘lgan surilgan marshrutlarni, jumladan uzoq tarmoq va DNS parametrlarini tashlab yuboradi.

Qayta ulanishga bardosh beradigan qiling

Qo‘lda qo‘shilgan marshrut mijoz qayta ulanib o‘z marshrutlarini o‘rnatganda yo‘qoladi, bu esa tuzatishni takrorlanuvchi uzilishga aylantiradi. Buyruqni marshrutlar o‘rnatilgandan keyin ishlaydigan narsaga bog‘lang.

route-up skripti yoki tarmoq menejerining pre-up ilgagi ikkalasi ham ishlaydi, ishonchli tekshiruv esa qayta ulanish va o‘sha qidiruvdir.

Windowsda buning ekvivalenti -p bilan qo‘shilgan doimiy marshrut bo‘lib, u qayta yuklashdan o‘tadi, ammo tarmoq o‘zgargandan keyin ham to‘g‘ri shlyuzga ishora qilishi kerak. Qaysi platforma bo‘lishidan qat’i nazar, marshrut yoniga sababni yozing: keyingi administrator uning boshqaruv sessiyasini himoya qilish uchun borligini bilishi kerak, tarmoq dizayni talab qilgani uchun emas.

Mahkamlangan marshrut hali ham yetarli bo‘lmaganda

Teskari yo‘l filtrlash bir interfeysdan kelib boshqasidan chiqadigan paketni tashlab yuborishi mumkin, mahkamlangan marshrut aynan shuni yaratadi. Biror narsani global o‘chirishdan oldin amaldagi rp_filter qiymatini tekshiring va tekshiruvni o‘chirishdan ko‘ra assimetriyani tuzatishni afzal ko‘ring. Interfeys sozlamasi amal qiladi, bo‘sh rejim ko‘pincha paketni tashlamasdan faqat assimetriyani qayd etadi. Filtr aybdor degan xulosaga kelishdan oldin ikkalasini o‘qing.

Siyosat marshrutlashiga ega hostlarga marshrut bilan birga qoida ham kerak, chunki qoidalar bazasi ichidagi marshrut ko‘rib chiqilishidan oldin jadvalni tanlaydi. Asosiy jadvaldagi marshrut boshqa jadvalga ishora qiluvchi qoidaga mos keladigan oqim uchun ko‘rinmaydi. main ga biror narsa qo‘shishdan oldin qoidalarni o‘qing. Agar qoida allaqachon boshqaruv trafigini qamrab olgan bo‘lsa, istisno o‘sha qoida jadvalida bo‘lishi kerak.

Sinov paytida asosiy kanaldan tashqari konsolni ochiq tuting va foydalanayotganingizni uzishdan oldin ikkinchi kirishdan qayta tekshiring. O‘z boshqaruv trafigingizni tunnelga yuboradigan marshrut siz uni tuzatayotgan ulanishni uzadi. Keyin qaytish ketma-ket konsol yoki qutqaruv yuklanishini anglatadi, bu esa bitta tekshiruv qadamini tashlab ketish uchun yomon almashinuv.

O'xshash maqolalar