Bitta xostdagi ikki mijoz yana bitta server bloki va ikkinchi port kabi ko'rinadi. Mijoz aslida ega bo'lgan hamma narsani sanab chiqsangiz, bu boshqa loyihaga aylanadi: tinglovchi, tunnel hovuzi, identifikatsiya, ishonch fayllari, marshrutlar va bekor qilish jadvali. Ulardan birini o'tkazib yuborsangiz, ikkinchi mijoz birinchisining bir qismini jimgina meros oladi. Har bir mijoz uchun karta tuzing va birinchi klient ulanmasidan oldin uni to'ldiring.

Har bir mijozga to'liq resurs kartasini ajrating

Butun to'plamni birga band qiling: ommaviy port, tunnel quyi tarmog'i, konfiguratsiya yo'li, jurnal manzili, xizmat nusxasi nomi va qurilma. Ularni guruh sifatida nomlash — ishlaydigan faylning birinchi mijozning hovuzi yoki interfeysini hali ham saqlaydigan klassik nusxasini to'xtatadigan narsa. Qiymatlar misollar, band qilingan portlar emas, shuning uchun xost allaqachon nima ishlatishini tekshiring. Ishga tushgan xizmat to'liq mijoz bilan bir xil emas.

Kartani konfiguratsiya yonida saqlang va har safar qiymat o'zgarganda yangilang. Haqiqatdan uzoqlashadigan hujjat yo'qligidan yomonroq.

Ishonch materialini har bir mijozning ichida saqlang

Har bir mijoz uchun alohida chiqaruvchi organ chegarani o'ylab ko'rishni osonlashtiradi va imzo kalitini internetga qaragan xostdan uzoqda tutadi. Umumiy ildiz ham ishlashi mumkin, lekin umumiy anker ikki xizmatni bitta a'zolik domeniga aylantirmaydi. Har bir tinglovchi qaysi zanjirlarni qabul qilishini va qaysi klient identifikatsiyalariga ruxsat berishini hal qiling, so'ng ikkalasini ham yozing. Biror narsa ulanmaguncha sertifikatlarni zanjirdan sinov va xato yo'li bilan olib tashlamang.

Serverning o'z shaxsiy kaliti har bir mijoz uchun himoyalangan faylda bo'lishi kerak, konfiguratsiya bilan birga nusxalanadigan shablon katalogida emas.

Tarmoqlarni ham jarayonlar kabi ajrating

Ikki portdagi ikki jarayon ularni ajratmaguningizcha hali ham bitta xost va marshrutlash jadvalini baham ko'radi. Dizaynga ishonishdan oldin nima tinglayotganini tasdiqlang.

ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pem

Tinglovchi tekshiruvi qaysi jarayon har bir ommaviy portga egaligini ko'rsatadi, tekshiruv esa klient sertifikati mo'ljallangan ankerga zanjirlanadimi-yo'qmi ko'rsatadi. Hech bir chiqish A klienti B quyi tarmog'iga yeta olmasligini isbotlamaydi, shuning uchun manba va manzil siyosatini, qaytish marshrutlarini va ataylab umumiy bo'lgan har qanday xizmatni belgilang. Tarmoq nom fazolari yoki konteynerlar marshrutlash kontekstlarini ajratadi va tasodifiy aralashuvni kamaytiradi, lekin ular to'liq ijarachi chegarasi emas o'z-o'zidan. Tahdid modeli talab qilganda kuchliroq izolyatsiya mexanizmini tanlang.

Bekor qilishni topshirishdan oldin yetkazing

Bekor qilishning yetkazish yo'li bo'lmasa, sertifikat joylashtirish tugallangan emas. Joriy etishning bir qismi sifatida CRL chiqaruvchisi va amal qilish oynasini tekshiring.

openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-a

CRL tekshiruvi ro'yxat qachon chiqarilgani va qachon tugashini xabar qiladi, xizmat holati esa uni o'qiyotgan nusxa ishlayotganini tasdiqlaydi. Yangi hech narsa bekor qilinmasa ham chiqarish siyosatining jadvaliga ko'ra ro'yxatni yangilang, chunki muddati o'tgan CRL har bir klientni rad etishi mumkin. O'quvchilar qismiy yozuvga duch kelmasligi uchun to'liq faylni e'lon qiling va joylashtirishdan oldin imzoni tekshiring. Chiqarish, so'nggi nuqta ekspluatatsiyasi va foydalanishdan chiqarish kimga tegishli ekanini yozib qo'ying, shunda A mijozini o'chirish B ga xalal bermaydi.

So'ngra qabul juftini ishga tushiring: ruxsat etilgan klient o'z xizmatiga yetadi, A ning hisob ma'lumotlari esa B ning tinglovchisi tomonidan rad etiladi. Bu — chegara, sinov sifatida ifodalangan.

O'xshash maqolalar