Pertanyaan saya adalah tentang keamanan wadah LXC.
Jika saya menjalankan beberapa wadah di kotak saya, dan memberikan pengguna akses ssh terpisah ke wadah milik mereka, dapatkah salah satu dari wadah itu meretas ke dalam wadah lain di kotak itu atau bahkan mesin host?
Di mana batas keamanan kontainer lxc?
Jawaban:
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:
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: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:Profil akan dimuat secara otomatis setelah reboot, karena bersumber dari file
/etc/apparmor.d/lxc-containers
. Akhirnya, untuk membuat wadah CN menggunakan ini barulxc-CN-profile
, tambahkan baris berikut ke file konfigurasinya:lxc-execute
tidak memasukkan profil Apparmor, tetapi wadah yang ditimbulkannya akan terbatas.sumber
dmesg
dapat dipanggil dari wadah apa pun (setidaknya dalam konfigurasi default). Saya khawatir itu bukan satu-satunya risiko keamanan ...