AppArmor

Tutorial Debian AppArmor

Tutorial Debian AppArmor
AppArmor adalah sistem kawalan akses wajib untuk Linux. Dalam sistem kawalan akses mandatori (MAC), kernel mengenakan sekatan pada jalur, soket, port, dan pelbagai mekanisme input / output. Ia dikembangkan oleh Immunex dan sekarang dikendalikan oleh SUSE. Ini telah menjadi sebahagian daripada kernel Linux sejak versi 2.6.36.

Walaupun kernel Linux memberikan pengasingan pengguna yang baik dan kawalan kebenaran fail yang kuat, MAC seperti AppArmor memberikan kebenaran dan perlindungan yang lebih terperinci terhadap banyak ancaman yang tidak diketahui. Sekiranya kerentanan keselamatan dijumpai di kernel Linux atau daemon sistem lain, sistem AppArmor yang dikonfigurasikan dengan baik dapat menghalang akses ke jalur kritikal yang mungkin rentan terhadap masalah ini.

AppArmor dapat berfungsi dengan berkesan dalam dua mod - menegakkan dan mengadu. Enforce adalah status pengeluaran lalai AppArmor, sementara keluhan berguna untuk mengembangkan set peraturan berdasarkan pola operasi nyata dan untuk pelanggaran log. Ia dikonfigurasi melalui fail teks biasa dalam format yang agak mesra dan mempunyai keluk pembelajaran yang lebih pendek daripada kebanyakan sistem kawalan akses wajib yang lain.

Pemasangan

Untuk memasang AppArmor pada Debian, jalankan (sebagai root):

pasang apparmor apparmor-utils auditd

Anda mungkin menghilangkan auditd jika anda tidak memerlukan alat pembuatan profil.

Sekiranya anda ingin memasang profil pemula dan tambahan, jalankan:

apt pasang apparmor-profiles apparmor-profiles-extra

Oleh kerana AppArmor adalah modul kernel Linux, anda mesti mengaktifkannya dengan arahan berikut:

mkdir -p / etc / default / grub.d

Buat fail / etc / default / grub.d / apparmor.cfg dengan kandungan berikut:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 security = apparmor"

Simpan dan keluar, kemudian jalankan:

kemas kini-grub

Kemudian but semula.

Terdapat perdebatan jika ini harus dilakukan secara automatik. Anda mungkin ingin melihat akhir laporan bug ini untuk melihat apakah ini telah diubah sejak masa penulisan ini.

Sebaik sahaja anda but semula, anda boleh memeriksa untuk melihat apakah AppArmor diaktifkan dengan menjalankan:

status aa

Perintah ini akan menyenaraikan profil AppArmor yang dimuatkan dan menyenaraikan keadaan pematuhan semasa (dikuatkuasakan, mengadu, dll.)

Sekiranya anda menjalankan:

ps auxZ | grep -v '^ tidak terkawal'

Anda akan melihat senarai program yang dibatasi oleh profil AppArmor. Program terhad adalah program yang dipengaruhi dan dibatasi (baik secara pasif, dalam mod pengaduan, atau aktif dalam mod yang dipaksakan) oleh AppArmor.

Menukar Mod / Menyahdayakan AppArmor

Sekiranya anda ingin mematikan AppArmor kerana program tidak berfungsi, anda mungkin ingin mempertimbangkan untuk meletakkan profil dalam mod pengaduan dan bukannya mod yang dipaksakan. Untuk melakukan ini, jalankan (sebagai root, atau melalui sudo):

aa-mengeluh / jalan / ke / program

Contohnya, jika ping tidak berfungsi dengan betul, gunakan:

aa-mengeluh / usr / bin / ping

Setelah profil dalam mod mengeluh, anda boleh memeriksa pembalakan melalui / var / log / syslog atau dengan jurnal -l pada sistemd sistem (Debian 8.x, Jessie dan lebih tinggi).

Setelah anda mengedit profil untuk membuang atau menyesuaikan sekatan, anda boleh menghidupkan mod peneguhan semula untuk perduaan dengan:

aa-menegakkan / jalan / ke / program

Dalam contoh di atas, ganti / jalan / ke / atur cara dengan jalan penuh ke binari yang dipengaruhi oleh profil yang dimaksudkan.

Sekiranya anda mempunyai masalah dengan program dan dalam mod aduan, log akan memberikan maklumat khusus mengenai tindakan yang ditolak. Bidang operasi akan menerangkan apa yang cuba dilakukan oleh program, bidang profil profil tertentu yang terpengaruh, nama akan menentukan sasaran tindakan (i.e. fail apa yang dihentikan dari operasi baca atau tulis), dan topeng yang diminta dan ditolak menunjukkan jika operasi, baik yang diminta oleh program dan ditolak mengikut profil, dibaca atau dibaca-ditulis.

Anda boleh mematikan profil sepenuhnya dengan menjalankan:

aa-disable / path / to / program

Atau, anda boleh mematikan AppArmor sepenuhnya dengan menyunting fail: / etc / default / grub.d / apparmor.cfg mengandungi:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0"

Kemudian berjalan:

kemas kini-grub

Dan but semula sistem anda.

Bekerja dengan Profil AppArmor

Profil AppArmor berada di / etc / apparmor.d / direktori. Sekiranya anda memasang pakej apparmor-profiles dan apparmor-profiles-extra package, anda akan menemui profil di / usr / share / doc / apparmor-profiles dan / usr / share / doc / apparmor-profiles / extra. Untuk mengaktifkannya, salin fail ke / etc / apparmor.d kemudian edit untuk memastikannya mengandungi nilai yang anda mahukan, simpan, kemudian jalankan:

tambah nilai apparmor perkhidmatan

Sekiranya anda ingin memuatkan hanya satu profil, jalankan:

apparmor_parser -r / etc / apparmor.d / profil

Di mana "profil" adalah nama profil yang dimaksudkan.

Tidak disarankan untuk hanya menyalin profil dan profil tambahan ke dalam / etc / apparmor.d direktori tanpa mengeditnya secara manual. Beberapa profil mungkin lama dan yang lain pasti tidak mengandungi nilai yang anda mahukan. Sekiranya anda menyalin semuanya, sekurang-kurangnya tetapkan agar mereka mengeluh sehingga anda dapat memantau pelanggaran tanpa melanggar program dalam produksi:

cd / etc / apparmor.d
untuk f in *.*; buat aa-komplain / etc / apparmor.d / $ f; selesai

Anda boleh menggunakan perintah aa-force satu demi satu untuk mengaktifkan profil yang ingin anda simpan, sesuaikan yang menyebabkan masalah dan tegaskan, atau hapus profil yang tidak anda perlukan dengan menjalankan aa-disable atau mengeluarkan fail profil dari / etc / apparmor.d.

Membuat Profil AppArmor

Sebelum anda membuat profil tersuai, anda ingin mencari / etc / apparmor.d dan / usr / share / doc / apparmor-profiles direktori untuk profil yang ada yang merangkumi perduaan yang dimaksudkan. Untuk mencari ini, jalankan:

cari / usr / share / doc / apparmor-profiles | grep "program" -i

Ganti program dengan program yang ingin anda lindungi dengan AppArmor. Sekiranya anda menjumpainya, salin ke / etc / apparmor.d dan kemudian edit fail di editor teks kegemaran anda.

Setiap profil terdiri daripada tiga bahagian utama: merangkumi, kemampuan, dan jalan. Anda boleh mendapatkan rujukan yang berguna dalam dokumentasi SuSE.

Termasuk

Termasuk sintaks yang boleh anda gunakan di dalam fail. Mereka menggunakan sintaks C / C ++ #include <> dan biasanya merujuk abstraksi yang terdapat di / etc / apparmor.direktori d / abstraksi.

Kemampuan

Bahagian kemampuan, biasanya dijumpai setelah termasuk, menyenaraikan kemampuan khusus yang dapat dilaksanakan oleh program. Sebagai contoh, anda boleh membiarkan program menjalankan operasi setuid dengan:

keupayaan setuid

Keupayaan net_bind_service membolehkan program mengikat port rangkaian. Sekiranya anda tidak memberikannya, daemon pelayan seperti Apache tidak dapat membuka port 80 dan mendengar. Walau bagaimanapun, menghilangkan keupayaan ini dapat memberikan keselamatan yang sangat baik untuk proses yang tidak anda percayai di rangkaian.

Laluan

Anda boleh menyenaraikan jalan yang dapat dibaca oleh program (dan mungkin menulis). Sebagai contoh, jika anda ingin membenarkan program mengakses fail / etc / passwd, tambahkan:

/ etc / passwd r

Dalam profil. Perhatikan “r” - ini bermaksud baca sahaja. Sekiranya anda mengubahnya menjadi "w", penulisan ke jalan atau fail ini akan dibenarkan.

Walaupun anda membenarkan laluan di AppArmor, ia masih tertakluk kepada sekatan sistem fail Linux (i.e. set dengan chmod, chgrp, dan chown). Walau bagaimanapun, AppArmor masih akan memberikan lapisan perlindungan tambahan sekiranya mekanisme tersebut dikompromikan.

Kesimpulannya

Kunci untuk penerapan AppArmor yang berjaya adalah menetapkan profil untuk mengeluh, kemudian melaksanakannya. Pemeriksaan log dengan teliti akan memberi anda jalan dan kemampuan minimum yang diperlukan untuk kejayaan operasi program. Dengan memberikan ini dan tidak lagi anda akan meningkatkan keselamatan sistem anda secara dramatik.

Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...
Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...