OpenVPN CA imzolash kalitini /etc/openvpn dan tashqarida saqlang
CA ish maydoni identifikatorlarni chiqaradi; xizmat faqat joylashtirilgan materialni iste’mol qiladi. Har bir rolga o‘z hisobi, katalogi va zaxira nusxasini bering va ikkalasini ham tekshiring.
Qo‘llanmada o‘xshash ko‘rinadigan ikkita katalog butunlay boshqa ishlarni bajaradi. Birida sertifikat markazi saqlanadi: uning shaxsiy kaliti, seriya raqami hisoblagichi va imzolagan barcha narsalarning yozuvi. Ikkinchisida daemon ishga tushish va mijozlarga xizmat ko‘rsatish uchun kerak bo‘lgan narsa saqlanadi. Ikkalasini ham bir xostda bir hisob ostida joylashtirish bir tushlik uchun qulay va joylashtirishning qolgan umri uchun qimmat, chunki daemon keyin o‘zi xohlagan har qanday identifikatorni yaratishi mumkin bo‘lgan yagona kalitning yonida ishlaydi.
CA ish maydonida nima bor
PKI katalogi konfiguratsiya emas, chiqaruvchi holatidir. Unda CA shaxsiy kaliti va sertifikati, seriya raqami fayli, chiqarilgan sertifikatlar indeksi va ulardan tayyorlangan har bir identifikator uchun material mavjud.
So‘rovni imzolash bu holatni o‘zgartiradi, shuning uchun ish maydoni VPN xizmati ishlamaydigan xostda administrator tomonidan boshqariladigan hisobga tegishli. CA shaxsiy kalitini o‘qiy oladigan har kim server ishonadigan sertifikat chiqarishi mumkin, ya’ni kalitni himoya qilish bitta fayldagi butun ishonch modelidir. Bir qadamni tejash uchun uni ikkinchi joyga nusxalash himoya qilinadigan ikkinchi narsa va unutiladigan ikkinchi narsa yaratadi. Har bir imzo seriya raqamini ham oshiradi va indeksga yozuv qo‘shadi, shuning uchun ish maydoni fayllar papkasi emas, holatning bitta nusxasidir.
CA ommaviy sertifikati boshqacha. U tarqatish uchun mo‘ljallangan va mijozlar hamda serverlar bir-birini tekshirish uchun undan foydalanadi.
Daemon ishga tushganda nimalarni o‘qiydi
Ishlayotgan server kichik to‘plamni iste’mol qiladi: o‘z sertifikati, o‘z shaxsiy kaliti, hamkorlarni tekshirish uchun CA sertifikati va tanlangan rejim talab qiladigan kalit materiali. U bu yo‘llarni ishga tushishda va qayta yuklashda yana o‘qiydi.
Egalik interaktiv root qobig‘iga emas, haqiqatda ishga tushadigan birlikka qarab baholanishi kerak. E’lon qilingan sandbox, root sifatida qo‘lda sinov muvaffaqiyatli bo‘lsa ham, fayl tizimining bir qismini faqat o‘qish uchun yoki ko‘rinmas qilib qo‘yishi mumkin.
systemctl show -p User -p Group -p ReadOnlyPaths [email protected]
stat -c '%a %U:%G' /etc/openvpn/server/server.key
runuser -u openvpn -- test -r /etc/openvpn/server/server.key; echo $?Uchinchi qator odamlar o‘tkazib yuboradigan qatordir. U daemonning o‘z hisobidan kalitni o‘qiy oladimi deb so‘raydi va imtiyozlar tashlab yuborilgandan keyin ahamiyatli bo‘lgan savolning yagona versiyasi shudir. Root sifatida nolga chiqish tashlashdan keyin nima bo‘lishi haqida hech narsa demaydi.
Har qanday ruxsatni o‘zgartirishdan oldin ikkita nosozlik yo‘lini ajratishga arziydi. Imzolash nosozligi PKI katalogiga, uning ota kataloglaridagi qidiruv ruxsatiga va chiqaruvchini ishga tushiruvchi hisobga ishora qiladi. Ishga tushish nosozligi birlikka, uning ish katalogiga va server konfiguratsiyasida nomlangan yo‘llarga ishora qiladi. Butun daraxtni hamma o‘qiy oladigan qilish ikkalasini ham tuzatmaydi va ikkalasi bog‘liq bo‘lgan chegarani olib tashlaydi.
Nega CA kalitini serverga nusxalash keyinchalik muvaffaqiyatsiz bo‘ladi
Nusxa odatda disk raskadrovka harakati sifatida boshlanadi: kimdir VPN xostidagi mijozni yangilamoqchi, shuning uchun CA kaliti /etc/openvpn ichiga tushadi va yangilash ishlaydi. Tezkor vazifa muvaffaqiyatli bo‘ladi va chegara yo‘qoladi.
Keyin server zaxiralanadi va imzolash organi zaxiralarga qo‘shiladi. Lahzali surat, yordam paketi yoki konfiguratsiya katalogining nusxasi endi CA amal qilgan ekan ishonchli identifikatorlar chiqarish qobiliyatini olib yuradi. O‘sha nusxaga ega bo‘lgan har kim server qabul qiladigan har qanday nom uchun sertifikat yaratishi mumkin, hech qachon chiqarilmagan nomlar ham. O‘sha chiqarishning yagona yozuvi ular saqlashni tanlagan yozuvdir.
Bu holatdan chiqish faylni o‘chirish masalasi emas. Kalit oshkor bo‘lganmi, bo‘lgan bo‘lsa CA ni almashtirish va ishonchni har bir hamkorga qayta taqsimlash kerak. Alohida ish maydoni butun suhbatdan qochadi.
Hisoblar, kataloglar, zaxira nusxalar
Chiqaruvchiga o‘z hisobi va uy katalogini bering, imkon qadar VPN xostidan uzoqda saqlang. Daemonga boshqa hisob bering, joylashtirilgan materialni o‘qish huquqi bilan va sertifikat chiqaradigan hech narsaga yozish huquqisiz. Ommaviy sertifikatlarni tashqariga nusxalash orqali joylashtiring va hech qachon chiqaruvchining shaxsiy holatini ichkariga tortmang. Ikki rolni alohida zaxiralang, chunki ularning sezgirligi va tiklash hikoyalari farq qiladi.
Bekor qilingandan so‘ng server konfiguratsiyasida nomlangan CRL faylini yangilang, so‘ng yangi ulanishlar uni o‘qishi uchun xizmatni qayta yuklang. Easy-RSA hujjatlari ish maydonining tuzilishi va imzolash jarayonini qamrab oladi; uning atrofidagi egalik qoidalari xostingiz haqidagi qaror bo‘lib qoladi. Xizmat nimalarni yuklaganini openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate bilan tekshiring, qayta yuklash uni olgan deb taxmin qilish o‘rniga.
Ajratishni isbotlaydigan test
Faqat ishlaydigan holatni emas, salbiy holatni ham tekshiring. Loyihada ko‘rsatilgandek chiqaruvchi hisobidan sertifikat imzolang, so‘ng o‘sha hisob xizmatni ishga tushira olmasligini yoki serverning shaxsiy kalitini o‘qiy olmasligini tasdiqlang. Keyin daemon hisobi CA ning shaxsiy kalitini o‘qiy olmasligini tasdiqlang.
Bu uchta tekshiruv bir necha daqiqa oladi va kadrlar o‘zgarishiga bardosh beradi, chunki ular ruxsatlar haqidagi bayonotlar, odat haqida emas. Natijani qamrab olgan yo‘llar va hisoblar bilan, shuningdek ularni ishga tushirgan sana bilan yozib qo‘ying. Bu joylashtirishni meros oladigan keyingi odam aks holda chegarani hech qachon bo‘lmagan qo‘llanmadan qayta chiqaradi. Sanasi bor yozuv ham keyingi ko‘rib chiqishning tushlik emas, daqiqalar olishiga sabab bo‘ladigan narsadir.