# SELinux
Security-Enhanced Linux (SELinux) Linux çekirdeği güvenlik modülüdür. SELinux Amerika Birleşik Devletleri Savunma Bakanlığı tarafından geliştirilmeye başlanmıştır zorunlu erişim denetimleri (MAC) de dahil olmak üzere erişim denetimi güvenlik ilkelerini desteklemek için bir mekanizma sunmaktadır.
SELinux, çeşitli Linux dağıtımlarına eklenen çekirdek modülleri ve kullanıcı alanı araçları setidir. Yazılım mimarisi, güvenlik kararlarının uygulanmasını güvenlik politikasından ayrı tutmaya ve güvenlik politikasının uygulanmasıyla ilgili yazılım miktarını düzleştirmeye çalışıyor. SELinux'un altında yatan kilit kavramlar Ulusal Güvenlik Ajansı tarafından birkaç önceki projeye kadar izlenebilir.


## Bakış.
SELinux'u entegre eden bir Linux çekirdeği, kullanıcı alanında çalışan yazılımları, dosyalara ve ağ kaynaklarına erişimi kısıtlayan zorunlu erişim kontrolü politikalarına zorlar. Erişim düzeyini yazılımın işlevleri için gereken asgari seviyede sınırlamak, bu programların arızalanması veya tehlikeye atılması (örneğin arabellek aşımı veya yanlış yapılandırmalar yoluyla) zarar verme yeteneğini azaltır veya ortadan kaldırır. Bu sınırlama mekanizması geleneksel Linux erişim kontrol mekanizmalarından bağımsız olarak çalışır. "Kök" süper kullanıcısı konseptine sahip değildir ve geleneksel Linux güvenlik mekanizmalarının (setuid / setuid ikililerine bağımlılık gibi) bilinen eksikliklerini paylaşmaz.
"Değiştirilmemiş" bir Linux sisteminin (SELinux'suz bir sistem) güvenliği, çekirdeğin, ayrıcalıklı tüm uygulamaların ve yapılandırmalarının doğruluğuna bağlıdır. Bu alanlardan herhangi birindeki bir sorun tüm sistemin güvenliğini tehlikeye atar. Buna karşılık, "değiştirilmiş" bir sistemin (bir SELinux modulüne sahip) güvenliği öncelikle çekirdeğin doğruluğuna ve güvenlik politikası yapılandırmasına bağlıdır. Uygulamanın doğru olması veya konfigürasyonu ile ilgili problemler, bireysel kullanıcı programlarının ve sistemin sınırlı şekilde ele geçirilmesine izin verebilir, ancak diğer kullanıcı programlarının sistem veya sistemin güvenliğine bir bütün olarak tehdit oluşturmazlar.
Saf bir perspektiften SELinux, zorunlu erişim denetimleri, zorunlu bütünlük denetimleri, rol tabanlı erişim denetimi (RBAC) ve tür uygulama mimarisi gibi konulardan oluşan bir kavram ve yetenek melezi sağlar. Üçüncü taraf araçları birinin çeşitli güvenlik politikaları oluşturmasını sağlar.


## Tarihi.
UNIX (daha doğrusu POSIX) bilgi işlem ortamında zorunlu ve isteğe bağlı erişim denetimlerinin (MAC ve DAC) sağlanmasına yönelik bir yaklaşımı yönlendiren ilk çalışma, Ulusal Güvenlik Ajansı'nın Güvenilir UNIX (TRUSIX) Çalışma Grubuna atfedilebilir. 1987-1991 yılları arasında bir araya gelerek bir Gökkuşağı Kitabı (# 020A) yayınladı ve sonuçta yayınlanmamış olan resmi bir model ve ilişkili değerlendirme kanıt prototipi (# 020B) üretti.
SELinux, Linux topluluğuna zorunlu erişim denetimlerinin değerini ve bu kontrollerin Linux'a nasıl eklenebileceğini göstermek için tasarlandı. Başlangıçta, SELinux'u oluşturan yamaların Linux çekirdeği kaynağına uygulanması gerekmekteydi; Ancak, Linux çekirdeğinin 2.6 serisinde bu yamalar Linux çekirdeği ana hattıyla birleşti.
SELinux'un orijinal birincil geliştiricisi olan NSA, 22 Aralık 2000'de GNU GPL kapsamında açık kaynak geliştirme topluluğunun ilk sürümünü yayımladı. Yazılım 8 Ağustos 2003'te piyasaya sürülen Linux çekirdeği 2.6.0-test3 ana hattına dahil edildi. Diğer önemli katılımcılar arasında Red Hat, Network Associates (McAfee), Secure Computing Corporation (Honeywell'den ayrıldı), Tresys Technology ve Trusted Computer Solutions yer alıyor. FLASK / TE uygulamasının deneme portları, FreeBSD ve Darwin işletim sistemleri için TrustedBSD Projesi aracılığıyla sağlanmıştır.
SELinux, Flux Gelişmiş Güvenlik Çekirdeğini (FLASK) uygular. Böyle bir çekirdek, Fluke işletim sisteminde prototip olarak kullanılan mimari bileşenleri içerir. Bunlar, tür uygulama, rol tabanlı erişim denetimi ve çok düzeyli güvenlik kavramlarına dayanan kurallar da dahil olmak üzere, çeşitli zorunlu erişim denetimi ilkelerini uygulamak için genel bir destek sağlar. FLASK, DTOS'un tasarlanması ve uygulanması üzerinde etkisi olan Güvenilir Bilişim Sistemleri'nden bir araştırma projesinin yanı sıra Mach'dan türeyen Dağıtılmış Güvenilir İşletim Sistemi olan DTOS'a dayanıyordu.


## Özellikleri.
SELinux özellikleri şunları içerir:
  - iyi tanımlanmış ilke arabirimleri
  - ilkeyi sorgulayan uygulamalar ve erişim denetiminin uygulanması için destek (örneğin, doğru çalışan bağlamda çalışan işler)
  - spesifik politikaların ve politika dillerinin bağımsızlığı
  - özel güvenlik etiketi formatlarının ve içeriğinin bağımsızlığı
  - çekirdek nesneleri ve hizmetleri için bireysel etiketler ve kontroller
  - politika değişiklikleri için destek
  - sistem bütünlüğünü (alan türü) ve veri gizliliğini (çok seviyeli güvenlik) korumak için ayrı tedbirler
  - esnek politika
  - süreç başlatma, devralma ve program yürütme üzerinde kontroller
  - dosya sistemleri, dizinler, dosyalar ve açık dosya tanımlayıcıları üzerinde denetimler
  - yuvalar, mesajlar ve ağ arayüzleri üzerindeki denetimler
  - "yetenekler" kullanımını kontrol eder
  - Erişim Vektörü Önbellek (AVC) üzerinden erişim kararları hakkında önbelleğe alınmış bilgi


## Uygulamalar.
SELinux, Red Hat Enterprise Linux (RHEL) sürüm 4 ve gelecekteki tüm sürümlerin bir parçası olarak ticari destek alabilir. Bu varlığı aynı zamanda CentOS ve Scientific Linux'un ilgili sürümlerine de yansır. RHEL4'te desteklenen politika, maksimum kullanım kolaylığı hedefleyen ve bu nedenle mümkün olduğunca kısıtlayıcı olmayan hedeflenen politikadır. RHEL'in gelecek versiyonlarının hedeflenen politikada daha kısıtlayıcı politikalar anlamına gelecek daha fazla hedefi olması planlanmaktadır. SELinux, 4.3 sürümünden beri (Android Jelly Bean) Android'de uygulanmaktadır.
Fedora, ücretsiz topluluk tarafından desteklenen GNU / Linux dağıtımlarında Fedora Core 2'den beri varsayılan olarak destek olmak için en erken uygulayıcılardan biriydi. Diğer dağıtımlar, etch release sürümünden beri Debian ve 8.04 Hardy Heron sürümünden itibaren Ubuntu gibi destekleri içermektedir. 11.1 sürümünden itibaren, openSUSE SELinux "temel etkinleştirme" içerir. SUSE Linux Enterprise 11 SELinux'u bir "teknoloji önizlemesi" olarak sunmaktadır.
SELinux, CoreOS Container Linux ve rkt gibi Linux konteynerlerine dayanan sistemlerde popülerdir. Ek güvenlik kontrolü olarak yararlıdır.


## Samsung Knoxx.
Süreçlerin izolasyonu da sanallaştırma gibi mekanizmalarla gerçekleştirilebilir; OLPC (One Laptop per Child) projesi, örneğin, ilk uygulamasında, hafif Linux-VServer'daki bireysel uygulamaları sandbox yaptı. Ayrıca NSA, Android'de bazı SELinux kavramlarını benimser.
General Dynamics, Red Hat Enterprise Linux için çok seviyeli bir güvenlik geliştirmesi olan PitBull Trusted Computing Platform'ı kurar ve dağıtır.