İçindekiler
- Linux’ta Minimal Yetkili Çalıştırma: AppArmor ve SELinux’un Rolü
- AppArmor ile İzolasyon ve Yetki Yönetimi: Kurulum ve Örnekler
- SELinux ile Sızma Önleme: Politikalar ve Modlar
- Kullanım Senaryoları ve Hangi Yaklaşımı Tercih Etmeli?
- Gerçek Dünya Uygulamaları ve Performans Dikkatleri
- Sonuç ve Uygulama Önerileri
Bu yazıda AppArmor ve SELinux güvenlik katmanlarını derinlemesine inceliyoruz. Linux sistemlerinde Minimal Yetkili Çalıştırma prensibi, uygulamaların sadece ihtiyaç duydukları yetkilerle çalışmasını sağlar ve potansiyel güvenlik açıklarını azaltır. AppArmor ile SELinux güvenlik mimarisinin birbirini tamamlayıcı yönlerini, kurulum adımlarını ve gerçek dünya uygulamalarını ele alacağız. Peki ya kis aylarinda? Şu an için en etkili yaklaşım, mevcut dağıtımın sunduğu güvenlik katmanını doğru biçimde aktifleştirmek ve politikaları dikkatli şekilde uyarlamaktır. Deneyimlerimize göre, doğru yapılandırılmış politikalar ile güvenlik ve operasyonel esneklik arasında dengeli bir tablo kurmak mümkün.
Linux’ta Minimal Yetkili Çalıştırma: AppArmor ve SELinux’un Rolü
Minimal yetkili çalışma, yazılımların yalnızca gerekli kaynaklara erişimini sağlar. AppArmor ve SELinux bu amacı destekleyen iki popüler güvenlik motorudur. AppArmor profil tabanlı bir yaklaşım sunar; profiller, dosya yolu ve iletişim kısıtları üzerinden davranışı tanımlar. SELinux ise daha ayrıntılı ve politikaya dayalı bir güvenlik modeliyle çalışır; etiketlere dayalı erişim kontrolleri, bol miktarda boole ve mod ile esneklik sağlar. Uzmanlarin belirttigine göre, bu iki sistem aynı anda çalışabilir gibi görünse de, çoğu dağıtım birini tercih eder; bu, çatışma riskini azaltır ve yönetimi basitleştirir.
Pratik olarak bakarsak, AppArmor çoğunlukla Ubuntu ve Debian türevlerinde öne çıkar. SELinux ise Red Hat tabanlı dağıtımlarda (RHEL, CentOS, Fedora) yaygındır. Her iki yaklaşımın da amacı aynıdır ama uygulama yöntemi farklıdır; bir profilin hukukunu bozacak davranışlar, loglarda ve uyarı mesajlarında kendini gösterir. Faaliyet göstergeleri arasında log analizi, audit logları ve boole değerlerinin incelenmesi öne çıkar. Böylece güvenlik katmanı, operasyonel akışa zarar vermeden çalışır hale getirilebilir.
AppArmor ile hızlı kurulum ve temel kavramlar
- Profil nasıl yazılır? /etc/apparmor.d dizininde profil dosyaları bulunur; her dosya bir uygulamanın davranışını tanımlar.
- Yayınlama modu: enforce (kısıtlar aktif) veya complain (sadece raporlar).
- Temel komutlar: aa-status, aa-complain, aa-enforce, aa-disable, aa-audit, apparmor_parser.
SELinux ile politika derinliği
- Modlar: enforcing, permissive, disabled.
- Seymanage ve audit2allow gibi araçlarla politika düzenlemesi ve hata giderme.
- Etiketleme ve güvenlik bağlamları; dosya ve süreçlerin etiketleri, erişim kararlarını etkiler.
AppArmor ile İzolasyon ve Yetki Yönetimi: Kurulum ve Örnekler
AppArmor kurulumu, dağıtıma bağlı olarak değişse de çoğu modern Linux sürümünde basittir. Örnek adımlar:
- Güncellemeyi yapın: sudo apt update && sudo apt upgrade -y
- Gerekli paketleri kurun: sudo apt install apparmor apparmor-utils -y
- Profil durumunu kontrol edin: sudo aa-status
- Bir profil oluşturun veya mevcut profili düzenleyin: /etc/apparmor.d/
- Profilin enforce moduna alınması: sudo aa-enforce /path/to/profile
Örnek kullanım: /usr/bin/myapp için bir profil yazıp, gerekli dosya erişimlerini sadece bu uygulama için sınırlandırabilirsiniz. Bu sayede sabit dosyalara yetkisiz erişim önlenir ve zararlı davranışlar raporlanır.

SELinux ile Sızma Önleme: Politikalar ve Modlar
SELinux, etiketli erişim denetimini güçlendirir. Policy modları ve boole değerleri ile sistemin izin verirken hangi davranışları destekleyeceğini ince ayar yapar. Örneğin, bir web sunucusu için izole bir politika yüklemek ve gereksiz balklar olmadan logları takip etmek mümkündür. Yetkilendirme reddedildiğinde audit logları üzerinden hangi kaynağın hangi kurala takıldığını görmek, hataları hızlıca gidermenize yardımcı olur. Komutlar arasında getenforce, setenforce, sestatus ve semanage önemli rol oynar.
Bir pratik senaryo: X uygulamasının log dosyasına yazma izni yok diye reddedildiğini gördünüz. Boole ayarları veya yeni bir policy modülü ekleyerek bu davranışı hedefleyebilirsiniz. Kesinlikle, politikaları kademeli olarak test edin ve üretime geçmeden önce son halinde güvenlik ekibi ile gözden geçirin.
Kullanım Senaryoları ve Hangi Yaklaşımı Tercih Etmeli?
Bir dağıtımın varsayılan güvenlik modülüyle ilerlemek çoğu durumda en akıllısıdır. Üst düzey güvenlik hedefleri ile çalışırken, performans ve yönetim yükünü de göz önünde bulundurun. Cogu durumda, yalnızca bir motoru aktif kullanmak, çatışmaları ve yöneticilik zorluklarını azaltır. Ancak karmaşık hosting ortamlarında veya çok sayıda özel uygulama varsa, AppArmor ile SELinux politikalarını karşılaştırarak uygun bir kombinasyon veya geçici olarak iki motoru paralel olarak test etmek mümkündür. Bu süreçte loglar ve uyum raporları kritik rol oynar.
Güvenlik mimarisine yaklaşımınızı belirlerken şu soruları sorabilirsiniz: Dağıtımınız hangi güvenlik motorunu resmi olarak destekliyor? Uygulamalarınız hangi profil/etiket setine ihtiyaç duyuyor? Yönetim ekibinin deneyimi hangi motor üzerinde daha fazladır?
Gerçek Dünya Uygulamaları ve Performans Dikkatleri
Gerçek dünya uygulamaları, güvenlik katmanlarının performans üzerinde çok belirgin bir etkisi olmadığını gösterebilir; özellikle hafif profilli uygulamalarda. Yine de profillerin sürekli olarak güncellenmesi gerekir; yeni sürümler ile erişim noktaları değişebilir. Log analizi, hatalı erişim denemelerini belirlemek için vazgeçilmezdir. Uzun vadede, politikaların düzenli olarak gözden geçirilmesi ve güvenlik olaylarının incelemesi, güvenli operasyonların sürdürülmesini sağlar.
Bir iskelet tavsiye: önce mevcut uygulamanız için minimal izinleri belirleyin, sonra uygun profilleri/politikaları adım adım devreye alın. Performans etkisini ölçün, gerektiğinde profilleri sadeleştirin ve gereksiz erişimleri kaldırın.
Sonuç ve Uygulama Önerileri
Açıkça söylemek gerekirse, AppArmor ve SELinux güvenlik mimarisi bugünün Linux güvenliğini güçlendirmek için en güvenilir araçlardır. Her iki yaklaşım da doğru yönetildiğinde, saldırı yüzeyini küçültür ve operasyonel güvenliği artırır. İlk adım olarak, dağıtımınızın hangi motoru desteklediğini teyit edin. Ardından bir profil veya politika seti oluşturarak, kritik servisleri en temel izinlerle başlatın ve kademeli olarak genişletin. Özellikle günlükler üzerinden düzenli inceleme yapılması, gelecekte oluşabilecek hataları erken görmenizi sağlar.
Sık sorulan sorular
- AppArmor ile SELinux arasındaki temel farklar nelerdir?
- Bir uygulama için AppArmor profili nasıl yazılır ve nasıl test edilir?
- SELinux günlükleri nasıl okunur ve politika hataları nasıl giderilir?
Ifade edilen yaklaşım doğrultusunda, güvenlik katmanlarını kendi sisteminize entegre etmek için mevcut dağıtım belgelerini inceleyin ve gerektiğinde güvenlik uzmanınızdan destek alın. Unutmayın: güvenlik, bir kez kurulmayan sürekli bir süreçtir—sürekli güncel tutmak, güvenliğin anahtarıdır.
CTA: Şimdi sisteminizde hangi güvenlik motorunu kullanacağınıza karar verin, bir profil ya da politika başlatın ve aylık güvenlik kontrolünüzü planlayın. Başarılı adımlar için yorumlarınızı paylaşmayı unutmayın.