OpenVPN boshqaruvchi terminalda foydalanuvchi nomi va parolni so'raydi, standart kiritishga yo'naltirilgan fayl esa o'sha terminal emas. Aynan shu bir tafsilot parol quvur ichida turgan bo'lsa ham osilib qoladigan skriptni tushuntiradi. So'rovni klient chizadi va o'qish terminal qurilmasidan amalga oshiriladi, shuning uchun stdin-ni yo'naltirish hech narsani o'zgartirmaydi. Klientni uning hujjatlashtirilgan kirish yo'llaridan biri orqali ta'minlang, o'sha skript birinchi urinishdanoq ulanadi.

Uch yo'l deyarli barcha holatni qamrab oladi va har biri o'zicha muvaffaqiyatsiz bo'ladi. Klient aslida ko'rsatadigan so'rovga qarab tanlang, skript qilish eng oson variantga qarab emas.

So'rov stdin-dan kelmaydi

OpenVPN hisob ma'lumotlariga muhtoj bo'lganda boshqaruvchi terminalni ochadi va o'sha yerdan o'qiydi. Shuning uchun interaktiv sinov yaxshi ko'rinadi, cron yoki unit fayli ostidagi xuddi shu buyruq esa hech kim qaramaydigan jurnalga so'rov yozilgan holda qimirlamay turadi. Ba'zi buildlar terminal bo'lmaganda standart kiritishga qaytadi va bu nomuvofiqlik qattiq xatodan ham yomonroq, chunki muammoni joylashtirishgacha yashiradi.

Har qanday kod yozishdan oldin muhitni tekshiring: klientni rejalashtiruvchi yoki xizmat menejeri ishlatadigan o'sha foydalanuvchi va o'sha stdin bilan ishga tushiring. Agar so'rov hech qachon jurnalda ko'rinmasa va jarayon ilgarilamasa, nimadir mavjud bo'lmagan terminalni kutmoqda.

Birinchi yo'l: ikki qatorli hisob ma'lumotlari fayli

Autentifikatsiya opsiyasi yo'lni oladi va faylda aynan ikki qator bo'ladi: avval foydalanuvchi nomi, keyin parol, boshqa hech narsa yo'q. Standart fayl nomiga tayanmasdan yo'lni aniq ko'rsating, chunki ish katalogida qolib ketgan hisob ma'lumotlari fayli noto'g'ri akkaunt ishlatilishiga olib keladigan yo'ldir. Rejimni 0600 ga qo'ying va egalikni klientni ishga tushiruvchi akkauntga bering.

Klient bu faylni ishga tushishda bir marta o'qiydi, shuning uchun parolni almashtirish jarayonni qayta ishga tushirishni anglatadi. Odatda bu siz xohlagan xatti-harakat va u almashtirish tartibi yonidagi runbook-ga tegishli.

Ikkinchi yo'l: kalit parol iborasi uchun askpass

Parol iborasi bilan himoyalangan shaxsiy kalit ikkinchi, boshqacha so'rov chiqaradi va uning o'z faylga asoslangan javobi bor: askpass opsiyasi iborani faylning birinchi qatoridan o'qiydi. SSH asosidagi tunnellar uchun ekvivalent klient ishga tushiradigan askpass dasturi bo'lib, uning standart chiqishi sirga aylanadi.

Ikkala shakl ham sirni argumentlar ro'yxatiga qo'ymaydi va ikkalasi uni fayl yoki uni chop etuvchi bajariladigan dastur sifatida qoldiradi. Himoya fayl ruxsatlari va jarayon egaligi, yashirinlik emas. Kodda qotirilgan satrni takrorlaydigan yordamchi qo'shimcha qadamlar bilan qilingan sirdir.

Uchinchi yo'l: portal klientining o'z CLI-si

Korxona klientlari odatda hech qanday oyna ishtirokisiz nomlangan portalga ulanadigan buyruq qatori kirish nuqtasini beradi va bu qo'llab-quvvatlanadigan yo'l. Linux-da GlobalProtect klienti o'z CLI-si orqali ulanish va sertifikat import qilish amallarini taqdim etadi, sertifikat autentifikatsiyasidan foydalanadigan portallar esa avtomatik ulanish ishlashidan oldin import qadamini talab qiladi. Uni sintetik tugma bosishlardan afzal ko'ring: haqiqiy chiqish holatini olasiz, oyna fokusiga bog'liqlik yo'q va u qulflangan ekranda ham ishlaydi.

Agar birinchi ulanish hali ham sertifikatni qabul qilish uchun odamni talab qilsa, avtomatlashtirish tugamagan. Importni sozlash paytida bajaring va uni old shart sifatida yozib qo'ying.

Oqim psevdo-terminalga muhtoj bo'lganda

Avval parol, keyin bir martalik kod so'raydigan ketma-ketlikning o'qiydigan bitta fayli yo'q. Expect kabi terminal drayveri to'g'ri asbob, chunki u har bir andozani navbat bilan kutadi va biror narsani moslashtirishdan oldin jarayon ishga tushgan bo'lishi kerak.

Ikki muvaffaqiyatsizlik ustunlik qiladi. Klientni ishga tushirmasdan so'rovni kutayotgan skript abadiy kutadi, Tcl esa shell emas, shuning uchun expect bloki ichida yozilgan shell arifmetikasi o'qilganidek baholanmaydi. Andozalarni qurayotganda disk raskadrovka bayrog'ini yoqib turing, keyin o'chiring.

Oqib ketadigan sirlar va ular qayerda yashirinadi

Argument sifatida berilgan har qanday narsa jarayonlar ro'yxatida ko'rinadi, shuning uchun hisob ma'lumotlarining o'rni faylda yoki yordamchi orqasida, hech qachon buyruq qatorida emas. Bir martalik kodlar dizayn bo'yicha sarflanadi va har bir urinish uchun yaratilishi kerak. Muvaffaqiyatsizlik jurnallari ko'pincha foydalanuvchi nomini, ba'zan undan ko'prog'ini olib yuradi, shuning uchun biror joyga yuborishdan oldin ularni tahrir qiling va sirni profilning o'zidan tashqarida saqlang, chunki ichiga parol joylangan konfiguratsiya fayli chiptalar va repozitoriylarga yopishib qoladi. Akkauntni almashtirish keyin har bir nusxani ovlashni anglatadi va bu aynan shu tuzilma chetlab o'tadigan xarajatdir.

Tanlagan yo'llaringizni tekshirib chiqing, keyin ularni klientni aslida ishga tushadigan unit fayli yoki rejalashtiruvchiga ulang. Tunnel aynan o'sha jarayon yashagancha yashaydi.

O'xshash maqolalar