Zorunlu Erişim Kontrolü (MAC) • Profil Mantığı • Uygulama İzolasyonu
Hazırlayan: Rewan
Hardening ve MAC mantığı
AppArmor ve SELinux farkları
AppArmor profil yapısı & temel kullanım
SELinux modları ve bağlamlar
Hangi durumda hangisi tercih edilir?
Pratik örnekler
Lab / Kontrol listesi
Kapanış
1) Hardening ve MAC mantığı
Yetkilendirme Linux’ta iki seviyede düşünülür:
[]DAC (Discretionary Access Control): Klasik kullanıcı & izin modeli (chmod, chown).
[]MAC (Mandatory Access Control): Sistemin zorunlu politika uygulaması. Uygulama kendi istediğini yapamaz.
Hardening’in amacı: uygulamanın gereksiz hiçbir şeye erişememesini sağlamak.
Özet:
→ DAC = “İzin verirsen erişir.”
→ MAC = “İzin vermeyi sen belirlemezsin; sistem belirler.”
2) AppArmor ve SELinux farkları
Özellik AppArmor SELinux
Mantık Dosya/uygulama profilleri Etiket/bağlam tabanlı
Kullanım kolaylığı Daha basit Daha karmaşık
Hedef dağıtımlar Ubuntu, Debian, openSUSE Fedora, RHEL, CentOS
Öğrenme eğrisi Hafif Daha dik
Yeni başlayan sistem yöneticileri genelde AppArmor ile başlar.
SELinux ise daha kurumsal ve daha katıdır.
3) AppArmor profil mantığı
Uygulama hangi dosyalara ve dizinlere ne şekilde erişebilir → profil bunu belirler.
Kod:
AppArmor durumunu kontrol et
sudo aa-status
Profil yükleme
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.nginx
Örnek profil satırı (okuma + çalıştırma izni):
Kod:
/usr/sbin/nginx {
/var/www/html/ r,
/usr/lib/nginx/** ix,
}
r = read, w = write, ix = execute with inherit.
4) SELinux modları ve bağlamlar
Kod:
SELinux durumunu öğren
sestatus
Modlar:
Mod Açıklama
Enforcing Politikalar zorla uygulanır
Permissive Engellemez, sadece loglar (öğrenme aşaması için ideal)
Disabled Kapalı
Bağlamları görüntüleme:
Kod:
ls -Z /var/www/html/
ps -eZ | grep nginx
Bağlam değiştirmek için:
Kod:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Aynı dizin bile farklı bağlamdaysa SELinux erişimi engeller. Bu normaldir.
5) Hangi durumda hangisi?
Senaryo Önerilen
Kişisel sunucu / küçük yapı AppArmor
KOBİ / kurumsal ortam SELinux (Enforcing)
Web uygulaması çok sayıda modül kullanıyorsa AppArmor +
Audit ile izleme
Güvenlik denetimi şart ise SELinux zorunlu
Özet: “Kolay ve hızlı” → AppArmor.
“Tam kontrol, ince politika, kurumsal katılık” → SELinux.
6) Pratik örnekler
[]Nginx’in yalnızca belirli dizine erişmesine izin ver.
[]MySQL’in başka hiçbir kullanıcı dosyasına erişemediğini doğrula.- SSH’yi SELinux ile sadece belirli kullanıcıya aç (AllowUsers+bağlam eşlemesi).
7) Lab / Kontrol listesi
8) Kapanış
Bu bölümde klasik izin sisteminin yetmediği durumlarda devreye giren güvenlik katmanlarını gördün.
Hardening sadece kapıyı kapatmak değil, içerideki erişim alanlarını da daraltmaktır.
Selam dostlar, ben Rewan.
Sistemi gerçekten güvenli yapmak istiyorsan, uygulamaların neyi nerede çalıştırdığını bilmen gerekir.
Faydalı olduysa yorum yapın, birlikte geliştirelim.
