Seperti yang saya lihat tentang LXC, ia menyimpan informasi kontainer dan (dengan backing store default) sistem file root di bawah / var / lib / lxc. Templat pembuatan kontainer juga cenderung menyimpan informasi distribusi dalam cache di / var / cache / lxc.
Jadi Umumnya akses ke root filesystem hanya diizinkan untuk admin kecuali ada kesalahan penggunaan atau konfigurasi profil pengguna saat membuat mereka.
Tetapi Pengembang Ubuntu mungkin sudah sampai pada titik ini dan mereka telah memberikan solusi yang aman dengan bantuan AppArmor.
LXC dikirimkan dengan profil Apparmor yang dimaksudkan untuk melindungi tuan rumah dari penyalahgunaan hak istimewa secara tidak sengaja di dalam wadah. Misalnya, wadah tidak akan dapat menulis ke /proc/sysrq-trigger
atau ke sebagian besar /sys
file.
Profil usr.bin.lxc-start dimasukkan dengan menjalankan lxc-start. Profil ini terutama mencegah lxc-mulai dari pemasangan sistem file baru di luar sistem file root wadah. Sebelum menjalankan init penampung, LXC meminta peralihan ke profil penampung. Secara default, profil ini adalah kebijakan lxc-container-default yang didefinisikan dalam /etc/apparmor.d/lxc/lxc-default
. Profil ini mencegah wadah mengakses banyak jalur berbahaya, dan dari pemasangan sebagian besar sistem file.
Jika Anda menemukan bahwa lxc-start gagal karena akses yang sah yang ditolak oleh kebijakan Apparmor-nya, Anda dapat menonaktifkan profil lxc-start dengan melakukan:
sudo apparmor_parser -R /etc/apparmor.d/usr.bin.lxc-start
sudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disabled/
Ini akan membuat lxc-start dijalankan tanpa dibatasi, tetapi terus membatasi wadah itu sendiri. Jika Anda juga ingin menonaktifkan kurungan wadah, maka selain menonaktifkan usr.bin.lxc-start
profil, Anda harus menambahkan:
lxc.aa_profile = unconfined
ke file konfigurasi wadah. Jika Anda ingin menjalankan wadah di profil khusus, Anda dapat membuat profil baru di bawah /etc/apparmor.d/lxc/
. Namanya harus dimulai dengan lxc- agar lxc-start diizinkan untuk beralih ke profil itu. Setelah membuat kebijakan, muat menggunakan:
sudo apparmor_parser -r /etc/apparmor.d/lxc-containers
Profil akan dimuat secara otomatis setelah reboot, karena bersumber dari file /etc/apparmor.d/lxc-containers
. Akhirnya, untuk membuat wadah CN menggunakan ini baru lxc-CN-profile
, tambahkan baris berikut ke file konfigurasinya:
lxc.aa_profile = lxc-CN-profile
lxc-execute
tidak memasukkan profil Apparmor, tetapi wadah yang ditimbulkannya akan terbatas.