SELinux vs AppArmor: Linux Sunucular için Karşılaştırma

15 dakikalık okuma - 21 Mayıs 2026

hero section cover
İçindekiler
  • SELinux ve AppArmor: Sunucunuza Hangi MAC Çerçevesi Uygun?
  • SELinux Nasıl Çalışır?
  • AppArmor Nasıl Çalışır?
  • Yan Yana Karşılaştırma
  • Temel Yapılandırma
  • Hangisini Kullanmalısınız?
Paylaş

Linux sunucu güvenliği için SELinux ve AppArmor karşılaştırması: Her bir MAC çerçevesinin nasıl çalıştığını, temel farklılıkları ve barındırma kurulumunuz için hangisini seçmeniz gerektiğini öğrenin.

SELinux ve AppArmor: Sunucunuza Hangi MAC Çerçevesi Uygun?

SELinux ve AppArmor, Linux üzerinde Zorunlu Erişim Kontrolü (MAC) uygular ve süreçlerin root erişimi elde etseler bile yapabileceklerini kısıtlar. Aradaki fark, bunu nasıl yaptıklarında yatmaktadır. SELinux, her dosya ve sürece kalıcı etiketler atar. AppArmor ise bunun yerine dosya yolu kuralları kullanır. Bu tek tasarım seçimi, karmaşıklık, güvenlik derinliği ve hangi dağıtımın varsayılan olarak hangi aracı sunduğu gibi diğer her şeyi şekillendirir.


 

SELinux Nasıl Çalışır?

SELinux, başlangıçta NSA tarafından geliştirilmiştir ve RHEL, CentOS, Fedora ve Rocky Linux'ta varsayılan olarak gelir. Dosyalar, işlemler, bağlantı noktaları ve soketler dahil olmak üzere sistemdeki her nesneyi user:role:type:levelbiçiminde bir güvenlik bağlamı ile etiketler. type alanı, Type Enforcement (TE) adlı bir mekanizma aracılığıyla işin büyük kısmını üstlenir.

Örneğin, Apache web sunucusu httpd_tolarak çalışır. Web içeriği dosyaları farklı bir tür taşır. Hiçbir politika kuralı httpd_t , istek reddedilir. Bu, varsayılan olarak reddetme modelidir. Bir kural aksini belirtmedikçe hiçbir şeye izin verilmez.

SELinux ayrıca, verileri hassasiyet düzeyine göre sınıflandıran ve erişimi buna göre kısıtlayan Çok Düzeyli Güvenlik (MLS) ve Çok Kategorili Güvenlik (MCS) özelliklerini de destekler. MCS, SELinux'a güçlü konteyner yalıtımı sağlayan, konteynerleri birbirinden ve ana bilgisayardan ayrı tutan özelliktir. Bu, pod'ların bir düğümü paylaştığı Kubernetes ve OpenShift ortamlarında önemlidir.

Bunun karşılığında ise karmaşıklık söz konusudur. SELinux'un öğrenme eğrisi diktir. Erişim reddi sorunlarını gidermek, denetim günlüklerini okumak, güvenlik bağlamlarını anlamak ve bazen de audit2allow. Özel güvenlik personeli olmayan ekipler için bu ek yük gerçektir.

AppArmor Nasıl Çalışır?

AppArmor farklı bir yaklaşım benimsemektedir. Nesneleri etiketlemek yerine, dosya yollarına göre uygulamalara güvenlik profilleri ekler. /usr/sbin/nginx , Nginx'in hangi dizinleri okuyabileceğini, hangi bağlantı noktalarına bağlanabileceğini ve hangi yeteneklere ihtiyaç duyduğunu tanımlar. Profiller, /etc/apparmor.d/.

AppArmor, Ubuntu, Debian ve SUSE'de varsayılan MAC çerçevesidir. 2.6.36 sürümünden beri Linux çekirdeğinin bir parçasıdır. Profili olmayan uygulamalar, standart Linux DAC izinlerine geri döner.

AppArmor, profil başına iki modda çalışır: Enforce (ihlalleri engeller ve günlüğe kaydeder) ve Complain (engellemeden ihlalleri günlüğe kaydeder). Bu, yeni profilleri kademeli olarak devreye almayı pratik hale getirir. Complain modunda başlayın, günlükleri inceleyin, profili sıkılaştırın, ardından Enforce moduna geçin.

Şu tür araçlar aa-genprof ve aa-logprof gibi araçlar, bir uygulamanın ne yaptığını izleyerek ve davranışından kurallar oluşturarak profilleri etkileşimli bir şekilde oluşturmaya yardımcı olur. SELinux politika modülleriyle karşılaştırıldığında, sözdizimi elle okumak ve düzenlemek çok daha kolaydır.

Dezavantajı ise, yol tabanlı kuralların dosyalar taşındığında onları takip etmemesidir. Bir sabit bağlantı veya bağlama, teorik olarak yol tabanlı bir kısıtlamayı atlayabilir. AppArmor ayrıca yerel MLS/MCS desteğinden yoksundur, bu nedenle konteynerleri ana bilgisayardan izole edebilir ancak SELinux'un yaptığı gibi birbirlerinden izole edemez.

Yan Yana Karşılaştırma

ÖzellikSELinuxAppArmor
Erişim kontrol modeliEtiket tabanlı (güvenlik bağlamları)Yol tabanlı (dosya sistemi konumları)
Varsayılan duruşHepsini reddetHepsine izin ver (profil başına kısıtlamalar)
Dosya taşımaEtiketler dosyayı takip ederYola bağlı güvenlik
MLS/MCS desteğiEvetHayır
Konteyner yalıtımıKonteynerden konteynere ve konteynerden ana bilgisayaraYalnızca konteyner-ana bilgisayar
İlke biçimiDerlenmiş ikili modüllerİnsan tarafından okunabilir metin dosyaları
Varsayılan dağıtımlarRHEL, Fedora, CentOS, Rocky LinuxUbuntu, Debian, SUSE
Öğrenme eğrisiZorOrta

Temel Yapılandırma

SELinux

Mevcut durumu kontrol edin:

sestatus
getenforce

Hiçbir şeyi engellemeden ihlalleri günlüğe kaydetmek için Permissive modunda başlatın:

setenforce 0

Çoğu sunucu için "targeted" politikasını kullanın. Bu politika, web sunucuları ve veritabanları gibi yüksek riskli hizmetleri kısıtlarken, diğer her şeyi kısıtlamadan bırakır. Bunu /etc/selinux/config:

SELINUX=enforcing
SELINUXTYPE=targeted

Dosya ve işlemlerin güvenlik bağlamlarını inceleyin:

ls -Z /var/www/html
ps -eZ | grep httpd

Bir hizmet standart olmayan bir bağlantı noktası kullanıyorsa, politikayı güncelleyin:

semanage port -a -t ssh_port_t -p tcp 9999

Erişim reddi oluşturan özel uygulamalar için denetim günlüğünden bir ilke modülü oluşturun:

ausearch -m avc -ts recent | audit2allow -M my_custom_policy
semodule -i my_custom_policy.pp

AppArmor

Hangi profillerin yüklü olduğunu kontrol edin:

sudo aa-status

Profil yönetim araçlarına ihtiyacınız varsa, yardımcı programlar paketini yükleyin:

sudo apt install apparmor-utils

Uygulama çalışırken etkileşimli olarak bir profil oluşturun:

sudo aa-genprof /path/to/binary

Günlükleri tarayarak ihlalleri belirleyerek profili iyileştirin:

sudo aa-logprof

Bir profili modlar arasında değiştirin:

sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx

Hangisini Kullanmalısınız?

Çoğu yönetici için pratik cevap şudur: dağıtımınızın sunduğu ne varsa onu kullanın. RHEL, CentOS, Fedora ve Rocky Linux, SELinux ile birlikte gelir. Ubuntu, Debian ve SUSE ise AppArmor ile birlikte gelir. Her iki çerçeve de kendi yerel platformları için olgun araçlara ve politikalara sahiptir. Herhangi bir dağıtımda varsayılan olmayan seçeneğe geçmek, iş yükünü artırır ve topluluk desteğini azaltır.

Bunun ötesinde, gereksinimlerinizin karar vermesine izin verin:

  • PCI DSS, HIPAA veya DISA-STIG ile uyumluluk gerekiyorsa SELinux'u seçin. Kubernetes veya OpenShift üzerinde çok kiracılı konteyner iş yükleri çalıştırıyorsanız. Paylaşımlı ana bilgisayarlarda konteynerden konteynere izolasyon gerekiyorsa. Ortamınızda gizli veya hassasiyet kademeli veriler işleniyorsa.
  • Ubuntu veya Debian kullanıyorsanız ve zorlu bir hazırlık süreci olmadan MAC koruması istiyorsanız AppArmor'u seçin. Kurulumunuz standart web hizmetlerini çalıştıran tek bir sunucu veya küçük bir küre ise. Hızlı dağıtım, ayrıntılı etiket düzeyinde kontrolden daha önemliyse.

Her iki çerçeve de çalışma zamanı yükünü minimum düzeyde artırır. SELinux, erişim kararlarını Access Vector Cache'de önbelleğe alır. AppArmor'un politika yüklemesi, önyükleme sırasında küçük bir gecikmeye neden olabilir, ancak çalışma zamanında etkisi ihmal edilebilir düzeydedir. Çoğu barındırma iş yükü için, hiçbiri darboğaz oluşturmaz.

Her iki çerçeveyi de yapılandırmak için tam kök erişimine sahip güvenilir bir barındırma altyapısına ihtiyacınız varsa, FDC'nin özel sunucuları veya VPS'leri, ortamınızın gerektirdiği şekilde SELinux veya AppArmor'u kurmanıza olanak tanır.

Blog

Bu hafta öne çıkanlar

Daha fazla makale
Linux'ta Zombi Süreçler: Bul, Kaldır, Önle

Linux'ta Zombi Süreçler: Bul, Kaldır, Önle

Linux'ta zombi süreçleri nasıl tanımlayacağınızı, kaldıracağınızı ve önleyeceğinizi öğrenin. Sunucu yöneticileri için komutlar, kod düzeltmeleri ve izleme ipuçları.

15 dakikalık okuma - 19 Mayıs 2026

Linux Sunucu Güçlendirme Kontrol Listesi

15 dakikalık okuma - 8 Mayıs 2026

Daha fazla makale
background image

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım