Konuyu Açan
#1
[getsebool] anahtar yoluyla SELinux Boolean değerlerini görüntülemek ve değiştirmek, sistem güvenliğini ince ayarlarla yönetmenin önemli bir parçasıdır. Bu yazı, temel kavramları netleştirmek ve pratik kullanım adımlarını adım adım sunmak için hazırlandı. Amacımız, SELinux’nun erişim kontrol mantığını bozmadan nasıl ince ayar yapabileceğinizi somut örneklerle göstermektir.
Bu konudaki temel amaç, SELinux politikalarının hangi boole değerlerle hangi davranışları etkilediğini anlamaktır. Özellikle sunucu güvenliği üzerinde pratik bir etkisi olan bu araç, politikaları bozmayacak ölçüde kontrollü bir esneklik sağlar. SELinux konfigürasyonunuzda hangi boole değerinin hangi durumu tetiklediğini belgelerek ilerlemek, uzun vadede hatalı konfigürasyonlardan kaynaklanan güvenlik açıklarını azaltır. Bu açıdan, hangi hizmetin hangi davranışı gerektirdiğini belirleyip buna uygun boolean ayarlarını sistemli olarak test etmek en sağlıklı yaklaşım olur.
SELinux Boolean’ları, belirli esneklikleri açıp kapatmanıza olanak tanır. Örneğin, ağ üzerinden bağlantı kuran bir hizmetin gerektiğinde politikayı esnetmesine ya da kısıtlamaları korumasına olanak verir. Bu denetimler, merkezi politikaları değiştirmeden soruna yön veren bir ayar sağlar.
- Temel kavramlar: SELinux Boolean’ları, politikaların belirli güvenlik kararlarını etkileyen boole değerleridir. getsebool komutu, mevcut değerleri okunabilir metin halinde listeler ve set bool değerlerini değiştirmeye olanak verir.
- Görüntüleme: getsebool -a komutu ile tüm boole değerlerini ve durumlarını görülebilir. Örneğin httpd_can_network_connect sabitliğini kontrol etmek için kullanılır.
- Değiştirme: getsebool ile değer değiştirilemeyecekse bile, setsebool ile kalıcı veya geçici olarak değiştirmek mümkündür. Setsebool -P habil, disabil gibi anahtarlar ile kalıcı değişiklik sağlar; sadece geçici için -P olmadan kullanılır.
- Uygulama örnekleri: Örneğin bir web sunucusu için ağ bağlantısına ihtiyaç duyulan senaryolarda httpd_can_network_connect boole’unu açıp kapatmak sık karşılaşılan durumdur.
- Etki ve riskler: Boolean değişiklikleri, geniş politikaları doğrudan etkilemez, ancak hizmetlerin davranışlarını değiştirdiği için güvenlik duruşunu etkiler. Değişiklikler sonrası loglar ve denetimler ile davranış doğrulanmalıdır.
- İyi uygulama: Değişiklikler önce geçici olarak test edilmeli, ardından gerektiğinde -P ile kalıcı hale getirilmelidir. Tercihen politikayı tümüyle değiştirmek yerine, gerektirdiği kadar esneme sağlanmalıdır.
- İzleme ve doğrulama: sestbool veya semodule ile politika dalgalanmalarını izlemek, hizmetlerin çalıştığından emin olmak ve loglarda beklenmedik erişim girişimlerini takip etmek gerekir.
KOD
123456789101112131415
[b]Tüm boolean değerlerini listelemek[/b]
getsebool -a
[b]httpd'nin network bağlantısına izin veren değeri açmak (geçici)[/b]
setsebool httpd_can_network_connect=1
[b]Ağ bağlantı izni kalıcı hale getirmek[/b]
setsebool -P httpd_can_network_connect=1
[b]Bir değeri kapatmak (kalıcı)[/b]
setsebool -P httpd_read_user_content=0
[b]Belirli bir boole değeri için durum kontrolü[/b]
getsebool httpd_can_network_connect
Bu konudaki temel amaç, SELinux politikalarının hangi boole değerlerle hangi davranışları etkilediğini anlamaktır. Özellikle sunucu güvenliği üzerinde pratik bir etkisi olan bu araç, politikaları bozmayacak ölçüde kontrollü bir esneklik sağlar. SELinux konfigürasyonunuzda hangi boole değerinin hangi durumu tetiklediğini belgelerek ilerlemek, uzun vadede hatalı konfigürasyonlardan kaynaklanan güvenlik açıklarını azaltır. Bu açıdan, hangi hizmetin hangi davranışı gerektirdiğini belirleyip buna uygun boolean ayarlarını sistemli olarak test etmek en sağlıklı yaklaşım olur.
