GNU/Linux >> Belajar Linux >  >> Ubuntu

Keistimewaan Docker - Haruskah Anda Menjalankan Wadah Docker Istimewa?

Pendahuluan

Hak istimewa buruh pelabuhan adalah salah satu dari banyak fitur yang berguna dari platform virtualisasi yang kuat ini. Sebelum Anda mulai bekerja dalam mode istimewa, pastikan Anda memahami cara kerjanya.

Dalam tutorial ini, Anda akan mempelajari apa itu wadah Docker istimewa, kapan menggunakannya, dan apakah itu pilihan yang baik untuk Anda.

Apa itu Mode Istimewa Docker?

Mode istimewa Docker memberikan kemampuan root container Docker ke semua perangkat di sistem host. Menjalankan wadah dalam mode istimewa memberinya kemampuan mesin host-nya. Misalnya, memungkinkannya untuk mengubah konfigurasi App Arm dan SELinux.

Dengan fitur kernel host dan akses perangkat, Anda bahkan dapat menginstal instance baru dari platform Docker di dalam wadah yang diistimewakan. Pada dasarnya, mode ini memungkinkan menjalankan Docker di dalam Docker.

Bagaimana Cara Memeriksa Apakah Kontainer Diistimewakan?

Untuk memeriksa apakah Anda menjalankan wadah dalam mode istimewa, gunakan perintah:

docker inspect --format='{{.HostConfig.Privileged}}' [container_id]

Jika wadah diistimewakan, output merespons dengan true , seperti pada gambar di bawah ini.

Di sisi lain, jika wadah tidak memiliki hak istimewa, output menampilkan pesan false .

Bagaimana Cara Menjalankan Mode Istimewa Docker?

Perintahkan Docker untuk menjalankan wadah dalam mode istimewa dengan menambahkan --privileged opsi untuk menjalankan perintah:

sudo docker run --privileged [image_name]

Contoh Keistimewaan Docker

Untuk menjalankan wadah Ubuntu (interaktif) dalam mode istimewa, Anda akan menggunakan:

sudo docker run -it --privileged ubuntu

Untuk menguji apakah penampung memiliki akses ke host, Anda dapat mencoba membuat sistem file sementara (tmpfs ) dan pasang ke /mnt :

mount -t tmpfs none /mnt

Sekarang, buat daftar statistik ruang disk (dalam dapat dibaca manusia format) dengan perintah:

df -h

Sistem file yang baru dibuat akan muncul pada daftar, seperti pada gambar di bawah ini.

Mengapa Menjalankan Penampung yang Diistimewakan Tidak Aman?

Sama seperti Ubuntu yang tidak menganjurkan menggunakan sistem sebagai root, begitu juga Docker. Mengekspos kernel dan sumber daya perangkat keras host ke serangan siber luar selalu merupakan ancaman potensial bagi sistem.

Karena alasan ini, tidak disarankan untuk menggunakan wadah khusus dalam lingkungan produksi.

Kemungkinan Pelanggaran Melalui Wadah Istimewa

Memiliki wadah istimewa adalah risiko keamanan bagi organisasi mana pun. Ini menciptakan peluang bagi pengguna jahat untuk mengendalikan sistem.

Mengizinkan akses root wadah ke semua yang ada di sistem membuka jendela peluang untuk serangan siber. Penyerang siber dapat terhubung ke host dari wadah dan membahayakan infrastruktur dan konfigurasi yang sudah ada.

Skenario yang paling umum adalah ketika pengguna yang sah menyalahgunakan hak istimewa yang diberikan untuk aktivitas jahat.

Bagaimana Meminimalkan Eskalasi Hak Istimewa Kontainer Docker?

Cara terbaik untuk mencegah eskalasi hak istimewa container Docker adalah dengan tidak menggunakan container yang diistimewakan sama sekali.

Namun, jika Anda menjalankan aplikasi yang memerlukan eksekusi dengan pengguna root, ada cara untuk meminimalkan kemungkinan aktivitas jahat. Ini dilakukan dengan pemetaan ulang ruang nama pengguna , memetakan ulang pengguna untuk wadah khusus tersebut ke pengguna yang kurang memiliki hak istimewa di host Docker. Pada dasarnya, container memandang pengguna sebagai root, sedangkan host tidak.

Pemetaan ulang mencakup penetapan rentang UID yang berfungsi di dalam wadah (ruang nama) sebagai UID normal dari 0 hingga 65536 namun tidak memiliki hak istimewa pada host. Dua file mengelola konfigurasi pengguna – satu untuk rentang ID pengguna (/etc/subuid ) dan yang lainnya untuk rentang ID grup (/etc/subgid ).

Secara default, buruh pelabuhan menggunakan dockremap pengguna dan grup untuk membuat pemetaan ulang.


Ubuntu
  1. 5 alasan mengapa Anda harus mengembangkan strategi wadah Linux

  2. Haruskah Anda Menjalankan Database di Docker?

  3. Pengantar Kontainer Docker

  1. Cara Menginstal Docker dan Menjalankan Wadah Docker di Ubuntu

  2. 10 Perintah Mematikan yang Tidak Boleh Anda Jalankan di Linux

  3. Jalankan Docker sebagai pengguna non-root

  1. Cara Berbagi Data Antar Wadah Docker

  2. Cara Mengganti Entrypoint Menggunakan Docker Run

  3. Portainer:Gui yang mudah digunakan untuk menjalankan dan mendapatkan wadah buruh pelabuhan