Ubuntu’da AppArmor Nasıl Kullanılır

Ubuntu’yu kullanırken muhtemelen AppArmor’u duymuşsunuzdur, ancak Uygulama Menüsünde görünen ve herhangi bir grafik biçiminde görünmeyen bir uygulama olmadığından bazılarınız ne yaptığını ve sisteminiz için neden gerekli olduğunu bilmeyebilir. Kısacası, AppArmor, tek tek programları bir dizi listelenmiş dosya ve yetenekle sınırlayarak sisteminize zarar vermemelerini sağlayan bir güvenlik modülüdür.

AppArmor Nedir?

AppArmor, programları sınırlı bir kaynak kümesiyle sınırlayan Zorunlu Erişim Denetimi (MAC) sistemidir. Programları bir dizi dosya, nitelik ve yetenekle kısıtlar, böylece sistemin derinliklerine inmez ve (izin verilmediği sürece) hasara yol açmaz. AppArmor, Windows’un kullanıcılara denetim sağlayan Kullanıcı Hesabı Denetimi (UAC) modeli yerine, erişim denetimi özniteliklerini programın kendisine bağlar.

AppArmor Nasıl Çalışır?

AppArmor çekirdek düzeyinde çalışır ve ilk açılış sırasında yüklenir. AppArmor, izni Profiller aracılığıyla işler: Programın neler yapabileceğini ve yapamayacağını belirleyen bir dizi kural.

Profillerin çalıştırabileceği iki mod vardır: Uygulama ve İzleme. Uygulama modu, profilde tanımlanan ve politika ihlali girişimlerini rapor eden politikanın katı bir şekilde uygulanmasıdır. İzleme modu, yalnızca politika ihlali girişimlerini rapor eder ve politikayı zorlamaz. Çoğu profil uygulama modunda yüklenir, ancak izleme modunda da yüklenen çok sayıda üçüncü taraf profili olabilir.

AppArmor Durumunuzu Kontrol Etme

Ubuntu 7.04 veya üstünü kullanıyorsanız, AppArmor varsayılan olarak yüklenir ve bilgisayarınızı başlattığınızda yüklenir. AppArmor durumunu kontrol etmek için terminale aşağıdaki komutu yazın:

sudo apparmor_status
apparmor module is loaded.
26 profiles are loaded.
24 profiles are in enforce mode.
   /snap/core/11606/usr/lib/snapd/snap-confine
   /snap/core/11606/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/bin/freshclam
   /usr/bin/man
   /usr/bin/redshift
   /usr/lib/cups/backend/cups-pdf
   /usr/lib/snapd/snap-confine
   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/lib/x86_64-linux-gnu/lightdm/lightdm-guest-session
   /usr/lib/x86_64-linux-gnu/lightdm/lightdm-guest-session//chromium
   /usr/sbin/cups-browsed
   /usr/sbin/cupsd
   /usr/sbin/cupsd//third_party
   libreoffice-senddoc
   libreoffice-soffice//gpg
   libreoffice-xpdfimport
   libvirtd
   libvirtd//qemu_bridge_helper
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
   virt-aa-helper
2 profiles are in complain mode.
   libreoffice-oopslash
   libreoffice-soffice
5 processes have profiles defined.
5 processes are in enforce mode.
   /usr/bin/freshclam (1139) 
   /usr/bin/redshift (1890) 
   /usr/sbin/cups-browsed (723) 
   /usr/sbin/cupsd (688) 
   /usr/sbin/libvirtd (689) libvirtd
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Aşağıdaki resim ne göreceğinizi göstermektedir.

Yukarıdaki örnekte uygulama modunda yüklenmiş 24 profil olduğunu görebilirsiniz.

Devre Dışı Bırakılmış AppArmor Profillerini Bulma

AppArmor, bazıları varsayılan olarak devre dışı bırakılmış birkaç önceden yüklenmiş profile sahiptir. Bunları “/etc/apparmor.d/disable” klasöründe kontrol edebilirsiniz. AppArmor’un en son sürümünde rsyslogd profilinin etkin olmadığını görebilirsiniz.

Kullanıcılar genellikle rsyslogd üzerinde AppArmor ile uyumsuz hale getiren yapılandırma değişiklikleri yaptığından, bu profil varsayılan olarak devre dışıdır.

AppArmor Profillerini Etkinleştirme ve Devre Dışı Bırakma

Sisteminize birden fazla profil yüklenebilirken, her profil ayrı ayrı etkinleştirilebilir veya devre dışı bırakılabilir. Örneğin, daha önce bahsedilen rsyslogd profilini etkinleştirebilirsiniz. Nasıl yapılacağını öğrenmek için aşağıdaki talimatları izleyin.

Bir terminal açın ve şunu girin:

sudo apt install apparmor-utils

Buişlem yazıda kullanılacak diğer komutları çalıştırmak için gereken araçları yükleyecektir. Profili etkinleştirmek için şunu girin:

sudo aa-enforce /etc/apparmor.d/usr.sbin.rsyslogd

Tekrar devre dışı bırakmak için:

sudo ln -s /etc/apparmor.d/usr.sbin.rsyslogd /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.rsyslogd

AppArmor Profili Neye benziyor?

AppArmor profilleri karmaşık bir yazılım gibi görünse de, aslında uygulamanın hangi klasörlere ve dizinlere erişebileceğini belirten dosya yollarına sahip basit bir metin dosyasıdır. Metin düzenleyicinizde açmak için “/etc/apparmor.d” klasöründeki herhangi bir profile kolayca çift tıklayabilirsiniz.

Rsyslogd profili aşağıdaki resimdeki gibi görünecektir.

Uygulamaları Kilitlemek için Kendi Profillerinizi Oluşturma

Ubuntu sizi korumak için zaten oldukça iyi bir iş çıkarıyor, ancak Ubuntu tarafından korunmayan özel bir uygulamayı kısıtlamak istiyorsanız, uygulamayı kilitlemek için kendi AppArmor profilinizi oluşturabilirsiniz. Bu, uygulamaların arka planda çalıştığı bir sunucuda özellikle yararlıdır.

Not: Kendi profillerinizi oluşturmadan önce, uygulamanız için profilin mevcut olup olmadığını kontrol etmek için öncelikle mevcut AppArmor profil kitaplığına bakmanız en iyisidir. Ek bir profil listesi almak için apparmor-profilleri de yükleyebilirsiniz.

Profil oluşturmayı başlatmak için aşağıdaki komutu çalıştırın:

sudo aa-genprof /path/to/application

/path/to/application, profilini çıkarmak istediğiniz uygulamanın dosya yoludur. Varsayılan uygulama klasörü “/usr/bin”dir, ancak uygulama ve yükleme yöntemine bağlı olarak “/snap/bin” gibi farklı olabilir.

Terminali çalışır durumda bırakarak Profile gideceğiniz uygulamayı başlatın. Bu örnek için Krita kullanıyorum. Uygulamayı normalde yaptığınız gibi kullanın.

Uygulamada gerçekleştirdiğiniz her işlem için, terminale dönün ve değişiklikleri taraması için Shift + S tuşlarına basın.

Buradan uygulamanın eriştiği yolu ve eylemin ciddiyetini görebilirsiniz. Eylemi “İzin Ver (A)” veya “Reddet (D)”yi seçin.

Uygulamada gerçekleştirilen eylemlerin geri kalanı için bunu yapmaya devam edin. En iyi sonucu elde etmek için, profil oluşturmaya başlamadan önce eylem listenizi planlamanız en iyisidir.

Son olarak, işiniz bittiğinde, profil oluşturmayı bitirmek için Shift + F ve profili kaydetmek için Shift + S tuşlarına basın.

Profil oluşturulduktan sonra “/etc/apparmor.d” klasörüne kaydedilecek ve Uygulama modunda yüklenecektir.

Profilleri Düzenleme

Yeni oluşturduğunuz profili düzenlemek için aşağıdaki komutu kullanın:

sudo aa-logprof /etc/apparmor.d/<profile>

Bu durumda, daha önce aa-genprof komutunu kullandığınızda oluşturulan yeni profilin adı <profile> olmalıdır.

AppArmor, günlük girişlerini tarayacak ve profilde değişiklik yapmanıza izin verecektir.

AppArmor’u Durdurma ve Yeniden Başlatma

Herhangi bir nedenle AppArmor’u durdurmanız gerekirse, bunu aşağıdakilerle kolayca yapabilirsiniz:

sudo service apparmor stop

Bu komutla durumu kontrol ederek durdurulduğunu onaylayabilirsiniz:

systemctl status apparmor

Ve AppArmor’u tekrar başlatmak için:

sudo service apparmor restart

Durumu tekrar kontrol ederseniz, AppArmor’un çalıştığını gösteren yeşil bir ışık göreceksiniz.

Sıkça Sorulan Sorular

AppArmor neden varsayılan olarak rsyslog’u devre dışı bırakıyor?

rsyslog, günlük mesajlarını alma, dönüştürme ve farklı hedeflere iletme dahil olmak üzere sistem günlüğünü işleyen yapılandırılabilir bir yazılımdır. AppArmor profili, “usr.sbin.rsyslogd” dahil edilmiştir ancak varsayılan olarak devre dışıdır.

AppArmor sürüm 2 ve 3 arasındaki fark nedir?

AppArmor 3.x, AppArmor’un en son sürümüdür ve 1 Ekim 2020’de yayımlanmıştır ve büyük bir genişlemedir. AppArmor 2.x çok eski, 2007 civarında piyasaya sürüldü. Görünüşe göre artık 2.x serisinde herhangi bir aktif geliştirme olmayacak. En son sürüm olan 2.13.6, Aralık 2020’de piyasaya sürüldü ve AppArmor 2.14, geliştirme web sitesinde “iptal edildi” olarak listeleniyor. AppArmor 3.0.7, 9 Ağustos 2022’de yayınlandı.

AppArmor’um varsa, yine de bir antivirüse ihtiyacım var mı?

Evet, AppArmor’unuz çalışıyor olsa bile yine de bir virüsten koruma programına ihtiyacınız var. İkisi tamamen farklı işlemler gerçekleştirir ve birbirini tamamlar. Linux sistemleri kötü amaçlı yazılım yaratıcıları tarafından daha az hedef alınsa da Ubuntu’da bir virüsten koruma yazılımına sahip olmak iyidir.

Yazının orijinalini buradan okuyabilirsiniz.