Konteyner tunnelini ochmayotgan edi, shuning uchun imtiyozli bayroq qo’shildi va endi u ishlaydi. Bu ketma-ketlik hech bo’lmaganda bitta ruxsat yetishmayotganini tasdiqladi va qaysi biri ekani haqida hech narsa demaydi. Imtiyozli rejim tunnel interfeysiga kerak bo’lganidan ancha keng imkoniyatlar to’plami va qurilmalarga kirishni beradi.

Bayroq aslida nimani o’zgartiradi

Imtiyozli konteyner keng imkoniyatlar va xost qurilmalariga kirish oladi, bu tarmoq yo’li talab qilganidan ancha katta ruxsatdir. Aniq to’plamni afsona emas, bajarilish muhiti hujjatlashtiradi va Docker’ning konteynerlarni ishga tushirish hujjati mavjud imtiyoz variantlarini tavsiflaydi. Bir marta o’qish tunnel butunning kichik qismi ekanini ko’rish uchun yetarli.

Yana ikkita tor talab VPN konteynerlarining ko’pini qamrab oladi. Interfeysni sozlash tarmoq boshqaruvi imkoniyatini talab qiladi, tunnel qurilmasini ochish esa aynan o’sha qurilma tuguniga kirishni talab qiladi. Bular alohida ruxsatlar va ikkalasi birga ham umumiy variantdan tordir. Imtiyozli to’plamning qolgan qismining tunnel bilan hech qanday aloqasi yo’q. U haqiqatan xost darajasidagi kirishga muhtoj yuklamalar uchun mavjud va VPN konteyneri odatda ulardan biri emas.

Har bir xatoni bitta shart bilan bog’lang

Xato xabari uni bostirishdan oldin o’qisangiz, qaysi shart yetishmayotganini aytadi. Qurilma tuguni haqidagi xabar qurilmani nomlaydi, ruxsat etilmagan amal haqidagi xabar imkoniyatni nomlaydi, modul yoki sysctl haqidagi xabar esa yadro qo’llab-quvvatlashini nomlaydi. Ularning har birining tuzatishi boshqacha va faqat bittasi imkoniyatdir.

Yetishmayotgan konfiguratsiya fayli barcha imkoniyatlar berilgandan keyin ham yetishmaydi, shuning uchun imtiyozli rejim ba’zan hech narsani o’zgartirmaydi. Konteyner ishga tushadi, tunnel baribir muvaffaqiyatsiz bo’ladi va haqiqiy xato hech qachon ruxsatlar haqida bo’lmagan. Yadro qo’llab-quvvatlashi uchinchi holat va noto’g’ri o’qishga eng osonidir. Xostda yuklanmagan modulni imtiyozsiz konteyner ichidan yuklab bo’lmaydi va konteyner ichida ko’proq imkoniyat berish xost holatini o’zgartirmaydi.

Belgini emas, talabni tekshiring

Tasvir hujjatlashtirgan eng kam chaqiruvdan boshlang, uni ishga tushiring va muvaffaqiyatsizlikning aniq matnini saqlang. Keyin bir vaqtda bitta ruxsat qo’shing va qaysi qo’shimcha natijani o’zgartirganini qayd eting.

ls -l /dev/net/tun
docker run --rm --cap-add NET_ADMIN --device /dev/net/tun image:tag
ip -br link show type tun

Qurilmani ko’radigan va imkoniyatga ega bo’lgan, lekin baribir muvaffaqiyatsizlikka uchraydigan konteyner muammo boshqa joyda ekanini aytadi. Bu foydali natija va imtiyozli rejim uni yashirgan bo’lardi.

Xostdagi qurilma ruxsatlarini ham tekshiring, chunki to’g’ri berilgan qurilma tuguni noto’g’ri guruh egaligi bilan yetishmayotgan ruxsat bilan bir xil xatoni keltiradi.

Ishlaydigan eng tor ruxsatni yozib qo’ying

Joylashtirishga kerak bo’lgan har bir qurilma va imkoniyatni ularni oqlagan xato bilan birga yozing. Aynan shu yozuv keyingi odamga biror narsani xavfsiz olib tashlash imkonini beradi va konteyner imtiyozli deb e’lon qilinganda auditor ham shuni so’raydi.

Atrofdagi kontekstni ham ko’rib chiqing, chunki xost tarmog’i, xost ulanishlari va bajarilish muhiti variantlari har biri ruxsat ta’sirini kengaytirishi mumkin. Barchasini birlashtirgan alohida laboratoriya chaqiruvi, qanchalik yaxshi ishlamasin, ishlab chiqarish konfiguratsiyasi emas. Joylashtirishni tugallangan deb e’lon qilishdan oldin ilovani, uning DNS xulqini va tunnel muvaffaqiyatsizligini sinab ko’ring. Interfeys yaratish ruxsati chiqish siyosati emas va mukammal tunnel qila oladigan konteyner ham ilova yuboradigan hamma narsani yo’naltiradi.

O'xshash maqolalar