So‘rov tunnel IP manziliga keladi va xuddi shu konteynerdan qo‘shni xizmat manziliga chiqadi. Bu ikki lahza orasida DNAT manzilni qayta yozdi va paket VPN konteyneri uchun kirish bo‘lishdan to‘xtadi. Endi u boshqa qoida bilan baholanadigan yo‘naltirilgan trafik. Bu o‘zgarish tunnel manzili uchun to‘g‘ri ko‘rinadigan firewall qoidasi tarjima qilingan ulanishga nima uchun ta’sir qilmasligini tushuntiradi.

Tarjimadan keyin paketni kuzatib boring

10.90.0.0/24 mijozlar hovuzini va 10.90.0.1 tunnel manzilini oling. Bitta ko‘prikda ikkita konteyner bor: 192.0.2.2 VPN ni, 192.0.2.3 esa ilovani ishga tushiradi. Mijoz 10.90.0.1:8080 ga ulanadi va VPN konteynerining nom maydonidagi DNAT qoidasi uni ilovaning haqiqiy manzili va portiga qayta yozadi. Keyin marshrut paketni ko‘prik orqali yuboradi. Bu manzillar misol uchun, joylashtirish retsepti emas.

Ilova haqiqatda tinglaydigan port hostda e’lon qilingan har qanday portdan farq qilishi mumkin. Ikki raqam mos keladi deb o‘ylash o‘rniga konteyner ichidagi tinglovchini o‘qing.

Ruxsat yo‘naltirish yo‘liga tegishli

VPN konteyneriga IP yo‘naltirish va mijozlar hovuzi, ilova manzili hamda ko‘zda tutilgan port bilan cheklangan yo‘naltirish qarori kerak. O‘rnatilgan javoblar o‘z ruxsatini talab qiladi. Asl tunnel manziliga mos keladigan qoida DNAT dan keyin mos kelmaydi, chunki manzil allaqachon o‘zgargan. INPUT ruxsati endi bu hostga manzillanmagan trafik uchun noto‘g‘ri ilgak.

Qamrovni tor tuting: bitta manba diapazoni, bitta manzil, bitta xizmat. Erkin yo‘naltirish qoidasini yozish oson, keyin himoya qilish ancha qiyin.

docker exec vpn-container ip route get 192.0.2.3
docker exec vpn-container iptables -t nat -S
docker exec vpn-container iptables -S FORWARD

Docker zanjirlari sizning konteyneringiz zanjirlari emas

Konteyner nom maydoni ichidagi qoidalar Docker hostining qoidalari emas. Trafik tunnel interfeysidan ko‘prikka o‘tganda, hostning ko‘prik firewalli boshqa qaror qabul qilishi mumkin. Docker ning iptables backendi bilan hujjatlashtirilgan yo‘naltirish zanjirlari va DNAT dan keyingi moslik nuqtalari shu qaror ko‘rinadigan joy.

Docker firewall ma’lumotnomasi o‘sha zanjirlarni va DNAT dan keyingi moslikni tavsiflaydi. Yetishmayotgan ruxsatni Docker ning firewall boshqaruvini o‘chirish yoki har bir zanjirni erkin qilish bilan tuzatmang, chunki bu siz foydalanmoqchi bo‘lgan chegarani olib tashlaydi.

Qaytish yo‘lini ataylab qilingan tanlovga aylantiring

Agar manba manzili saqlansa, ilova 10.90.0.x ni ko‘radi va javoblarni VPN konteyneri orqali qaytarishi kerak. Aks holda uning oddiy Docker shlyuzi ularni tunnelga ega bo‘lmagan hostga yuboradi. Muqobil — VPN konteynerida tor cheklangan manba tarjimasi; u javobni soddalashtiradi, lekin mijozni ilovadan yashiradi. Ataylab tanlang va qaysi birini tanlaganingizni yozib qo‘ying.

Oddiy mijozdan yangi ruxsat etilgan ulanishni sinab ko‘ring, so‘ng aloqasiz portlar yopiq qolishini tasdiqlang. Paket yo‘qolganda, VPN nom maydonini, ilova nom maydonini va ilovaning o‘z jurnalini ko‘rib chiqing. Ko‘prik shlyuziga ping xizmat uchun qabul sinovi emas.

Qoidalarni konteynerning qo‘llab-quvvatlanadigan ishga tushish konfiguratsiyasida saqlang, chunki interaktiv o‘zgarishlar u qayta yaratilganda yo‘qoladi. Host portini e’lon qilish boshqa ta’sir yo‘li va xizmat tunnel orqali yetib borishi sababli-gina kerak emas.

O'xshash maqolalar