SELinux Nedir?
SELinux belirli kernel modüllerine erişimi kısıtlayan bir güvenlik kontrol mekanizmasıdır. Centos üzerinde varsayılan olarak uygulanır. SELinux, sistemin altyapısı için belirli uygulamaların kullanımını kısıtlayan veya izin veren “politikalar” adı verilen belirli kurallarla yönetilir.
SELinux’ın çalışma prensibinde 3 mod bulunur.
Enforcing: SELinux’un aktif olduğunu belirler. Bütün yetkisiz işlemleri reddeder. İletişim modelinin SElinux politikalarına uygun olması gerekir.
Permissive: SELinux sadece uyarı modudur. Yetkisiz işlemlere izin verir ancak beraberinde uyarı da verir. Bu mod, hata ayıklama ve yeni politika kuralları oluşturmak için kullanışlıdır.
Disable: SELinux’un devre dışı olduğu durumdur. Tüm işlemlere izin verilir ve uyarı vermez.
Centos 8 üzerinde SElinux, varsayılan olarak Enforcing modunda gelir.
SELinux Modunu Kontrol Etme
sestatus
sestatus komutu ile Centos 8 üzerinde Selinux’un aktif veya pasif olduğunu kontrol edebilirsiniz.
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
Çıktı bize, SElinux’un aktif ve enforcing modunda olduğunu gösteriyor.
SElinux Centos 8 üzerinde devre dışı bırakma
Selinux’u geçici veya kalıcı olarak devre dışı bırakabiliyoruz. Geçici olarak devre dışı bıraktığımızda, sistemin yeniden başlatılması ile beraber tekrar devreye girecektir. Kalıcı olarak bıraktığınızda ise, tekrar aktif etmeniz gerekecektir.
setenforce 0
komutu ile SElinux devre dışı bırakılır. Fakat sistemi yeniden başlattığınızda, SElinux tekrar devreye girecektir.
SElinux’u Centos 8 üzerinde kalıcı olarak devre dışı bırakmak için aşağıdaki adımları takip edebiliriz.
nano /etc/sysconfig/selinux
SELINUX=enforcing satırını değiştirmemiz gerekiyor, aşağıdaki şekilde değiştirelim;
SELINUX=disabled
Dosyayı kaydedip çıkın ve sisteminizi yeniden başlatın;
reboot
Sisteminiz açıldığında SElinux’un durumunu kontrol edebiliriz.
sestatus
SELinux status: disabled
Sıkça Sorulan Sorular (SSS)
SELinux kapalı olursa sistem güvenliği tamamen risk altında mı kalır?
Evet. SELinux devre dışı bırakıldığında uygulamaların çekirdek seviyesindeki erişim kontrolleri ortadan kalkar. Bu yüzden sadece zorunlu durumlarda kapatılması tavsiye edilir.
SELinux politikaları nasıl özelleştirilir?semanage
ve audit2allow
gibi araçlar kullanılarak mevcut loglardan yeni politikalar üretilebilir ve sistemde özel izinler tanımlanabilir.
SELinux ile AppArmor arasındaki fark nedir?
SELinux Red Hat ve CentOS tabanlı sistemlerde varsayılan olarak gelirken, AppArmor daha çok Debian/Ubuntu tabanlı sistemlerde kullanılır. Temel farkları, politika yönetim mantıkları ve yapılandırma kolaylıklarıdır.
Geçici olarak SELinux’u devre dışı bırakmak sistemde sorun oluşturur mu?
Geçici devre dışı bırakma (setenforce 0
) sistemi yeniden başlatana kadar geçerlidir. Kritik servislerde güvenlik açığı yaratabilir, bu nedenle uzun süreli kullanım için önerilmez.
SELinux aktifken bazı servisler neden çalışmaz?
Çünkü varsayılan politikalar, uygulamaların ihtiyaç duyduğu dizin veya port erişimini kısıtlayabilir. Bu durumda ilgili servis için özel politika yazmak gerekir.
