VPN konteyneri ichidagi veb-interfeysga yetib borish: port egasini tanlang
Ilova VPN nom maydonini baham ko‘radi, shuning uchun port VPN konteyneriga tegishli. Tinglovchini to‘g‘ri bog‘lang, eganing o‘zida e’lon qiling va yo‘lni tor tuting.
Ilovada hech qanday muammo yo‘q va tunnelda ham hech qanday muammo yo‘q, ammo boshqaruv paneli yuklanmayapti. Xizmat network_mode: service:vpn bilan ishlaganda, u VPN konteynerining tarmoq nom maydonini baham ko‘radi, ya’ni uning tinglovchisi va e’lon qilingan portlari xizmatga emas, o‘sha nom maydoniga tegishli. Bundan uchta qaror kelib chiqadi: ilova qayerga bog‘lanadi, qaysi konteyner portni e’lon qiladi va boshqaruv yo‘li qanchalik tor. Ularni noto‘g‘ri tartibda bajarsangiz, har bir alohida sozlama to‘g‘ri ko‘rinadi, ammo birikma ishlay olmaydi.
Port nom maydoni kimga tegishli
Umumiy nom maydonida bog‘liq xizmatga ports: yozuvini qo‘shish foydali hech narsa bermaydi va bir nechta tarmoq parametrlari dizayn bo‘yicha u uchun qo‘llab-quvvatlanmaydi. Buning o‘rniga nom maydoniga ega konteynerda e’lon qiling. O‘sha konteyner hostda manzili ko‘rinadigan konteyner hamdir, shuning uchun xaritalash har bir xizmat uchun bittadan emas, bitta yozuv sifatida o‘qiladi.
services:
vpn:
image: vpn-client-image
cap_add: [NET_ADMIN]
ports:
- "127.0.0.1:8080:8080"
app:
network_mode: "service:vpn"
Xaritalashning chap tomonidagi manzilga e’tibor bering. 127.0.0.1 ga bog‘lash e’lon qilingan portni hostning loopback interfeysida saqlaydi, bu odatda boshqaruv interfeysi xohlaydigan narsa. 0.0.0.0 ga bog‘lash uni hostning har bir interfeysida ochadi va bu qulaylik emas, boshqa xavfsizlik qarori.
Ilovani nom maydoni kutgan joyda tinglashga majbur qiling
Nom maydoni ichida 127.0.0.1 ga bog‘langan tinglovchiga faqat o‘sha nom maydoni ichidan yetib borish mumkin. E’lon qilingan host portlari tashqaridan keladi, shuning uchun xaritalash ishlashi uchun ilova kengroq manzilni bog‘lashi kerak. Bu ko‘pchilik serverlarda bir qatorli o‘zgarish va konteynersiz o‘rnatish uchun yozilgan mustahkamlash qo‘llanmasini ko‘chirgandan keyin odamlar tashlab ketadigan qadam ham shu.
docker compose exec app ss -lntp
docker port vpn
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/
Ilova ichidagi tinglovchilar ro‘yxati bog‘lash manzili haqida haqiqatni aytadi va docker port egasi aslida nima e’lon qilganini ko‘rsatadi. Agar birinchisi 127.0.0.1 ko‘rsatsa va ikkinchisi hostdagi xaritalashni ko‘rsatsa, siz VPN konfiguratsiyasiga tegmasdan nomuvofiqlikni topdingiz.
Boshqaruv yo‘li qanday kirishini tanlang
Uchta oqilona tartib bor. VPN konteynerida e’lon qiling va unga hostdan yoki mahalliy tarmoqdan yetib boring. Nom maydoni oldiga teskari proksi qo‘ying va proksiga yagona ochiq portni bering. Yoki panelni faqat nom maydoni ichidan exec sessiyasi yoki SSH tunnel orqali ochiq saqlang, bu eng kam ochiqlik va eng kam qulaylik.
Qaysi biri mos kelishi interfeys kimga va qayerdan kerakligiga bog‘liq. O‘sha hostdagi yagona administratorga loopback bog‘lanish kifoya. VPN orqali yetib boradigan jamoaga puxta o‘ylangan yo‘l va nomlangan ega kerak. Proksi variantini tanlash sizga TLS va kirish jurnallarini beradi, evaziga yangilab turilishi kerak bo‘lgan yana bir komponent qo‘shiladi.
Hamma narsani ochmasdan boshqaruv portini oching
VPN mijozi o‘zining mahalliy kirish yoki qulflash siyosati bilan kiruvchi boshqaruv so‘rovini tashlab yuborishi mumkin, hatto chiquvchi tunnel mukammal ishlayotgan bo‘lsa ham. Mo‘ljallangan manba va port uchun bitta hujjatlashtirilgan istisnoga ruxsat bering, so‘ng tunnelning odatiy himoyasi o‘zgarmaganini tasdiqlang. Panel yuklanishi uchun favqulodda kalitni o‘chirish haqiqiy nazoratni brauzer yorlig‘iga almashtirishdir.
Ilovaning o‘z autentifikatsiyasini yoqilgan holda qoldiring. VPN ga ulangan stek ichida bo‘lish har bir mahalliy foydalanuvchiga yoki hostga yetib boradigan har bir qurilmaga huquq bermaydi, tunnel ortidagi autentifikatsiyasiz admin panel ham autentifikatsiyasiz admin panel bo‘lib qoladi.
Boshqaruv qurilmasidan tekshiring, keyin yana bir bor tekshiring
Xizmatni haqiqatda boshqaradigan mashinadan sinab ko‘ring, hostdan emas, so‘ng ilova talab qiladigan internet yo‘lini alohida tekshiring. Boshqaruvdagi muvaffaqiyat bir yo‘nalishni isbotlaydi va chiqish haqida hech narsa demaydi.
Stek qayta yaratilgandan keyin yana sinab ko‘ring. Almashtirilgan tarmoq egasi ilova ulanadigan nom maydonini o‘zgartiradi va yangilanishdan oldin ishlagan URL keyin hech qayerga ishora qilmasligi mumkin. E’lon qilingan xaritalashni va bog‘lash manzilini yozib qo‘ying, shunda keyingi qayta qurish qayta tekshiruv emas, ikki daqiqalik tekshiruv bo‘ladi.