Bitta OpenVPN hab, uchta LAN: manzil rejasi va iroute fayllari
To'rtta bir-biriga qo'shilmaydigan prefiks, har bir filialga bitta yadro marshruti, har bir egaga bitta iroute. Nom xato bo'lsa jimgina ishdan chiqadigan uch saytli hab uchun ish tartibi.
Uchta xususiy LAN bitta habda, hech bir sayt boshqalarning ichki tuzilishini bilmasdan uchrashishi mumkin va butun dizayn to'rtta qisqa konfiguratsiya qaroriga tayanadi. Uni ishlatadigan narsa ekzotik protokol xususiyati emas, balki hech kim taxmin qilishi shart bo'lmagan manzil rejasi va qaysi filial qaysi prefiksga egaligini habga aytadigan mijozga xos marshrutlardir. Ulardan biri noto'g'ri bo'lsa ham tunnel baribir ko'tariladi va aynan shu narsa xatoni chalkashtiradi.
Qadamlarni tartib bilan bajaring. Har bir qadam oldingi qadam rejasiga bog'liq va ularning hech biri yangi sertifikat organini talab qilmaydi.
Hech kim taxmin qilishi shart bo'lmagan rejadan boshlang
Konfiguratsiya fayliga tegishdan oldin to'rtta bir-biriga qo'shilmaydigan prefiksni yozib qo'ying: habning o'z LANi, har bir filialning LANi va aylanib yuruvchi mijozlarga beriladigan pul. Qo'shilmaslik qolgan hamma narsani sodda tutadi, chunki ustma-ust tushadigan diapazonlar marshrutlashni eng uzun moslik jumboqiga aylantiradi, uni hech qanday mijozga xos konfiguratsiya tuzatmaydi. So'ngra har bir LAN uchun qaysi mashina standart shlyuz ekanini tasdiqlang, chunki o'z LANining shlyuzi bo'lmagan filial routeri masofaviy marshrutlarni butunlay boshqa joyga o'rnatishi kerak. Nihoyat, har bir filialni aniqlaydigan autentifikatsiyalangan nomlarni belgilang, chunki o'sha nomlar mijozga xos fayllar qidiriladigan kalitlardir.
Namunali reja pulni uchta LANdan ancha uzoqda saqlaydi. Sizniki boshqacha bo'ladi va yagona qat'iy qoida — hech qanday ikki diapazon ustma-ust tushmasligi.
Hub LAN 172.20.0.0/24
Branch A LAN 172.21.0.0/24
Branch B LAN 172.22.0.0/24
VPN pool 10.77.0.0/24
identity branch-a owns 172.21.0.0/24
identity branch-b owns 172.22.0.0/24Hab yadrosiga filiallar qayerda ekanini ayting
Habga har bir filial uchun ikki ma'lumot kerak: prefiksni tunnel qurilmasiga yuboradigan yadro marshruti, va iroute yozuvi, ya'ni qaysi mijoz unga ega ekanini OpenVPN jarayoniga aytadigan yozuv. Faqat yadro marshruti paketlarni tunnelga yetkazadi va shu yerda to'xtaydi, chunki demon hali qaysi peer ularni olishini hal qilishi kerak. Faqat iroute yozuvi bu paketlarni yadroda kuzatiladigan marshrutsiz qoldiradi. Ikkala satr ham demon haqiqatan yuklaydigan konfiguratsiyaga tegishli va buni boshqa narsani tuzatishdan oldin tekshirish kerak.
dev tun
topology subnet
server 10.77.0.0 255.255.255.0
disable-dco
route 172.21.0.0 255.255.255.0
push "route 172.20.0.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 172.22.0.0 255.255.255.0Yadro qoidalarni qo'llash nuqtasi bo'lishi kerak bo'lganda client-to-client o'chirilgan holda tursin. Bu parametr peerlar orasidagi trafikni demon ichida uzatadi, bu qulay va shu bilan birga sizning yo'naltirish qoidalaringiz oqimni hech qachon ko'rmasligini bildiradi. Quyidagi barcha fikrlar yadro filiallar orasidagi har bir paketni ko'radi deb hisoblaydi.
Har bir filialga kerakli marshrutlarni bering
Har bir filialga boshqa filiallarga va hab LANiga marshrutlar kerak, o'ziga ulangan LAN uchun esa marshrut kerak emas. Masofaviy prefikslarni har bir routerga yopishtirish o'rniga habdan suring, shunda to'rtinchi sayt keyinchalik to'rtta o'zgartirish o'rniga bitta yangi mijozga xos fayl bo'ladi. Mijozga xos fayl iroute satrini ham olib yuradi, bu egalik va e'lonni bir joyda saqlaydi. Katalogni va uning fayllarini serverning imtiyoz modeliga muvofiq o'qiladigan qiling, aks holda qidiruv xabarsiz muvaffaqiyatsiz tugaydi.
# /etc/openvpn/ccd/branch-a
iroute 172.21.0.0 255.255.255.0
push "route 172.22.0.0 255.255.255.0"To'rtinchi sayt ham xuddi shu namunaga amal qiladi: alohida autentifikatsiyalangan nom, egalik qilingan prefiks, habdagi yadro marshruti, iroute yozuvi va faqat unga yetishga ruxsat berilgan saytlarga e'lonlar.
Bajarildi deyishdan oldin ikki yo'nalishda ham sinab ko'ring
Uchala routerda IPv4 yo'naltirishni yoqing, so'ngra xavfsizlik devori mo'ljallangan oqimlarni ikki yo'nalishda ham ruxsat berishini tasdiqlang, chunki bir yo'nalishli sinov buzilgan qaytish yo'li bilan har kim kutganidan ko'proq o'tadi. Saytlar orasida manba manzilini o'girish talab qilinmaydi va asl manbani saqlash har bir filialga so'rovga o'z siyosatini qo'llash imkonini beradigan aynan shu narsadir.
Bitta filial LANidagi xostdan boshqasining xizmatigacha sinab ko'ring, so'ngra yo'nalishni teskari qiling, so'ngra filialdan hab LANiga sinab ko'ring. Bu uch natija turlicha dalillar va hech biri boshqalarini bildirmaydi. Agar filial routeri o'z LANining standart shlyuzi bo'lmasa, masofaviy prefikslarni haqiqiy shlyuzga o'rnating va tunnel mijozlari o'sha LANga ulanishlarni boshlashi kerak bo'lganda pulni ham qo'shing.
Reja, mijozga xos fayllar va xavfsizlik devori qoidalarini bitta hujjat sifatida yozib qo'ying, chunki keyingi sayt qo'shilishi ularga qarab baholanadi.
Dizayn bir butun bo'lib turadi, chunki har bir qatlamning bitta vazifasi bor: reja prefikslarni yagona saqlaydi, yadro marshruti paketlarni harakatlantiradi, iroute egasini nomlaydi va xavfsizlik devori nima ruxsat etilganini hal qiladi. Biror narsa buzilsa, o'sha ro'yxat tekshirish tartibi ham bo'ladi.