Başlamadan önce aşağıdaki kavramları öğrenmeniz gerekir:
Konular: süreçler veya kullanıcılar.
nesneler: dosyalar veya dosya sistemleri.
Tip Yürütme: SELinux'ta tüm özneler ve nesneler, _t ile biten bir tür tanımlayıcıya sahiptir. “Tür zorlaması, zorunlu bir erişim kontrol sisteminde erişimin, bir özne-erişim-nesne kuralına dayalı olarak izin yoluyla yönetildiği fikridir.
SELinux'ta, özne ve nesnelerin etiketlerine dayalı olarak tür zorlaması uygulanır. SELinux'un kendi başına şunu söyleyen kuralları yoktur /bin/bash yürütebilir /bin/ls. Bunun yerine, "user_t etiketli işlemler, bin_t etiketli normal dosyaları çalıştırabilir"e benzer kurallara sahiptir.” (kaynak https://wiki.gentoo.org/wiki/SELinux/Type_enforcement)
İsteğe Bağlı Erişim Kontrolü (DAC): DAC, dosyalar veya dizinler gibi nesnelere erişimi yönetmek için Linux'ta kullandığımız sahiplik ve izin sistemidir. İsteğe Bağlı Erişim Kontrolü'nün SELinux ile hiçbir ilgisi yoktur ve farklı bir güvenlik katmanıdır. DAC hakkında ek bilgi için Linux İzinleri Açıklamasını ziyaret edin.
Zorunlu Erişim Kontrolü (MAC): öznelerin nesnelerle etkileşimini kısıtlayan bir erişim denetimi türüdür. MAC kullanıcıları ile DAC'nin aksine politikaları değiştiremez.
Özneler ve nesneler, SELinux tarafından izlenen ve uygulanacak kurallar tarafından oluşturulan güvenlik politikalarına göre yönetilen bir güvenlik içeriğine (güvenlik öznitelikleri) sahiptir.
Rol Tabanlı Erişim Kontrolü (RBAC): rollere dayalı bir erişim kontrolü türüdür, hem MAC hem de DAC ile birleştirilebilir. RBAC politikaları, bireysel izin atamalarında türetilebilen DAC'nin aksine, bir kuruluş içindeki birçok kullanıcının yönetimini basitleştirir, denetim, yapılandırma ve politika güncellemelerini kolaylaştırır.
Zorlama modu: SELinux, öznelerin ilkelere dayalı olarak nesnelere erişimini kısıtlar.
İzinli mod: SELinux yalnızca yasal olmayan etkinlikleri günlüğe kaydeder.
SELinux özellikleri şunları içerir (Wikipedia listesi):
- Politikanın uygulamadan net bir şekilde ayrılması
- İyi tanımlanmış politika arayüzleri
- Politikayı sorgulayan ve erişim kontrolünü zorunlu kılan uygulamalar için destek (örneğin, crond işleri doğru bağlamda çalıştırma)
- Belirli politikaların ve politika dillerinin bağımsızlığı
- Belirli güvenlik etiketi biçimlerinin ve içeriklerinin bağımsızlığı
- Çekirdek nesneleri ve hizmetleri için ayrı etiketler ve kontroller
- Politika değişiklikleri için destek
- Sistem bütünlüğünü (etki alanı türü) ve veri gizliliğini korumak için ayrı önlemler (çok düzeyli güvenlik)
- Esnek politika
- İşlem başlatma ve devralma ve program yürütme üzerindeki kontroller
- Dosya sistemleri, dizinler, dosyalar üzerinde kontroller ve açık dosya tanımlayıcıları
- Soketler, mesajlar ve ağ arayüzleri üzerinde kontroller
- “Yeteneklerin” kullanımı üzerindeki kontroller
- Erişim Vektör Önbelleği (AVC) aracılığıyla erişim kararları hakkında önbelleğe alınmış bilgiler
- Varsayılan-reddet politika (politikada açıkça belirtilmeyen hiçbir şeye izin verilmez).
Kaynak: https://tr.wikipedia.org/wiki/Security-Enhanced_Linux#Features
Not: kullanıcılar SELinux ve passwd'de farklıdır.
Debian 10 Buster'da SELinux kurulumu
Benim durumumda SELinux, Debian 10 Buster'da devre dışı bırakıldı. SELinux'u etkin tutmak, bir Linux cihazını güvende tutmanın temel adımlarından biridir. Cihazınızdaki SELinux'un durumunu öğrenmek için şu komutu çalıştırın:
/# ses durumu
SELinux'un devre dışı bırakıldığını buldum, etkinleştirmek için önce, sonra bazı paketleri yüklemeniz gerekiyor uygun güncelleme, komutu çalıştırın:
/# apt kurulum selinux-temelleri selinux-policy-default
İstenirse basın Y yükleme işlemine devam etmek için. Çalıştırmak uygun güncelleme kurulumu bitirdikten sonra.
SELinux'u etkinleştirmek için aşağıdaki komutu çalıştırın:
/# selinux-etkinleştir
Gördüğünüz gibi SELinux düzgün bir şekilde etkinleştirildi. Tüm değişiklikleri uygulamak için sisteminizi talimat verildiği şekilde yeniden başlatmanız gerekir.
getenforce komutu, izin verilen veya zorlayıcı moddaysa, SELinux durumunu öğrenmek için kullanılabilir:
/# getenforce
İzinli mod, parametre ayarlanarak değiştirilebilir 1 (izin veren 0'dır). Komutu kullanarak yapılandırma dosyasındaki modu da kontrol edebilirsiniz Daha az:
/# daha az /etc/selinux/config
Çıktı:
Gördüğünüz gibi yapılandırma dosyaları izinli modu gösterir. Basın S bırakmak.
Bir dosya veya işlem güvenliği bağlamını görmek için -Z bayrağını kullanabilirsiniz:
/# ls -Z
etiket formatı kullanıcı:rol:tür:düzey.
semanage - SELinux Politika Yönetim aracı
semanage, SELinux Politika Yönetim aracıdır. Booleanları (çalışma sırasında işlemi değiştirmeye izin verir), kullanıcı rollerini ve seviyelerini, ağ arayüzlerini, politika modüllerini ve daha fazlasını yönetmeye izin verir. Semanage, kaynakları derlemeye gerek kalmadan SELinux ilkelerini yapılandırmaya izin verir. Semanage, OS ve SELinux kullanıcıları ile belirli nesnelerin güvenlik bağlamları arasındaki bağlantıya izin verir.
Semanaj hakkında ek bilgi için şu adresteki kılavuz sayfasını ziyaret edin: https://linux.ölmek.net/adam/8/semanaj
Sonuç ve notlar
SELinux, işlemlerden dosyalar, bölümler, dizinler vb. gibi sistem kaynaklarına erişimi yönetmenin ek bir yoludur. Rol, seviye veya türe göre büyük ayrıcalıkların yönetilmesine izin verir. Güvenlik önlemi olarak etkinleştirilmesi bir zorunluluktur ve kullanırken güvenlik katmanını hatırlamak ve etkinleştirdikten veya devre dışı bıraktıktan sonra sistemi yeniden başlatmak önemlidir (belirli testler dışında devre dışı bırakılması kesinlikle önerilmez). Bazen, SELinux bunu yasakladığı için sistem veya işletim sistemi izinleri verilmesine rağmen bir dosya erişimi engellenir.
Bu güvenlik çözümünün tanıtımı olarak SELinux hakkındaki bu makaleyi yararlı bulduğunuzu umuyorum, Linux ve ağ oluşturma hakkında daha fazla ipucu ve güncelleme için LinuxHint'i takip etmeye devam edin.
İlgili Makaleler:
- Ubuntu Eğitiminde SELinux
- CentOS 7'de SELinux Nasıl Devre Dışı Bırakılır
- Linux güvenlik güçlendirme kontrol listesi
- Ubuntu'da AppArmor Profilleri