Mijoz ilgagi yoki server ilgagi? OpenVPN skripti qayerda ishlaydi
Server konfiguratsiyasidagi skript yo‘li serverdagi yo‘ldir. Ishni bajarishi kerak bo‘lgan mashinaga qarab ilgakni tanlang va push noutbukda kod ishga tushirishini kutishni to‘xtating.
Vazifa aniq: noutbuk ulanganda unda biror narsa o‘zgarishi kerak. Tahrirlanayotgan konfiguratsiya serverga tegishli va taxmin aynan shu yerda buziladi. Server faylidagi yo‘l o‘sha serverdagi faylni ko‘rsatadi va qancha push qilinsa ham, uni qaysi jarayon bajarishi o‘zgarmaydi. Ikki ilgak o‘rtasidagi tanlov asosan ish qaysi mashinaga tegishli ekanini hal qilish va bundan kelib chiqadigan cheklovlarni qabul qilishdir.
Ikki mashina, avval javob berilishi kerak bo‘lgan ikki savol
Holat o‘zgarishi qayerda bo‘lishi kerakligini so‘rang, so‘ng unga qaysi hodisa mos kelishini so‘rang. Agar o‘zgarish har bir foydalanuvchi uchun ruxsat yoki har bir mijoz uchun konfiguratsiya qarori bo‘lsa, u foydalanuvchilar katalogi ma’lum bo‘lgan joyga tegishli: serverga. O‘zgarish marshrut bo‘lsa, resolver sozlamasi yoki oxirgi nuqtadagi mahalliy yordamchi bo‘lsa, u oxirgi nuqtaga tegishli va buni faqat oxirgi nuqta qila oladi.
Bu ikki savolga teskari tartibda javob berish odamlarning Windows noutbukiga batch faylini push qilishga urinishiga olib keladi. Server kim ulanganini biladi; noutbuk o‘z tarmoq stekining qanday ekanini biladi. Hech birida ikkinchisining ma’lumoti yo‘q va urinish odatda aniq xato o‘rniga jim muvaffaqiyatsizlikka uchraydi.
Ikkalasidan oldin uchinchi savolni berishga arziydi: platforma siz xohlagan ilgakni umuman taklif qiladimi? O‘z konfiguratsiyasini o‘zi yaratadigan qurilma bir xil hodisa nomlarini taklif qilmasligi mumkin, .ovpn faylini import qiladigan ish stoli mijozi esa fayl yozilgan mijozning aynan o‘zi bo‘lishi shart emas. Platformani avval tasdiqlash sizni u yerda mavjud bo‘lmagan ilgak atrofida loyihalashdan qutqaradi. Bu, shuningdek, oldingizdagi mashinaga qaysi hujjat haqiqatan tegishli ekanini aytadi.
Server tomonidagi variant: har bir ulanish uchun hodisa
client-connect skripti autentifikatsiyadan o‘tgan mijoz ulanganda server jarayoni kontekstida ishlaydi va common name hamda ajratilgan manzil kabi hujjatlashtirilgan ulanish tafsilotlarini oladi. Har bir mijoz uchun konfiguratsiya parchasi yozish, siyosat qarorini ijro etish yoki serverga tegishli holatni qayd etish uchun to‘g‘ri joy shu.
Odamlar o‘tkazib yuboradigan farq — bu ilgak va serverning up ilgagi o‘rtasidagi farq. up ilgagi server o‘z tunnel qurilmasini ochganda ishga tushadi, bu ko‘p mijozli serverda daemon ishga tushganda bir marta sodir bo‘ladi. Bu har bir kirish uchun hodisa emas va u yerga qo‘yilgan kod foydalanuvchilar ulanganda emas, xizmat ishga tushganda ishlaydi.
Veb-interfeysli qurilmada yaratilgan daemon fayllarini tahrirlash o‘rniga qo‘llab-quvvatlanadigan kengaytma mexanizmidan foydalaning. Yaratilgan fayllar keyingi saqlashda qayta yoziladi va qayta yozish o‘zgartirishingizni eng yomon paytda jim olib tashlaydi. Kengaytma matnining nusxasini qurilmadan tashqarida saqlang, shunda firmware yangilanishi niyatni ham yo‘qotmaydi.
Mijoz tomonidagi variant: mahalliy ishlashi kerak bo‘lgan ish
Hamjamiyat mijozi tunnel qurilmasi ko‘tarilganda va yana marshrutlar o‘rnatilganda mahalliy skriptni ishga tushirishi mumkin. Bu ikki xil lahza va noto‘g‘risini tanlash yordamchi o‘zi bog‘liq bo‘lgan marshrut mavjud bo‘lishidan oldin boshlanadigan klassik poygani keltirib chiqaradi.
Yordamchi o‘sha mijozda mavjud bo‘lishi, mijozni ishga tushiruvchi hisob uchun o‘qiladigan va bajariladigan bo‘lishi hamda aniq script-security sozlamasi bilan ruxsat etilishi kerak. Mijozni administrator sifatida ishga tushirganda ishlaydigan skript kirishdan oldingi xizmat yoki boshqa foydalanuvchi sessiyasi haqida hech narsa aytmaydi.
Nomlash ham muhim. up ilgagi qurilma yaratishga, route-up esa marshrutlarni o‘rnatishga mos keladi, lekin xususiy tarmoqqa yetib borish talab qilinadigan vazifa qurilma yaratish har bir marshrut, resolver yozuvi va dastur tayyor degani deb taxmin qilish o‘rniga yetib borish imkoniyatini tekshirishi kerak.
Nega bajariladigan kodni push qilish variantlar qatorida yo‘q
push orqali yuboriladigan variantlar ataylab cheklangan va skriptlarni bajaradigan variantlar serverning uzatishga haqqi bo‘lmagan toifalarga kiradi. Bu cheklov bor, chunki muqobil buzilgan yoki noto‘g‘ri konfiguratsiyalangan serverga har qanday ulanadigan mijozda ixtiyoriy buyruqlarni bajarishga imkon berardi.
Skript bajarishni mahalliy yoqish buni o‘zgartirmaydi. Sizning script-security sozlamangiz o‘zingiz tanlagan mahalliy skriptlarga ruxsat beradi; u serverga yangilarini yetkazib berish huquqini bermaydi.
Agar maqsad faqat VPN marshrutlarini o‘rnatish bo‘lsa, masofadan bajarish sxemasini o‘ylab topish o‘rniga qo‘llab-quvvatlanadigan marshrut konfiguratsiyasidan foydalaning. Agar maqsad haqiqatan mahalliy kodni talab qilsa, uni tashkilotning oxirgi nuqtalarni boshqarish vositalari orqali tarqating va foydalanuvchi huquqlari bilan ishlaydigan har qanday boshqa dasturiy ta’minot kabi ko‘rib chiqing.
Ikkala ilgakdan biriga ishonishdan oldin nimani tekshirish kerak
Har bir ilgak uchun to‘rt narsani yozing: mashina, hodisa nomi, u qaysi hisob ostida ishlaydi va u hosil qilishi kerak bo‘lgan holat o‘zgarishi. So‘ng ulanishni, qayta ulanishni va tozalash yo‘lini sinab ko‘ring, chunki qayta ulanishda holatni oqizadigan ilgak hech qachon ishlamagan ilgakdan ham yomonroq.
Uni haqiqatan bajaradigan hisob ostida, haqiqatan bajariladigan paytda sinab ko‘ring. openvpn(8) qo‘llanmasi ikkala ilgak oilasini va push cheklovlarini hujjatlashtiradi; siz joylashtiradigan platforma ularni umuman taqdim etishini hujjatlashtiradi. Interaktiv administrator terminalida muvaffaqiyat qozonadigan skript — bu taxmin, tekshiruv emas.