SELinux nedir?
SELinux (Security-Enhanced Linux), Linux çekirdeğinde çalışan zorunlu erişim denetimi mekanizmasıdır. Her süreç ve dosyaya bir güvenlik etiketi atar, hangi sürecin hangi kaynağa erişebileceğini politikayla belirler. Bir yazılım ele geçirilse bile yapabilecekleri sınırlı kalır.
Klasik dosya izinleri kullanıcı kimliğine bakar; SELinux ise kullanıcı ne olursa olsun politikaya uymayan erişimleri engeller. Bu yüzden web sunucusu gibi internete açık hizmetler için önemli bir ek katmandır.
Nasıl çalışır?
SELinux üç modda çalışır: enforcing (politikayı uygular), permissive (ihlalleri yalnızca kaydeder) ve disabled (kapalı). Politika, süreçlerin etiketlerine (domain) hangi dosya etiketlerine erişebileceğini tanımlar.
getenforcekomutu geçerli modu gösterir.- Dosya etiketleri
ls -Zile görülür. - Engellenen işlemler denetim günlüğüne (audit log) yazılır.
Sunucu ve hosting ortamında
SELinux, Red Hat ailesi (AlmaLinux, Rocky Linux vb.) dağıtımlarda varsayılan olarak gelir. Web sunucusu yeni bir dizine yazamıyorsa ya da başka bir porta bağlanamıyorsa sebep çoğu zaman SELinux etiketidir. Birçok yönetici sorunu çözmek için SELinux’u kapatır; oysa çoğu zaman doğru etiketi vermek yeterlidir.
cPanel gibi bazı hosting panelleri SELinux ile tam uyumlu çalışmayabilir ve belgeler çoğunlukla kapatılmasını ister; panelinizin resmi önerisini kontrol edin.
Nasıl uygulanır?
- Panelinizin uyumluluğuna bakarak mümkünse SELinux’u enforcing modda tutun.
- Bir sorunda önce
ausearchya da audit günlüğüne bakıp neyin engellendiğini anlayın;audit2whynedeni açıklar. - Dosya etiketlerini
restoreconile düzeltin; yeni dizinler için doğru etiket kuralı tanımlayın. - Gerektiğinde
setseboolile hazır boolean değerlerini açın; tüm politikayı gevşetmeyin. - Test için kısa süreli permissive moda geçin, sonra yeniden enforcing yapın.
- Politika modüllerini yalnızca gerekçeli ve belgeli olarak ekleyin.
Sık yapılan hatalar
- Her sorun karşısında SELinux’u tamamen kapatmak.
chmod 777ile sorunu çözmeye çalışmak; engel izin değil etikettir.- Dosyaları taşırken etiketlerin değişmediğini fark etmemek.
- Permissive moda geçip geri dönmeyi unutmak.
Sık sorulan sorular
SELinux ne işe yarar?
Süreçlerin hangi dosya, port ve kaynaklara erişebileceğini politikayla sınırlar. Bir uygulama ele geçirilse bile verdiği zararı azaltır.
SELinux’u kapatmak güvenli mi?
Kapatmak sorunu çözebilir ama önemli bir koruma katmanını ortadan kaldırır. Önce günlüklere bakıp doğru etiket ya da boolean ayarını bulmak daha iyidir.
SELinux ile AppArmor arasındaki fark nedir?
SELinux etiket tabanlı ve daha ayrıntılı, AppArmor ise yol tabanlı ve daha kolay yapılandırılır. SELinux Red Hat ailesinde, AppArmor Ubuntu ve SUSE tarafında yaygındır.
Bu terimin geçtiği rehberler
- HAProxy ile TCP yük dengeleme ve sağlık kontrolleriHAProxy ile TCP yük dengeleme kurun: frontend ve backend tanımı, sağlık kontrolleri, istatistik sayfası, yapılandırma doğrulama ve arka uç sunucu devre dışı kalma testi.
- Dosya yükleme güvenliği: uzantı, MIME, depolama ve çalıştırma engeliDosya yükleme formlarını güvenli hale getirin: uzantı beyaz listesi, gerçek MIME denetimi, rastgele dosya adı, web kökü dışında depolama ve yükleme dizininde betik çalıştırmayı engelleme.
- MariaDB yavaş sorgu günlüğü ve temel optimizasyonMariaDB yavaş sorgu günlüğünü açın, yavaş sorguları dumpslow ile analiz edin, EXPLAIN ile indeks eksiklerini bulun ve temel optimizasyonla veritabanı yükünü güvenle azaltın.
- rsync ile sunucu taşıma: VPS’ten VPS’e geçişrsync ile VPS’ten VPS’e güvenli geçiş: ilk senkronizasyon, veritabanı dökümü, son eşitleme, DNS geçişi ve doğrulama adımlarını kesintiyi en aza indirerek uygulayın.
İlgili terimler
- Swap alanıSwap alanı, fiziksel bellek dolduğunda az kullanılan bellek sayfalarının geçici olarak diske taşındığı alandır.
- systemdModern Linux sistemlerinde servisleri başlatan ve yöneten sistem yöneticisi.
- AppArmorProgramların erişebileceği dosya ve kaynakları profillerle sınırlayan Linux güvenlik modülü.
- auditdauditd, Linux denetim sisteminin kullanıcı alanı servisidir; dosya erişimi, sistem çağrısı ve yetki değişikliği gibi olayları kaydeder.
- Backport (geri taşıma)Yeni sürümdeki bir düzeltmenin eski sürüme uyarlanarak getirilmesi.
- Canlı yama (live patching)Çekirdek güncellemesini sunucuyu yeniden başlatmadan uygulama yöntemi.