GNU/Linux >> Belajar Linux >  >> Linux

Pengantar Ubuntu Apparmor dan Cara Mengonfigurasi Profil Apparmor

AppArmor adalah Kontrol Akses Wajib atau sistem MAC.

Ini menggunakan Modul Keamanan Linux untuk membatasi program. AppArmor menyiapkan kumpulan profil aplikasi default untuk melindungi layanan Linux.

Anda juga dapat melindungi aplikasi lain yang berjalan di sistem Anda dengan membuat file profil sendiri.

Di Ubuntu, AppArmor diinstal dan diaktifkan secara default. Profil apparmor dimuat saat sistem dimulai.

AppArmor beroperasi dalam dua jenis mode profil berikut:

  1. Terapkan – Dalam mode penegakan, sistem mulai menegakkan aturan dan melaporkan upaya pelanggaran di syslog atau auditd (hanya jika auditd diinstal) dan operasi tidak akan diizinkan.
  2. Keluhan – Dalam mode keluhan, sistem tidak menerapkan aturan apa pun. Ini hanya akan mencatat upaya pelanggaran.

Profil tambahan dapat ditemukan di paket apparmor-profiles.

Lihat Status Pakaian

Anda dapat melihat status apparmor saat ini dan semua profil yang dimuat seperti yang ditunjukkan di bawah ini:

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
5 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/tcpdump
0 profiles are in complain mode.
2 processes have profiles defined.
2 processes are in enforce mode.
   /sbin/dhclient (585)
   /usr/sbin/mysqld (799)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Jika kita memeriksa output di atas, kita bisa melihat 5 profil dalam mode Enforce.

Ini juga menunjukkan bahwa dua proses sedang berjalan dalam mode penegakan (karena profil). Misalnya, /sbin/dhclient dengan PID 585 berjalan dalam mode penegakan.

Ubah Mode Profil

Untuk menyetel profil dalam mode keluhan, pertama-tama instal paket apparmor-utils jika belum diinstal.

apt-get install apparmor-utils

Gunakan perintah aa-complain untuk mengatur profil dalam mode complain. Misalnya, lakukan hal berikut untuk mengaktifkan mode keluhan untuk mysqld.

$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

Sekarang ketika Anda menjalankan apparmor_status, Anda akan melihat mysqld dalam mode keluhan.

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
4 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
1 profiles are in complain mode.
   /usr/sbin/mysqld
2 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (585)
1 processes are in complain mode.
   /usr/sbin/mysqld (799)
0 processes are unconfined but have a profile defined.

Anda dapat mengubah profil kembali ke mode penegakan menggunakan perintah aa-enforce seperti yang ditunjukkan di bawah ini.

$ sudo aa-enforce /usr/sbin/mysqld
Setting /usr/sbin/mysqld to enforce mode.

File Profil AppArmor

Profil AppArmor adalah file teks yang terletak di bawah direktori /etc/apparmor.d/.

File diberi nama setelah path lengkap ke profil mereka yang dapat dieksekusi, tetapi mengganti "/" dengan ".".

Misalnya, perintah ping terletak di /bin/ping. File profil AppArmor yang setara akan diberi nama sebagai bin.ping

Berikut ini adalah file profil Apparmor untuk usr.sbin.mysqld. /usr/sbin/mysqld adalah jalur absolut biner tempat profil ini diterapkan.

# cat usr.sbin.mysqld
# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>
/usr/sbin/mysqld {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>
  #include <abstractions/mysql>
  #include <abstractions/winbind>
  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,
  network tcp,
  /etc/hosts.allow r,
  /etc/hosts.deny r,
  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,
  /sys/devices/system/cpu/ r,
  # Site-specific additions and overrides. See local/README for details.
  #include <local/usr.sbin.mysqld>
}

Dalam file profil, komentar selalu dilanjutkan dengan tanda #. #include lines memuat file.

Berikut ini adalah berbagai jenis aturan yang digunakan dalam profil.

  1. Entri jalur:Ini memiliki informasi tentang file mana yang diizinkan untuk diakses oleh aplikasi.
  2. Entri kemampuan:menentukan hak istimewa yang diizinkan untuk digunakan oleh proses terbatas.
  3. Entri jaringan:menentukan jenis koneksi. Misalnya:tcp. Untuk jaringan packet-analyzer bisa berupa raw atau packet dll.

Dalam kurung kurawal {} kami memiliki pernyataan penyertaan lainnya dan juga menyertakan izin/mode akses [baca(r)/tulis (w)/eksekusi (x) (k) kunci (memerlukan r atau w, AppArmor 2.1 dan yang lebih baru)] untuk berbagai file dan direktori, yang mencakup regex globbing pernyataan include dengan kurung kurawal {} membantu memuat komponen profil Novell AppArmor.

Nonaktifkan AppArmor

Jika beberapa proses bekerja seperti yang diharapkan, dan jika Anda ingin men-debug apakah profil apparmor adalah alasannya, Anda mungkin ingin menonaktifkan apparmor untuk debugging untuk sementara.

# /etc/init.d/apparmor stop
 * Clearing AppArmor profiles cache  [OK]

Menjalankan perintah di atas hanya akan menghapus cache profil. Untuk membongkar profil, jalankan perintah berikut.

# /etc/init.d/apparmor teardown
 * Unloading AppArmor profiles [OK]

Linux
  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 18.04

  2. Bagaimana Cara Menginstal dan Mengonfigurasi Fail2ban di Ubuntu?

  3. Cara menginstal dan mengkonfigurasi Elasticsearch di Ubuntu 18.04

  1. Cara Menginstal dan Mengkonfigurasi Redmine di Ubuntu 18.04

  2. Cara Menginstal dan Mengonfigurasi Samba di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 20.04

  1. Cara Menginstal dan Mengonfigurasi Jenkins di Ubuntu 20.04

  2. Cara Menginstal dan Mengonfigurasi Askbot di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 14.04