Auteur de la discussion #1
sealert ile SELinux Hata Analizi: Adım Adım Rehber

SELinux, sistemi güvenli bir şekilde izole etmek için politika tabanlı bir güvenlik mekanizmasıdır. Çalışan süreçlerin yetkileri politika doğrultusunda kısıtlanır ve ihlal olduğunda loglar üretilir. Bu logların yorumlanması zaman zaman karmaşık olabilir; işte burada sealert devreye girer. Sealert, AVC (Access Vector Cache) ihlallerinin nedenini kullanıcı dostu bir şekilde özetler ve potansiyel düzeltme adımlarını önerir.


Giriş ve temel kavramlar
  • SELinux modu ve politikasını kontrol edin: En çok karşılaşılan durumlar Enforcing modda hatalı kısıtlamalar veya yanlış politika yüklemeleridir. Ayrıca targeted ya da mcs/selenpol politikalarının farklı davranışları olabilir.
  • AVC ihlallerinin kaynağı: Bir dosya, port veya dizin üzerinde hangi süreçlerin hangi amaçla erişimde bulunduğu izlenir. Bu bilgilere göre güvenlik bağlamı (context) ve etki alanı analiz edilir.
  • Sealert’in amacı: Log satırlarını okuyup hangi dosya/neyin hangi işleve engel olduğunu, hangi boolean veya boolean olmayan politikaların tetiklediğini açıklar. Nihai hedef: hatalı davranışı izole etmek veya politika ayarlarını düzeltmektir.


Pratik analiz akışı
1) Olayı yakalamak: SELinux ihlali loglarını bulun. Genelde /var/log/audit/audit.log veya /var/log/audit/ dizininde yer alır. Aşağıdaki komutla son ihlalleri hızlıca özetleyin:
CODE
123
ausearch -m AVC -ts recent | aureport -f -i
sealert -a /var/log/audit/audit.log


2) Sealert ile özet ve öneri edin: Sealert, ihlali anlamak için konumu, süreç adını ve güvenlik bağlamını gösterir. Örneğin:
type=AVC {
avc: denied { read } for pid=1234 comm="httpd" path="/var/www/html/index.php" dev="sda1" ino=567890 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=file
}

Bu durumda httpd processi httpd_sys_content_t bağlamındaki içeriklere erişemezken hata almıştır. Sealert bu tür bağlam farklarını, politika kısıtlamalarını ve düzeltme yollarını net bir şekilde gösterir.

3) Çözüm yollarını adım adım değerlendir:
  • Bağlamı düzeltme: Dosya veya dizin doğru güvenlik bağlamında mı? restorecon veya semanage ile uygun bağlamı atayabilirsiniz.

CODE
1234
restorecon -v /var/www/html/index.php
semanage fcontext -a -e httpd_sys_content_t "/var/www(/.*)?"
restorecon -v /var/www/html/index.php

  • Politika izinlerini inceleme: Hangi yetkilerin eksik olduğunu görmek için sesizce hangi denetimlerin tetiklendiğini inceleyin. Boşta kalan veya gereksiz kısıtlamaları kaldırmak için boolean değerleri veya politika modifikasyonları yapılabilir.

CODE
123
ausearch -m AVC -ts today | audit2allow -M mypol
semodule -i mypol.pp

  • Gecici çalışma modu: Hataları geçici olarak çözmek için SELinux’u permissive moda almak mümkündür (sürekli üretimde önerilmez). Bu, hatanın gerçekten politika kaynaklı olup olmadığını doğrulamanıza yardımcı olur.


4) Test ve doğrulama: Değişiklik sonrası loglarda aynı ihlalin tekrar oluşup oluşmadığını kontrol edin. Eğer sorun çözülmüşse, üretim politikası olarak kalıcı güvenlik bağlamı ve izinler yeniden yapılandırılmalıdır.

İpuçları ve uyarılar
  • Her değişiklikten sonra yeniden başlatma yerine dinamik olarak durum güncellemelerini takip edin.
  • Dosya bağlamı yanlış olduğunda web servisleri, uygulama sunucuları veya arka uç süreçleri davranış bozuklukları gösterebilir.
  • Sealert tek başına her şeyi çözmez; log analizi ve bağlam uyumu el ele gitmelidir.


Bu yöntemlerle SELinux ihlallerini sistematik olarak analiz etmek ve güvenlik politikalarını güvenli bir şekilde güncellemek mümkün olur. Siz hangi tip sorunlarda sealert’i önceleyerek adım atıyorsunuz; en sık karşılaştığınız bağlam hatası türleri hangileri?

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 1, Membres: 1, Invités: 0)
Total: 1 (membres: 1, invités: 0)
0 citations sélectionnées