AppArmor nedir?
AppArmor, Linux çekirdeğinde çalışan, uygulamaların neye erişebileceğini profillerle sınırlayan bir zorunlu erişim denetimi sistemidir. Her program için hangi dosyaları okuyabileceğini, yazabileceğini ve hangi ağ işlemlerini yapabileceğini tanımlayan bir profil yazılır.
Ubuntu ve SUSE gibi dağıtımlarda varsayılan olarak gelir. Dosya yollarına dayandığı için SELinux’a göre anlaması ve yapılandırması daha kolay kabul edilir.
Nasıl çalışır?
Profiller iki modda çalışır: enforce modunda ihlaller engellenir, complain modunda ise yalnızca kaydedilir. Profil olmayan programlar kısıtlanmaz, bu yüzden koruma yalnızca profili olan uygulamaları kapsar.
- Profiller genellikle
/etc/apparmor.d/altında tutulur. aa-statuskomutu yüklü profilleri ve modlarını listeler.- Yeni profil oluşturmak için
aa-genprofgibi araçlar kullanılır.
Sunucu ve hosting ortamında
Ubuntu tabanlı sunucularda MySQL, nginx ve konteyner çalışma zamanları gibi birçok hizmet için hazır profiller bulunur. Docker ve LXC gibi konteyner araçları da varsayılan olarak AppArmor profilleri uygular; bu, konteynerlerin ana makineye zarar verme olasılığını azaltır.
Bir uygulama beklenmedik biçimde dosyaya yazamıyor veya porta bağlanamıyorsa nedeni AppArmor olabilir. Sistem günlüklerinde reddedilen işlemleri görmek mümkündür.