Kontena tanpa Root: Panduan Lengkap untuk Menjalankan dan Menyelesaikan Masalah Kebenaran dalam Persekitaran Terhad

Kemaskini terakhir: 10/07/2026
Pengarang Ishak

Keselamatan kontena

Saya pasti ini pernah berlaku kepada anda: anda cuba memasang bekas untuk kegunaan peribadi, anda mahu menjadikannya lebih selamat digunakan kontena yang tidak bernasib baik Dan tiba-tiba, anda mendapati diri anda terperangkap dalam labirin ralat kebenaran. Sungguh mengecewakan apabila menghabiskan berjam-jam mengkonfigurasi folder dalam direktori utama pengguna hanya untuk mendapati bahawa bekas tersebut tidak boleh menulis kepada mereka, atau apabila ia berlaku, fail yang terhasil pada hos rosak. mustahil untuk diuruskan kerana ia milik pengguna hantu.

Realitinya ialah, walaupun pengkontenaan telah mempercepatkan penghantaran perisian, ia telah membuka pintu kepada risiko yang besar. Menurut data terkini, sebahagian besar imej pengeluaran membawa [tidak jelas - mungkin "tidak jelas" atau "tidak jelas"] kelemahan kritikalIni menjadikan keselamatan sebagai tonggak yang tidak boleh dirundingkan. Ia bukan sekadar menghalang penggodam daripada menyerang kita, tetapi juga memahami cara sistem berfungsi. proses pengasingan supaya infrastruktur kita tidak menjadi penapis.

Kontena tanpa root: cara menjalankan dan menyelesaikan masalah kebenaran dalam persekitaran terhad
Artikel berkaitan:
Kontena tanpa root: panduan lengkap untuk menjalankan dan menyelesaikan masalah kebenaran dalam persekitaran terhad

Memahami ekosistem keselamatan kontena

Untuk berhenti meneka dengan kebenaran, pertama sekali kita perlu tahu apa yang kita lindungi. Seni bina kontena dibahagikan kepada beberapa lapisan kritikal. Pertama, kita mempunyai imej bekas ituyang merupakan pelan tindakan asal; jika ini terdedah, semua tika yang anda gunakan akan menjadi tidak selamat. Itulah sebabnya penting untuk digunakan imej asas yang dipercayai dan sentiasa memaklumkan mereka tentang perkembangan terkini.

Kemudian masa jalanyang bertindak sebagai penentu antara sistem pengendalian hos dan aplikasi. Jika masa jalan sudah ketinggalan zaman, risiko kontena melarikan diri meningkat secara mendadak. Untuk ini kita mesti menambah orkestrasi, seperti Kubernetes, di mana kawalan akses berasaskan peranan (RBAC) Ia adalah satu-satunya penghalang sebenar terhadap akses tanpa kebenaran kepada API pengurusan.

Kita tidak boleh melupakan sistem pengendalian hosJika penyerang berjaya menjejaskan kernel hos, mereka memegang kunci kepada keseluruhan domain. Cadangan di sini adalah jelas: gunakan sistem pengendalian minimum untuk mengurangkan permukaan serangan. Akhir sekali, rangkaian merupakan titik masuk yang paling biasa; hampir 30% pelanggaran berlaku disebabkan oleh kegagalan sambungan, jadi segmentasi rangkaian dan penyulitan TLS/SSL Mereka wajib.

Bekas dengan Podman
Artikel berkaitan:
Bekas dengan Podman: panduan lengkap untuk pod dan isipadu

Sakit kepala kebenaran dan pengguna root

Masalah biasa bagi penggemar hobi ialah aliran kerja dengan volume. Anda mencipta folder, memasangnya, dan kemudian, boom!, ralat berlaku. kebenaran ditolakIni berlaku kerana, secara lalai, banyak bekas bermula sebagai root. Apabila anda cuba memaksa UID dan GID pada 0 Untuk memadankannya dengan pengguna hos anda, anda sedang mencipta jambatan yang berbahaya. Jika bekas tidak membenarkan anda mengkonfigurasi ID ini, anda akan membuang masa untuk cuba mengetahui pengguna dalaman yang digunakan oleh aplikasi untuk melakukan chown Buku panduan.

  Apakah simulator Velxio dan bagaimana ia merevolusikan emulasi Arduino, ESP32 dan Raspberry Pi?

Penyelesaian yang cekap adalah dengan mengaplikasikan prinsip keistimewaan yang paling sedikitAnda tidak sepatutnya menjalankan apa-apa sebagai root melainkan benar-benar perlu. Untuk menyelesaikan masalah fail yang dicipta oleh kontena yang tidak boleh anda padamkan pada hos, adalah penting untuk mengkonfigurasi Dockerfile dengan arahan berikut: PENGGUNA, mentakrifkan pengguna tanpa keistimewaan sebelum aplikasi bermula.

Jika anda menggunakan Podman, konsep bekas tanpa akar Ia asli dan sangat membantu, tetapi ia memerlukan anda memahami bagaimana pengguna hos dipetakan kepada pengguna kontena. Untuk mengelakkan kebenaran daripada menjadi di luar kawalan, idealnya aplikasi harus direka bentuk untuk menulis ke laluan tertentu dan pemetaan isipadu Ia dilakukan dengan mempertimbangkan UID sebenar pengguna yang melancarkan proses tersebut.

Strategi untuk membina imej berperisai

Jika anda ingin menghentikan penderitaan, anda perlu mengubah cara anda membina imej anda. Satu teknik yang sangat berkesan ialah... binaan berbilang peringkatPada asasnya, anda menggunakan imej kelas berat dengan semua alat binaan untuk menjana binari, dan kemudian anda hanya menyalin fail itu ke imej akhir. sangat ringan.

Kontena tanpa root: cara menjalankan dan menyelesaikan masalah kebenaran dalam persekitaran terhad
Artikel berkaitan:
Menguasai kontena tanpa root: panduan lengkap untuk kebenaran dan keselamatan

Anda juga boleh pergi lebih jauh menggunakan imej tersebut menggaruIni mewujudkan sebuah bekas yang langsung tidak mempunyai apa-apa: tiada shell, tiada pengurus pakej, hanya aplikasi anda. Ini menjadikannya hampir mustahil bagi penyerang untuk melaksanakan arahan berniat jahat jika mereka berjaya masuk, memandangkan Tiada penterjemah arahan didapati.

Satu lagi langkah keselamatan adalah membersihkan imej mana-mana binari dengan kebenaran setuid atau setgidKebenaran ini membenarkan fail dilaksanakan dengan keistimewaan pemilik fail dan bukan pengguna yang melancarkannya, yang merupakan jalan raya untuk... peningkatan keistimewaanArahan mudah untuk mencari dan mengalih keluar bit-bit ini semasa pembinaan imej boleh menjimatkan banyak masalah.

  Apakah fail LST? Untuk apa dan bagaimana untuk membukanya

Bahaya mod istimewa dan keupayaan Linux

Kadangkala, kerana terdesak kerana tidak dapat menyelesaikan masalah kebenaran, kita terjerumus ke dalam godaan untuk menggunakan bendera tersebut –berkeistimewaanLupakan tentang perkara itu. Mod keistimewaan memecahkan pengasingan kontena dan memberi anda akses penuh kepada peranti hos. Ia seperti memberikan kunci rumah anda kepada orang yang tidak dikenali hanya kerana mereka tidak tahu cara membuka pintu pagar taman.

Sebaliknya, anda harus bermain dengan Keupayaan LinuxDocker memberikan satu set kebenaran lalai (seperti CAP_CHOWN atau CAP_NET_RAW). Jika aplikasi anda tidak perlu memanipulasi rangkaian pada tahap rendah, pendekatan paling bijak ialah menghapuskan keupayaan yang tidak perlu dan hanya tambah yang dikehendaki oleh --cap-add.

Bagi mereka yang menguruskan persekitaran yang lebih serius, terdapat pemalam kebenaran seperti opa-docker-authz. Ini membolehkan memintas panggilan ke API daemon Docker dan menyekat sebarang percubaan untuk melancarkan kontena dalam mod istimewa, memastikan tiada sesiapa, walaupun secara tidak sengaja, meninggalkan pintu terbuka kepada hos.

Pengoptimuman dan penyelenggaraan persekitaran

Jangan terlalu memikirkan saiz imej 5MB apabila menggunakan Alpine Linux jika ia menyebabkan masalah keserasian dengan pustaka. Kadangkala imej Debian yang sedikit lebih besar adalah lebih baik. stabil dan diketahui oleh pasukan. Apa yang penting ialah melaksanakan pengimbasan kerentanan Saluran paip CI/CD automatik untuk mengesan CVE sebelum imej mencapai pengeluaran.

Berkenaan storan, ia menghalang aplikasi daripada menulis ke sistem fail root. Konfigurasikan sistem fail baca sahaja (rootfs) dan mentakrifkan isipadu tertentu hanya untuk data yang perlu dikekalkan. Ini bukan sahaja lebih selamat, tetapi ia juga memaksa seni bina yang lebih bersih dan tanpa hartamemudahkan penskalaan mendatar.

Untuk proses yang dijadualkan, jangan letakkan cron job di dalam bekas laman web. Peraturan utama ialah satu proses setiap bekasPendekatan paling bersih adalah dengan menggunakan imej aplikasi anda untuk melancarkan bekas sementara yang melaksanakan tugas dan kemudian memusnahkan dirinya sendiri, atau untuk mengurus cron daripada hos dengan memanggil enjin bekas menggunakan arahan.

  Apakah itu Fail TXZ? Untuk apa dan bagaimana untuk membukanya

Keselamatan kontena merupakan proses berterusan yang melibatkan penghapusan akses root, penyekatan keupayaan kernel dan penghapusan alatan yang tidak diperlukan daripada imej kontena. Dengan menggabungkan pengguna yang tidak berkemampuan dengan pengerasan masa jalan dan pemantauan berterusan, persekitaran dicapai di mana fungsi tidak menjejaskan integriti sistem hos.

Mencipta Bekas Ringan dengan Podman di Linux
Artikel berkaitan:
Bekas Ringan dengan Podman di Linux: Panduan Praktikal