Apparmor Profile Generator untuk wadah Docker. Pada dasarnya profil apparmor yang lebih baik, daripada membuat satu dengan tangan, karena siapa yang akan melakukannya.
"Meninjau permintaan tarik profil apparmor adalah kutukan keberadaan saya"
Jess Frazelle

Daftar isi
Instalasi
Binari
Via go
Penggunaan
File globbing
File konfigurasi
Menginstal profil
Seperti apa profil yang dihasilkan?
Integrasi dengan Docker
Untuk instruksi instalasi dari binari, silakan kunjungi halaman rilis.
$ Go Get github.com/genuinetools/bane
$ BANE -HBANE -Generator Profil Apparmor Kustom untuk Docker ContainersUsage: Bane <command> Bendera: -D Aktifkan Debug Logging (Default: False) -Profile -Dir Direktori untuk Menyimpan Profil (default: /etc/apparmor.d/containers)) Perintah: Versi menunjukkan informasi versi.
sampel.toml adalah konfigurasi sampel apparmor untuk nginx dalam wadah.
| Contoh Glob | Keterangan |
|---|---|
/dir/file | Cocokkan file tertentu |
/dir/* | Cocokkan file apa pun dalam direktori (termasuk file dot) |
/dir/a* | Cocokkan file apa pun di direktori yang dimulai dengan a |
/dir/*.png | Cocokkan file apa pun di Direktori yang diakhiri dengan .png |
/dir/[^.]* | Cocokkan file apa pun di direktori kecuali file dot |
/dir/ | Cocokkan direktori |
/dir/*/ | Cocokkan direktori di dalam /dir /Dir / |
/dir/a*/ | Cocokkan direktori di dalam / dir / mulai dengan a |
/dir/*a/ | Cocokkan direktori di dalam / dir / akhir dengan a |
/dir/** | Cocokkan file atau direktori apa pun di atau di bawah /DIR / |
/dir/**/ | Cocokkan direktori di atau di bawah /DIR / |
/dir/**[^/] | Cocokkan file apa pun di atau di bawah /DIR / |
/dir{,1,2}/** | Cocokkan file atau direktori apa pun di atau di bawah /dir /, /dir1 /, dan /dir2 / |
Sekarang kami memiliki file konfigurasi dari atas mari kita instal. bane akan secara otomatis menginstal profil di direktori /etc/apparmor.d/containers/ dan menjalankan apparmor_parser .
$ sudo bane sample.toml# profil yang diinstal berhasil Anda sekarang dapat menjalankan profil dengan# `Docker run --security-opt =" apparmor: docker-nginx-sampel "`# Sekarang mari kita jalankan nginx $ docker run -d-Security -Opt = "Apparmor: Docker-nginx-sampel" -p 80:80 nginx
Menggunakan profil apparmor khusus tidak pernah semudah ini!
Sekarang mari kita coba lakukan aktivitas berbahaya dengan profil sampel:
$ Docker Run --Security-OPT = "Apparmor: Docker-nginx-sampel" -p 80:80 --RM -It Nginx Bashroot@6DA5A2A930B9: ~# ping 8.8.8.8ping: Kurangnya hak istimewa untuk socket.root@6da5a2a930b9 :/# topbash:/usr/bin/top: izin deniedroot@6da5a2a930b9:~# touch ~/thingtouch: cannot touch 'thing': Permission deniedroot@6da5a2a930b9:/# shbash: /bin/sh: Permission deniedroot@6da5a2a930b9:/# dashbash: /bin/dash: Permission denied
Contoh output dmesg saat menggunakan LogOnWritePaths :
[ 1964.142128] type=1400 audit(1444369315.090:38): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="docker-nginx" pid=3945 comm="apparmor_parser" [ 1966.620327] type=1400 audit(1444369317.570:39): apparmor="AUDIT" operation="open" profile="docker-nginx" name="/1" pid=3985 comm="nginx" requested_mask="c" fsuid=0 ouid=0 [ 1966.624381] type=1400 audit(1444369317.574:40): apparmor="AUDIT" operation="mkdir" profile="docker-nginx" name="/var/cache/nginx/client_temp/" pid=3985 comm="nginx" requested_mask="c" fsuid=0 ouid=0 [ 1966.624446] type=1400 audit(1444369317.574:41): apparmor="AUDIT" operation="chown" profile="docker-nginx" name="/var/cache/nginx/client_temp/" pid=3985 comm="nginx" requested_mask="w" fsuid=0 ouid=0 [ 1966.624463] type=1400 audit(1444369317.574:42): apparmor="AUDIT" operation="mkdir" profile="docker-nginx" name="/var/cache/nginx/proxy_temp/" pid=3985 comm="nginx" requested_mask="c" fsuid=0 ouid=0 [ 1966.624494] type=1400 audit(1444369317.574:43): apparmor="AUDIT" operation="chown" profile="docker-nginx" name="/var/cache/nginx/proxy_temp/" pid=3985 comm="nginx" requested_mask="w" fsuid=0 ouid=0 [ 1966.624507] type=1400 audit(1444369317.574:44): apparmor="AUDIT" operation="mkdir" profile="docker-nginx" name="/var/cache/nginx/fastcgi_temp/" pid=3985 comm="nginx" requested_mask="c" fsuid=0 ouid=0 [ 1966.624534] type=1400 audit(1444369317.574:45): apparmor="AUDIT" operation="chown" profile="docker-nginx" name="/var/cache/nginx/fastcgi_temp/" pid=3985 comm="nginx" requested_mask="w" fsuid=0 ouid=0 [ 1966.624546] type=1400 audit(1444369317.574:46): apparmor="AUDIT" operation="mkdir" profile="docker-nginx" name="/var/cache/nginx/uwsgi_temp/" pid=3985 comm="nginx" requested_mask="c" fsuid=0 ouid=0 [ 1966.624582] type=1400 audit(1444369317.574:47): apparmor="AUDIT" operation="chown" profile="docker-nginx" name="/var/cache/nginx/uwsgi_temp/" pid=3985 comm="nginx" requested_mask="w" fsuid=0 ouid=0
Untuk sample.toml di atas. TOML Profil yang dihasilkan tersedia sebagai sampel Docker-Nginx.
Ini awalnya merupakan bukti konsep untuk apa yang diharapkan akan menjadi profil keamanan asli di mesin Docker. Untuk informasi lebih lanjut tentang ini, lihat Docker/Docker#17142.