audit2allow
kemungkinan menghasilkan aturan untuk memungkinkan execheap
untuk container_t
proses jenis. Anda selalu dapat membuat modul terlebih dahulu dan memeriksanya, sebelum Anda memuatnya.
Masalah yang mungkin terjadi adalah, bahwa sekarang semua proses dengan container_t
tipe sekarang diizinkan untuk operasi yang sama. Untuk menghindari ini, Anda mungkin perlu membuat jenis khusus Anda sendiri (menggunakan container_t
sebagai templat) dan hanya mengizinkan execheap
jenis khusus ini.
Posting blog ini oleh Dan Walsh menjelaskan cara menulis kebijakan khusus tersebut. Anda juga dapat menggabungkan ini dengan audit2allow
untuk menghasilkan aturan yang sebenarnya. Langkah-langkah penting adalah:
Buat kebijakan wadah dasar, misalnya container_execheap
:
policy_module(container_execheap, 1.0)
virt_sandbox_domain_template(container_execheap_t)
virt_sandbox_domain_template
makro membuat tipe baru container_execheap_t
dan membuat aturan yang diperlukan untuk operasi buruh pelabuhan yang tipe baru dapat digunakan sebagai domain kontainer.
Kompilasi dan muat modul kebijakan (file pengembangan yang diperlukan, termasuk makefile, harus disediakan oleh selinux-policy-devel
paket):
make -f /usr/selinux/devel/Makefile container_execheap.pp
semodule -i container_execheap.pp
Tipe baru dapat dikonfigurasikan menjadi domain permisif:
semanage permissive -a container_execheap_t
Untuk domain permisif, penolakan AVC dicatat tetapi aturan tidak ditegakkan. Dengan cara ini, mudah untuk menghasilkan aturan yang hilang di kemudian hari audit2allow
.
Jalankan wadah Anda dalam konteks baru ini, sesuatu seperti docker run ... --security-opt label:type:container_execheap_t ...
Hasilkan kesalahan yang diharapkan. Kemudian jalankan audit2allow
untuk menghasilkan aturan yang memungkinkan operasi untuk container_execheap_t
. Anda dapat memperbarui .te
file modul yang sama (ingat untuk menambah nomor versi) dengan aturan baru. Kompilasi dan instal modul yang diperbarui.
Saat tidak ada lagi kesalahan yang terjadi, kembalikan jenis wadah khusus ke dalam mode penegakan semanage -d container_execheap
.