OpenVPN mijozi ish vaqtini up va down ilgaklari bilan qanday o'lchash mumkin
OpenVPN da ish vaqti hisoblagichi yo'q. up ilgagidan epoch tamg'asini saqlang, down da uni o'chiring, ayiring va qayta ishga tushirishlar hamda nusxalar orasida halol saqlang.
Boshqaruv paneli ulanish qancha vaqtdan beri faol ekanini so'raydi, va OpenVPN buni bermaydi. Mijoz o'z tunnelining qachon ko'tarilganini biladi, lekin sessiya holati yo'qolishidan oldin kimdir o'sha lahzani yozib qo'ysa. Qo'llab-quvvatlanadigan joy — up ilgagi, va saqlashga arziydigan qiymat formatlangan satr emas, xom epoch soniyasidir. Undan keyingi hamma narsa arifmetika, qo'shimcha ravishda raqam halol qolishini hal qiladigan bir necha tartib qoidalari.
Ilgaklar haqiqatan ishlashiga ishonch hosil qiling
Atrofida biror narsa loyihalashdan oldin ilgak ishga tushishini isbotlang. Minimal mijoz konfiguratsiyasiga script-security 2 va aniq yo'llar up hamda down kerak; xavfsizlik satrisiz OpenVPN skriptni ishga tushirishdan bosh tortadi va buni ochiq aytadi. Bir vaqtning o'zida up-restart va down-pre qo'shing, shunda qayta ishga tushirish va demontaj yo'llari oldindan aytib bo'ladigan tarzda ishlaydi.
Ilgakning birinchi versiyasini o'z muhitini faylga qo'shadigan va boshqa hech narsa qilmaydigan qilib yasang. Bu sizga qurilmangiz haqiqatan eksport qiladigan o'zgaruvchi nomlarini aytadi, masalan dev va script_type, boshqa versiyadan eslab qolgan nomlar o'rniga. Bitta ulanish va bitta uzilishni ishga tushiring, keyin faylni o'qing. Hech narsa ko'rinmasa, shu yerda to'xtang, chunki hech qachon ishlamaydigan ilgak ustidagi vaqt tamg'asi dizayni haftalab kuzatuv nosozligidek ko'rinadi.
Ilgak qaysi foydalanuvchi sifatida ishlashini tekshiring. user va group o'rnatilganda OpenVPN skriptlarni ishga tushirishdan oldin imtiyozlardan voz kechadi, shuning uchun root yoza oladigan katalog ilgak uchun yopiq bo'lishi mumkin. Yo'lni o'z shellingizdan emas, xizmat nuqtai nazaridan tanlang.
Bitta epoch qiymatini yozib oling va uni atayin o'chiring
up ilgagiga bitta satr kerak, date +%s > /run/openvpn-client.started, yo'l har bir nusxa uchun moslashtirilgan. Epoch qiymati keyinchalik til, vaqt mintaqasi va format savollaridan qochadi va bu kuzatuv agenti o'z soati bilan taqqoslashi mumkin bo'lgan o'sha raqam.
O'chirish yozish kabi muhim. down ilgagi faylni bo'shatishi yoki olib tashlashi kerak, va down-pre buni interfeys yopilishidan oldin qiladi, bu esa fayl allaqachon ketgan tunnelni tasvirlaydigan oynani yo'q qiladi. up-restart keyin ichki qayta ishga tushirishda tamg'ani yangilaydi, asl qiymatni joyida qoldirish o'rniga. Bu juftliksiz ping muddati tugagach qayta ishga tushirish tunnel qayta tiklanayotganda davom etib o'sadigan raqam beradi.
To'g'ri umrga ega joyni tanlang. /run ostidagi fayl qayta yuklashda yo'qoladi, bu haqiqatga mos keladi, holbuki /tmp ostidagi fayl kutilmaganda tozalanishi mumkin va konfiguratsiya katalogidagi fayl chalg'ituvchi tarzda saqlanib qoladi. Ruxsatlarni faqat xizmat foydalanuvchisi va kuzatuv o'quvchisi o'qiy oladigan qilib belgilang.
Jurnal satrlariga ishonmasdan ish vaqtini hisoblang
Saqlangan soniyani o'qing, joriy soniyani o'qing, ayiring. Fayl yo'q bo'lsa yoki bo'sh bo'lsa, halol javob — faol tunnel yo'q, ish vaqti nolga teng degani emas, chunki bu ikki holat turli ogohlantirishlar ko'tarishi kerak. Kuzatuv ma'lumotida xom soniyalarni saqlang, kunlar va soatlarni ko'rsatish qatlamida formatlang. Eksportyor ichida yaxlitlaydigan formatlovchi voqea paytida kimgadir kerak bo'ladigan aniqlikni tashlab yuboradi.
Jurnal vaqt tamg'alarini tahlil qilish — vasvasaga soladigan qisqa yo'l, va u uch joyda muvaffaqiyatsizlikka uchraydi: format qanday parametrlar o'rnatilganiga bo'ysunadi, aylantirish tarixni o'chiradi, va qayta ulanishlar bitta uzluksiz tunnel emas, alohida sessiyalar bo'lib ko'rinadi. Ilgak voqeani bir marta, sodir bo'lgan lahzada yozadi.
Tekshiruv boshqa hostda ishlasa, davomiylik o'rniga vaqt tamg'asini yuboring, shunda o'quvchi o'z soatini qo'llaydi. Shunda kichik manfiy natija buzilgan ilgak emas, soat farqi sifatida o'qiladi.
Qayta ulanishlar, qayta ishga tushirishlar va bir nechta nusxalarni qamrab oling
Bitta hostdagi ikkita tunnel ikkita fayl talab qiladi, kalit xizmat allaqachon ishlatadigan nusxa nomi. Umumiy yo'l eng so'nggi ulanish har bir profilning boshlanish vaqtini ustiga yozishini bildiradi, va alomat ikkinchi tunnel boshlanganda orqaga sakraydigan raqam.
Qayta ulanish xulqi alohida sinovga loyiq, chunki aynan o'sha yerda ishonchli ko'rinadigan dizayn jimgina noto'g'ri narsani xabar qiladi. Hamrohni tushirib yoki jarayonga signal yuborib qayta ishga tushirishga majbur qiling, keyin interfeys holatini fayl bilan solishtiring. Tunnel qaytgan lahzada vaqt tamg'asi oldinga siljishi kerak.
Server tomonida holat fayli har bir mijoz uchun connected-since qiymatini olib yuradi, bu boshqa savolga javob beradi: server o'sha hamrohni oxirgi marta qachon ko'rgan. Uni almashtiruvchi sifatida emas, o'zaro tekshiruv uchun ishlating, chunki u tasvirlagan sessiya bilan birga yo'qoladi. Ikkala o'lchov ham tunnel orqasidagi ilovaning sog'ligi haqida hech narsa demaydi.
Tartib xatolarini tutadigan uchta tekshiruvni ishga tushiring
Oddiy ulanishni, majburiy qayta ulanishni va toza to'xtashni sinab ko'ring, har biridan keyin interfeys ro'yxati va faylni birga o'qing. Toza to'xtashdan keyin ham qolgan tamg'a yoki interfeys ro'yxatida yo'q tunnelni da'vo qiluvchi fayl to'g'ridan-to'g'ri ilgaklar tartibiga ishora qiladi. Tekshiruvlarni xizmat foydalanuvchisi sifatida va xizmat yo'llari bilan bajaring, chunki root shell boshqa faylni ko'rib, ishonch bilan noto'g'ri javob berishi mumkin. Keyin sekin so'rovchini faylni o'qishga qo'yib yuboring va u hech qachon unga yozmasligiga ishonch hosil qiling.
Har oltmish soniyada bir so'rov ogohlantirishlarni qamrab oladi, va hech bir ilgak o'sha so'rovchi tirik bo'lishiga tayanmasligi kerak. Bu ikki mas'uliyatni alohida tuting, va qaysi tomon qayta joylashtirilsa ham raqam ishonchli bo'lib qoladi.