OpenVPN'da oldindan yaratilgan tun: ikki egalik modelini taqqoslash
Oldindan yaratilgan tun interfeysini qayta ishlatish mumkin, lekin uning manzillari va marshrutlariga faqat bitta komponent egalik qilishi kerak. ifconfig-noexec qo'shishdan oldin ikkala modelni taqqoslang.
Kimdir tun1 ni oldindan yaratgan, profilda dev tun1 deyilgan, ammo ulanish hali ham ulanmayapti. Hostda nomning mavjudligi deyarli hech narsa demaydi, chunki ulanish nomlar fazosi, qurilma turi, havolaga kim egalik qilishi va demon nima qilishga ruxsat etilganiga bog'liq. Qurilmadan qayta foydalanish standart konfiguratsiya yashiradigan qarorni ham majbur qiladi: manzillar va marshrutlarni qaysi komponent yozadi. Ikki tartibning ishdan chiqish usullari konfiguratsiya satrlaridan ancha ko'proq farq qiladi, shuning uchun profilni tahrirlashdan oldin qaror qiling.
Nom ulanish emas
dev tun1 OpenVPN dan o'sha nomli interfeysni so'raydi va an'anaviy foydalanuvchi fazosi qurilmalari uni ochishga urinadi. Agar nom odatdagi tun yoki tap andozasiga mos kelmasa, profilga mos dev-type ham kerak, chunki tur hech qachon satrdan chiqarilmaydi. TAP qurilmasi boshqa yorliqli TUN qurilmasi emas: noto'g'risini ulash yo darhol muvaffaqiyatsiz bo'ladi, yo hech kim kutmaydigan freymlarni tashuvchi havola yaratadi. Turini hamma narsadan oldin tekshiring, chunki har bir keyingi tekshiruv ikki tomon bunga rozi deb hisoblaydi. Shundan so'ng, jarayon qurilmani haqiqatan ocha olishini, faqat ko'rishini emas, tasdiqlang.
dev tun1
dev-type tun
Tarmoq interfeysi va /dev/net/tun boshqa obyektlar: biri nomlar fazosi ichidagi havola, ikkinchisi foydalanuvchi fazosidagi dastur ulanish uchun ishlatadigan belgi qurilmasi. Linux TUN/TAP hujjati o'sha ulanish yo'lini va doimiy qurilmalarning egalik qoidalarini tavsiflaydi. ip link ni ishga tushira oladigan root qobig'i faqat qobiqda imtiyozlar borligini isbotlaydi, demonda borligini emas. Qurilma tugunining egaligi, xizmatning imkoniyatlar to'plami va u ishlaydigan foydalanuvchi — barchasi mos kelishi kerak, ochish muvaffaqiyatli bo'lishidan oldin.
Mavjud bo'lib ochilmaydigan qurilma egalik muammosi, marshrutlash muammosi emas. Nosozliklarni tuzatishda uni shunday ko'ring, aks holda tushdan keyin hech qachon muammo bo'lmagan marshrut jadvallarini o'qishga ketadi.
Havolani kim sozlaydi: ikki egalik modeli
Birinchi modelda OpenVPN manzillar va marshrutlarni ulanishni ko'tarishning bir qismi sifatida sozlaydi. Bu standart xatti-harakat va tushunish uchun eng oson, chunki bitta komponent holatni yaratadi va keyin uni olib tashlaydi. Ikkinchi modelda interfeysga tashqi menejer egalik qiladi va ifconfig-noexec OpenVPN ga manzil sozlash buyruqlarini bajarishga yo'l qo'ymaydi hamda parametrlarni skriptlarga beradi. Shunda menejer to'g'ri mahalliy va hamkor konfiguratsiyani o'zi qo'llashi kerak, bu variant nomi ko'rsatganidan ko'proq ish. Ikkisi o'rtasidagi tanlov havola ko'tarilgan paytda uni kim o'zgartira olishi haqidagi savol.
ifconfig-noexec faqat manzillarni qamrab oladi: marshrutlash jadvaliga tegilmaydi va marshrutlarni sozlash route-noexec ga tegishli. Ikki direktivani alohida egalarga ega alohida boshqaruv sifatida ko'ring, chunki birini o'rnatib ikkinchisini taxmin qilish yarim sozlangan havolalarning odatiy manbasidir. Har bir qatlam uchun aynan bitta egasini tanlang, manzillar bir joyda va marshrutlar bir joyda. Tarmoq menejeri va VPN yordamchisi ikkalasi ham manzil yozsa, uzilish boshqa tomon hali tayangan holatni o'chiradi.
Qurilmani muhim bo'lgan nomlar fazosidan ko'ring
Qurilmani VPN jarayoni ishlaydigan nomlar fazosidan ko'ring, qobig'ingiz tasodifan turgan joydan emas. Quyidagi ikki buyruq turli savollarga javob beradi va farq host konteyner ko'rmaydigan interfeysni ko'rganda namoyon bo'ladi. Ularni ko'rsatilgan tartibda ishga tushiring, chunki ikkinchisi havola bor-yo'qligini bilganingizdan keyingina mazmunga ega.
ip -details link show dev tun1
ip tuntap show
Birinchi buyruq havolani yadro ko'rgandek chop etadi, bayroqlar va interfeys turini qo'shib, va shu bilan bu aynan siz nazarda tutgan qurilma ekanini tasdiqlaysiz. Ikkinchisi doimiy tun/tap yozuvlarini sanaydi, ular hech qanday jarayon ushlamasa ham mavjud. O'zining tayinlangan egasini kutayotgan interfeys boshqa VPN ga ulangan tirik tunneldan boshqa holat, va faqat ikkinchisi sizning ulanish nima uchun muvaffaqiyatsiz bo'lishini tushuntiradi. Biror narsani o'zgartirishdan oldin qurilmani ushlab turgan jarayonni toping, chunki doimiy yozuv va band interfeysning yechimlari boshqacha.
Ko'p navbatli qo'llab-quvvatlash o'z talablariga ega muayyan drayver tartibi, aloqasi yo'q jarayonlarga bitta interfeysni bo'lishishga ruxsat emas. Boshqa egasining tirik sessiyasi muvofiqlashtirish muammosi va hech qanday profil tahriri uni hal qilmaydi.
Ikki xil doimiylik
Yadro doimiyligi va persist-tun chalkashtirish oson va xato qilish qimmat bo'lgan umrlarni tavsiflaydi. Doimiy qurilma har qanday jarayondan mustaqil mavjud, shuning uchun to'xtatishdan omon qoladi va keyingi ishga tushirish uni qayta ishlatishi mumkin. persist-tun resurslarni bitta OpenVPN jarayoni ichida qo'llab-quvvatlanadigan yumshoq qayta yuklashlar davomida saqlaydi, ancha qisqa ufq. Ikkalasi ham xizmatni to'xtatish marshrutlar va manzillarni joyida qoldiradi deb va'da bermaydi, va ko'rinib turgan interfeys ishlayotgan shifrlangan sessiyaning dalili emas.
Backend ni ham tasdiqlang, chunki oldindan yaratilgan interfeys uni qaysi implementatsiya ochishini hech narsa demaydi. To'g'ridan-to'g'ri ma'lumot yo'lini olib yuruvchi hamjamiyat qurilmalari, dizayn boshqacha aytmasa, undan foydalanishga urinadi. Versiya bu kalitni qo'llab-quvvatlaydigan joyda disable-dco o'rniga foydalanuvchi fazosi yo'lini tanlaydi; eski dvigatellar va boshqa mijozlarda bunday direktiva yo'q, shuning uchun versiya shartini variant yonida saqlang, u qo'llaniladi deb o'ylamang.
Faqat ishga tushirishni sinaganda nima buziladi
Egalik kelishuvi birinchi sinovdan o'tib, oxirgisida muvaffaqiyatsiz bo'lishi mumkin, bu esa ishga tushirishni yolg'iz o'zi zaif tekshiruvga aylantiradi. Buning o'rniga ikki o'tishni kuzating: yumshoq qayta yuklash va to'liq to'xtatishdan keyingi ishga tushirish.
systemctl status openvpn-client@lab
ip -details link show dev tun1
Ishga tushirish oson holat: birlik ko'tariladi, havola paydo bo'ladi va holat chiqishi yuklangan profilni nomlaydi. Ulanish — demon qurilmani ochadigan lahza, shuning uchun havola tekshiruvini birlik faol ekanini xabar qilgandan keyin ishga tushiring, undan oldin emas. Agar holat hali faollashayotganda havola mavjud bo'lsa, siz hali hech kim ulanmagan doimiy qurilmani ko'ryapsiz, ishlayotgan tunnelni emas. Davom etishdan oldin havola orqali haqiqiy trafikni o'tkazing, chunki foydalanishga yaroqli marshrutsiz ulangan interfeys ham muvaffaqiyatsizlik.
kill -SIGHUP $(pidof openvpn)
journalctl -u openvpn-client@lab -n 40
systemctl stop openvpn-client@lab
ip -details link show dev tun1
Yumshoq qayta yuklash sessiyani foydalanishga yaroqli va resurslarni buzilmagan qoldirishi kerak, aynan shu ishni persist-tun bajaradi. To'liq to'xtatish — tashqi menejer o'zini ko'rsatadigan joy: agar havola yoki uning manzillari to'xtatishdan omon qolsa, ularga boshqa kimdir egalik qiladi, va bu siz hujjatlashtirgan holat yoki hozir topilgan xato. Ikkala kuzatuvni profil yoniga yozib qo'ying, keyingi o'zgarish diagrammadan emas, dalildan boshlanishi uchun.