SELinux, çoğu modern sistemde göz korkutucu ve uygulanması çok zor görünebilir. Ancak, SELinux'u yapılandırmanın hem güvenliği sağlamada hem de sorun gidermede büyük faydaları vardır.
Bu öğretici, SELinux tarafından uygulanan çeşitli kavramları tartışacak ve SELinux'u uygulamanın çeşitli pratik yöntemlerini keşfedecektir.
NOT: Başlamadan önce, bu öğreticideki komutları kök kullanıcı veya sudoers grubu içindeki bir kullanıcı olarak kullanmak iyidir.
SELinux Paketlerini Kurun
SELinux politikalarıyla çalışmaya yardımcı olacak çeşitli SELinux paketleri kuralım.
SELinux paketlerini kurmaya devam etmeden önce, mevcut sistemde hangilerinin kurulu olduğunu doğrulamamız iyi olur.
REHL dağıtımlarının çoğu kurulumunda, bazı paketler varsayılan olarak kurulur. Bu paketler şunları içerir:
- setools - bu paket, günlükleri izlemek, ilkeleri sorgulamak ve bağlam dosyası yönetimi için kullanılır.
- policycoreutils-python - SELinux'u yönetmek için python çekirdek yardımcı programları sağlar
- policycoreutils - bu paket ayrıca SELinux'u yönetmek için yardımcı programlar da sağlar.
- mcstrans - mcstrans, çeşitli seviyeleri kolayca anlaşılabilen kolay biçimlere çeviren SELinux çeviri arka plan programı sağlar.
- setools-console - setools'a benzer.
- Selinux-policy - SELinux politikasını yapılandırmak için bir referans sağlar
- Selinux politikası hedefli - SELinux politikasına benzer
- Libselinux-utils - SELinux'u yönetmeye yardımcı olan SELinux libselinux yardımcı programları
- Setroubleshoot-server - SELinux sorun giderme araçları
Sisteminizde hangi paketlerin kurulu olduğunu doğrulamak için rpm -qa komutunu kullanabilir ve sonucu SELinux için grep'e şu şekilde aktarabilirsiniz:
rpm -qa | grep selinuxlibselinux-utils-2.9-4.el8_3.x86_64
rpm-eklenti-selinux-4.14.3-4.el8.x86_64
selinux-politika-hedefli-3.14.3-54.el8_3.2.noark
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noark
libselinux-2.9-4.el8_3.x86_64
Bu size SELinux desteği için kurulan tüm paketlerin bir çıktısını vermelidir
Sisteminizde tüm SELinux paketleri kurulu değilse, bunları aşağıdaki komutta gösterildiği gibi kurmak için yum kullanın:
yum policycoreutils'i kurun policycoreutils-python-utils selinux-policy selinux-politika hedefli libselinux-utils setroubleshoot-server setools setools-console mcstransSELinux Modları ve Durumları
Şimdi SELinux, özellikle SELinux modları ile oynamaya başlayalım.
SELinux Modları
Etkinleştirildiğinde, SELinux üç olası mod olabilir:
- zorlama
- izin veren
- devre dışı
Zorlama Modu
SELinux modu uygulanacaksa, herhangi bir kullanıcı veya işlem tarafından sisteme yetkisiz erişimin reddedilmemesini sağlayacaktır. Zorlama modu ayrıca yetkisiz erişim girişimlerinin günlüklerini tutar.
İzinli Mod
İzinli mod, kısmen etkinleştirilmiş bir SELinux durumu gibi davranır. Bu modda, SELinux bu modda politikalarını zorlamadığından erişim reddedilmez. Ancak, izin veren mod, herhangi bir politika ihlali girişiminin günlüğünü tutar. Bu mod, kullanıcılar ve bileşenler hala sistemle etkileşime girebildiği ancak yine de günlükleri toplayabildiği için, tam olarak etkinleştirilmeden önce test için çok verimli. Bu, sisteminizde uygun gördüğünüz şekilde ince ayar yapmanızı sağlar.
Engelli Modu
Devre dışı modu, SELinux'un devre dışı bırakıldığı ve herhangi bir Güvenlik sunmadığı devre dışı bir durum olarak da görülebilir.
SELinux Eyaletleri
SELinux bir sisteme kurulduğunda. İkili durumları olabilir: etkin ve devre dışı. SELinux'un durumunu görüntülemek için şu komutu kullanın:
getenforcedevre dışı
Yukarıdaki çıktı, SELinux'un şu anda devre dışı olduğunu gösterir.
Sesstatus komutunu aşağıda gösterildiği gibi de kullanabilirsiniz:
ses durumuSELinux durumu: devre dışı
SELinux'u Etkinleştirin ve Devre Dışı Bırakın
SELinux'un durumları ve yapılandırması, /etc/selinux/config içinde bulunan Yapılandırma dosyası tarafından işlenir. İçeriğini görüntülemek için cat komutunu kullanabilirsiniz.
kedi /etc/selinux/config#Bu dosya, sistemdeki SELinux'un durumunu kontrol eder.
#SELINUX= şu üç değerden birini alabilir:
#enforcing - SELinux güvenlik ilkesi uygulanır.
#permissive - SELinux, zorlamak yerine uyarıları yazdırır.
#disabled - SELinux ilkesi yüklenmedi.
SELINUX=zorlama
#SELINUXTYPE= şu üç değerden birini alabilir:
# hedefli - Hedeflenen süreçler korunur,
# minimum - Hedeflenen politikanın değiştirilmesi. Yalnızca seçili işlemler korunur.
# mls - Çok Düzeyli Güvenlik koruması.
SELINUXTYPE=hedefli
Yukarıdaki çıktıdan, etkinleştirilmiş iki ana yönergemiz var. SELINUX yönergesi, SELinux'un yapılandırıldığı modu belirledi. SELINUXTYPE yönergesi, SELinux ilke kümesini belirtir. Varsayılan olarak SELinux, erişim denetimi izinlerini özelleştirmenize olanak tanıyan hedeflenmiş bir politika kullanır. Diğer politika, Çok düzeyli güvenlik veya MLS'dir.
Bazı sürümlerde minimum politika bulabilirsiniz.
cd /etc/selinux/[ls -l
toplam 4
-rw-r--r-- 1 kök kök 548 16 Şubat 22:40 yapılandırma
drwxr-xr-x 1 kök kök 4096 16 Şubat 22:43 mls
-rw-r--r-- 1 kök kök 2425 21 Tem 2020 semanage.konf
drwxr-xr-x 1 kök kök 4096 16 Şubat 22:40 hedeflendi
Şimdi sistemde SELinux'un nasıl etkinleştirileceğini görelim. Önce SELINUX modunu izin verilen ve zorunlu olmayan olarak ayarlamanızı öneririz.
nano /etc/selinux/configŞimdi SELINUX yönergesini şu şekilde düzenleyin:
SELINUX=izin verenDosyayı kaydettikten sonra sistemi yeniden başlatın.
yeniden başlatNOT: SELinux'u uygulamadan önce SELINUX yönergesini izin veren olarak ayarlamanızı önemle tavsiye ederiz.
Sistemi yeniden başlattıktan sonra, /var/log/messages içinde SELinux tarafından rapor edilen günlükleri kontrol edin.
Ardından, yönergeyi /etc/selinux/config içinde zorlamak üzere ayarlayarak hata olmadığından emin olun ve SELinux'u zorunlu kılın
Son olarak, sesstatus komutunu kullanarak SELinux durumunu görüntüleyebilirsiniz:
SELinux durumu: etkinSELinuxfs montajı: /sys/fs/selinux
SELinux kök dizini: /etc/selinux
Yüklenen politika adı: hedeflendi
Geçerli mod: zorlama
Yapılandırma dosyasındaki mod: hata (Başarı)
Politika MLS durumu: etkin
Politika reddi_unknown durumu: izin verildi
Bellek koruma kontrolü: gerçek (güvenli)
Maksimum çekirdek politikası sürümü: 31
Çeşitli SELinux modları arasında geçiş yapmak için setenforce komutunu da kullanabilirsiniz. Örneğin, modu izinli olarak ayarlamak için şu komutu kullanın:
setenforce izinliBu mod geçicidir ve yeniden başlatmanın ardından yapılandırma dosyasındaki birine geri yüklenecektir.
sesstatus SELinux durumu: etkinSELinuxfs montajı: /sys/fs/selinux
SELinux kök dizini: /etc/selinux
Yüklenen politika adı: hedeflendi
Geçerli mod: izin verilen
Yapılandırma dosyasındaki mod: zorlama
Politika MLS durumu: etkin
Politika reddi_unknown durumu: izin verildi
Bellek koruma kontrolü: gerçek (güvenli)
Maksimum çekirdek politikası sürümü: 31
SELinux İlkesi ve Bağlam
SELinux'a yeni başlayanlar için kafa karışıklığını önlemek için, SELinux politikalarının nasıl uygulandığına derinlemesine girmeyeceğiz, sadece size bir fikir vermesi için ona dokunacağız.
SELinux, güvenlik politikalarını uygulayarak çalışır. Bir SELinux politikası, sistemdeki her nesne için erişim haklarını tanımlamak için kullanılan bir kuralı ifade eder. Nesneler, kullanıcılara, işlemlere, dosyalara ve rollere atıfta bulunur.
Her bağlam, user:role:type:level biçiminde tanımlanır.
Örneğin, ana dizininizde bir dizin oluşturun ve aşağıdaki komutlarda gösterildiği gibi SELinux güvenlik bağlamını görüntüleyin:
mkdir ~/linuxhint_dirls -Z ~/ | grep linux ipucu
Bu, çıktıyı aşağıda gösterildiği gibi gösterecektir:
unconfined_u:object_r:user_home_t:s0 linuxhint_dirGüvenlik bağlamlarına sahip diğer dizinleri de şu şekilde bulabilirsiniz:
sistem:_u:object_r:user_home_t:s0Yukarıdaki çıktının user:role:type:level sözdizimini takip ettiğini fark edebilirsiniz.
Sonuç
Bu, CentOS 8 kullanarak SELinux'a yeni başlayanlar için öğreticiydi. Eğitim yeni başlayanlar için tasarlanmış olsa da, ayaklarınızı SELinux'ta çalıştırmak ve SELinux'un korkutucu doğasını ortadan kaldırmak için fazlasıyla yeterli.
Okuduğunuz için teşekkürler.