Linux Sunucuda AppArmor ve SELinux Nedir? Hangisi Kullanılmalı?

Linux sunucularda güvenlik, özellikle hassas verilerin korunduğu kurumsal ortamlarda kritik öneme sahiptir.

Linux sunucularda güvenlik, özellikle hassas verilerin korunduğu kurumsal ortamlarda kritik öneme sahiptir. AppArmor ve SELinux, Mandatory Access Control (MAC) mekanizmaları olarak bilinir ve geleneksel Discretionary Access Control (DAC) sistemlerini tamamlayarak yetkisiz erişimleri engeller. Bu makale, her iki aracın temel özelliklerini, çalışma prensiplerini ve pratik uygulamalarını inceleyerek, Linux sunucu yöneticilerine bilinçli seçim yapma konusunda rehberlik etmeyi amaçlamaktadır. AppArmor’un yol tabanlı basitliği ile SELinux’un etiket tabanlı kapsamlı yapısını karşılaştırarak, hangi senaryoda hangisinin tercih edileceğini somut örneklerle açıklayacağız.

AppArmor Nedir ve Nasıl Çalışır?

AppArmor, Ubuntu ve SUSE gibi dağıtımlarda varsayılan olarak gelen bir MAC modülüdür. Yol tabanlı (path-based) bir yaklaşımla çalışır; yani dosya yollarına ve işlem adlarına göre erişim izinlerini tanımlar. Bu sayede, bir uygulamanın yalnızca belirli dosyalara, ağ bağlantılarına veya kaynaklara erişimini kısıtlayarak, olası güvenlik ihlallerini minimize eder. AppArmor profilleri, metin dosyalarıyla kolayca yönetilir ve dinamik yükleme özelliği sayesinde sunucu yeniden başlatılmadan etkinleştirilebilir.

Uygulamada, AppArmor’u etkinleştirmek için Ubuntu sunucuda sudo apt install apparmor apparmor-utils komutuyla yükleyin. Ardından sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2 ile Apache profili için zorlayıcı modda çalıştırın. Profil oluşturma sürecinde, aa-genprof aracıyla bir programı izleyerek otomatik profil üretin; örneğin, bir veritabanı sunucusunu çalıştırıp erişim denemelerini kaydederek izinleri inceleyin. Bu işlem, hatalı yapılandırmaları önler ve kurumsal sunucularda hızlı deployment sağlar. AppArmor’un avantajı, düşük öğrenme eğrisi ve performans etkisinin minimal olmasıdır; ancak, yol değişikliklerinde (symlink’ler gibi) hassasiyet gösterir.

AppArmor Profil Yönetimi

Profil yönetimi, /etc/apparmor.d/ dizininde gerçekleşir. Bir profile ekleme için owner /var/log/** rw, satırıyla log dosyalarına yazma izni verin. Deneme modunda (aa-complain) çalıştırarak uyumluluğu test edin; bu, erişim reddi olmadan log tutar. Gerçek zamanlı denetim için sudo aa-status komutunu kullanın, ki bu komut etkin profilleri ve modlarını listeler. Kurumsal ortamda, bu adımlar standartlaştırılmış script’lerle otomatize edilebilir, örneğin Ansible playbook’larıyla birden fazla sunucuya dağıtım yapılabilir.

Güvenlik Faydaları ve Sınırlamalar

AppArmor, exploit’lere karşı etkili koruma sağlar; örneğin, bir web sunucusu hack’lendiğinde veritabanı dosyalarına erişimi engeller. Ancak, kernel seviyesinde olmayan kısıtlamalar nedeniyle, root yetkileriyle bypass edilebilir. Pratik takeaway: Her kritik servis için özel profil oluşturun ve düzenli aa-logprof ile logları inceleyin. Bu, 500’den fazla önceden tanımlı profilin (apparmor-profiles paketiyle) üzerine eklemelerle kapsamlı koruma sağlar.

SELinux Nedir ve Uygulama Adımları

SELinux, Red Hat Enterprise Linux (RHEL), CentOS ve Fedora’da varsayılan MAC sistemidir. Etiket tabanlı (label-based) Mandatory Access Control uygular; dosya, süreç ve portlara güvenlik bağlamları (context) atar. Politika motoru, type enforcement ile erişimleri doğrular, örneğin httpd_t tipi yalnızca belirli dizinlere erişebilir. Bu yapı, zero-trust mimarisine uygundur ve kernel modülü olarak derin entegrasyon sağlar.

Kurulum için RHEL tabanlı sunucuda sudo dnf install selinux-policy selinux-policy-targeted kullanın. Durumu kontrol etmek üzere sestatus komutunu çalıştırın; enforcing modda olmalı. Politika özelleştirmesi için audit2allow ile log’lardan kurallar üretin: grep DENIED /var/log/audit/audit.log | audit2allow -M mypol. Ardından semodule -i mypol.pp ile yükleyin. Bu adımlar, veritabanı sunucusu (mysqld_t) için özel kurallar tanımlamayı sağlar, örneğin semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?" ile dizin etiketini ayarlayın ve restorecon -Rv /data/mysql ile uygulayın. SELinux’un gücü, kapsamlı politika setlerinde yatar ancak öğrenme eğrisi yüksektir.

SELinux Modları ve Geçişler

SELinux üç modda çalışır: enforcing (zorlayıcı), permissive (log-only) ve disabled. Kurumsal geçiş için permissive’den başlayın, logları inceleyin ve kuralları geliştirin. setsebool -P httpd_can_network_connect 1 ile boolean’ları kalıcı değiştirin. Bu, web sunucusunun outbound bağlantılarını etkinleştirir. Pratikte, sealert -a /var/log/audit/audit.log aracıyla otomatik raporlar alın, ki bu hataları teşhis eder ve çözüm önerir.

AppArmor mu SELinux mu? Karşılaştırma ve Seçim Kriterleri

AppArmor, hızlı kurulum ve yönetim kolaylığıyla küçük-orta ölçekli sunucular için idealdir; örneğin Ubuntu tabanlı web hosting’lerde. SELinux ise büyük kurumsal ortamlarda, karmaşık politikalarla üstün koruma sunar, zira etiketler dosya hareketlerinden etkilenmez. Performans açısından AppArmor daha hafifken, SELinux’un politika derleme maliyeti vardır. Dağıtım uyumu kritik: Debian/Ubuntu için AppArmor, RHEL için SELinux önerilir. Hibrit kullanım nadirdir, çünkü çakışma riski taşır.

Seçim yaparken şu kriterleri değerlendirin:

  • Dağıtım ve Ekosistem: Ubuntu ise AppArmor, RHEL ise SELinux öncelikli.
  • Yönetim Kaynakları: Yeni ekipler için AppArmor’un profil tabanlı basitliği avantajlı.
  • Kapsam İhtiyacı: Ağ ve cihaz erişimlerinde SELinux daha detaylı.
  • Test Süreci: Her ikisini permissive modda 1-2 hafta test edin.

Sonuç olarak, Linux sunucunuzun ihtiyaçlarına göre AppArmor veya SELinux’u entegre ederek katmanlı güvenlik elde edin. Düzenli güncellemeler ve log izleme ile bu araçlar, uyumluluk standartlarını (örneğin PCI-DSS) karşılamada vazgeçilmez olur. Pratikte, her iki sistem de mevcut DAC ile birlikte kullanıldığında maksimum etkinlik sağlar; bu sayede kurumsal verileriniz proaktif olarak korunur.

Kategori: Güvenlik
Yazar: Lorem
çerik: 668 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026