Bir xil turdagi xostdan ikkita nosozlik doimiy keladi. Birinchisida mijozlar autentifikatsiyadan o‘tadi va keyin tunnel tashqarisida hech narsaga yetib bormaydi. Ikkinchisida VPN ko‘tariladi va serverning o‘z veb-sayti javob berishni to‘xtatadi, bu esa yon zarar kabi ko‘ringani uchun yanada xavotirli. Konteynerga asoslangan VPSda ikkalasi ham odatda bir xil qisqa tekshiruv ro‘yxatiga qaytadi va tartib muhim: avval qurilma, ikkinchi tarjima, uchinchi qamrov.

Konteyner tun qurilmasini yarata olishiga ishonch hosil qiling

Tunnel interfeysi mavjud bo‘la olmasa, boshqa hech narsa muhim emas. /dev/net/tun borligini va sinov qurilmasini yaratish muvaffaqiyatli bo‘lishini tekshiring, chunki ko‘p provayderlar konteynerlar ichida tunnni sukut bo‘yicha o‘chiradi. Hech qachon yaratilmagan qurilmani hech qanday firewall ishi qoplamaydi.

Qurilma bo‘lmasa, uni faqat xost yoki provayder yoqishi mumkin. Boshqa tarif ko‘pincha bir hafta davom etadigan ochiq qo‘llab-quvvatlash mavzusidan arzonroq. Buni OpenVPN jurnalining bir satrini o‘qishdan oldin tasdiqlang. Aks holda kechani hech qachon paket ko‘rmaydigan qoidalarni sozlash bilan o‘tkazasiz.

Bu interfeysda MASQUERADE nima qilishini hal qiling

Oddiy virtual mashinada odatiy chiqish qoidasi asosiy interfeysdan POSTROUTING MASQUERADE bo‘ladi. OpenVZ konteynerida ko‘rinadigan qurilma ko‘pincha venet0, ya’ni xost tomonidan boshqariladigan virtual interfeys, marshrutlangan tarmoq kartasi emas, va MASQUERADE u yerda har doim o‘quv qo‘llanmalari taxmin qilganidek ishlamaydi.

Ishlaydigan shakl — mijozlar allaqachon yetib boradigan manzilga aniq tarjima, ikki tomonga ham uzatishga ruxsat berilgan. Server konfiguratsiyasidan poolni almashtirish manzilni almashtirish kabi muhim. Har bir satrni yopishtirishdan oldin o‘qing.

iptables -t nat -A POSTROUTING -o venet0 -s 10.8.0.0/24 -j SNAT --to-source 203.0.113.10
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Uzatish qoidalari bo‘lmasa ham tarjima sodir bo‘ladi va yadro uzatishdan bosh tortadi. Bu birikma NAT qoidasidagi hisoblagichlar oshib borayotganda mijoz hech narsa olmaydigan chalkash holatni yaratadi. Ikki FORWARD satri ham xuddi shu zanjirdagi har qanday keng drop qoidasidan oldin turishi kerak. Tartib konfiguratsiyaning bir qismi, joriy etish tafsiloti emas.

Qoidani bitta pool va bitta interfeys bilan cheklang

Ikkinchi alomatning sababi boshqacha: manba ham, chiqish ham cheklanmagan POSTROUTING qoidasi. Bunday qoida xostdan chiqadigan har bir paketni qayta yozadi.

Asl manbaga bog‘liq xizmatlar keyin noto‘g‘ri ishlaydi. Mahalliy proksi orqasidagi veb-server javob berishni to‘xtatishi mumkin va uni qayta ishga tushirish hech narsani o‘zgartirmaydi, chunki qoida hali ham yo‘lda. Xost o‘zining ommaviy manziliga yuboradigan trafik ham zarar ko‘radi, shuning uchun nosozlik firewall emas, DNS yoki sertifikat muammosi kabi ko‘rinishi mumkin. Qoida birinchi alomatni tuzatish uchun qo‘shilgan bo‘lishi deyarli aniq.

Yechim — moslikni tunnel pooli va chiqish interfeysiga toraytirish, so‘ng bir nechtasini qoplash uchun bitta qoidani kengaytirish o‘rniga har bir pool uchun bitta qoida qo‘shish.

Qoidalarni doimiy qiling va ularga yana kim egalik qilishini aniqlang

Qo‘lda qo‘shilgan qoidalar qayta yuklashda yo‘qoladi, shuning uchun ularni iptables-save bilan saqlang yoki o‘rnatilgan joyda netfilter-persistent orqali boshqaring. Tiklash OpenVPN boshlanishidan oldin ishlashini tasdiqlang. So‘ng hodisa paytida bo‘shliqni topish o‘rniga bir marta ataylab qayta yuklang.

Konteyner xostida doimiylik fayli yoziladigan konteyner xotirasida ekanini va provayder yuklashda filtrlashni almashtirmasligini ham tasdiqlang. Ba’zi platformalar siyosatni konteynerdan tashqarida boshqaradi, u yerda mahalliy qoidalar e’tiborsiz qoldiriladi yoki xostning o‘z qoidalari bilan to‘qnashadi.

Hisoblagichlar va bitta yozib olingan oqim bilan tekshiring

Ulangan mijozdan tashqi xizmat bildiradigan ommaviy manzilni tekshiring. Agar u server manziliga mos kelsa, tarjima ishlaydi; mos kelmasa, paket boshqa yo‘l bilan chiqadi yoki umuman chiqmaydi. So‘ng serverda joylashtirilgan xizmatni ham, ommaviy internetdagi xizmatni ham sinab ko‘ring, chunki ular bir xil qoidalar to‘plamidan turli yo‘llar bilan o‘tadi.

Serverda iptables -t nat -L -v -n bilan NAT va FORWARD qoidalaridagi paket hisoblagichlarini o‘qing va ushlashda bitta oqimni kuzating. Agar ushlashda mijoz manzili ko‘rinsa va javob kelmasa, bo‘shliq qaytish yo‘lida yoki provayder filtrlashida, mijoz profilida emas. Ushlangan manbani qoida tarjima qiladigan manzil bilan solishtiring, chunki nomuvofiqlik avval boshqa qoida mos kelganini bildiradi. Bitta kuzatilgan oqim bir sahifa konfiguratsiya o‘qishdan ko‘proq narsani hal qiladi.

Pool, tarjima qilingan manzil va interfeys nomini o‘zgarishlar yozuvida birga saqlang. Bir pool uchun to‘g‘ri qoida keyingisini noto‘g‘ri tarjima qiladi.

O'xshash maqolalar