A SELinux egy olyan Linux biztonsági modul, ami teljes és részletekbe menően meghatározható irányítást biztosít a Linux tulajdonosok számára a rendszereikben tárolt fájlok és információk felett. Bár először 1998-ban adták ki, a main-line Linux kernelbe 2003.08.08-án integrálták. Felhasználói közé tartozik többek közt az Amerikai Nemzetbiztonsági Hivatal is.
A Linux-alapú rendszerekbe igazán a SELinux által került integrálásra a Mandatory Access Control (MAC, előre meghatározott hozzáférés-vezérlés), amihez a rendszer pontos kategorizálást használ minden fájl, folyamat vagy akár hálózati erőforrás esetében. Ezeket a kategóriákat egy Linux user, egy role, egy type label és egy sensitivity label hozzáadása alapján különbözteti meg, és saját, személyre szabható policy-k alapján szabályozza az adott kategóriákba beosztott tartalmakat.
Működése egy adott OS-en lekérdezhető, három állása lehetséges;
- enforcing: minden funkció működik, és a SELinux végrehajt minden előírt lépést
- permissive: a SELinux aktív, de csak figyelmeztetést küld, és logot vezet az aktivitásról
- disabled: teljesen letiltva
A SELinux nem tesz különbséget fájlok és folyamatok között, egy user jogai vagy egy fájl hozzáférési és módosítási adatai ugyanúgy beállíthatóak, mint egy daemon folyamaté. Ugyanakkor különbséget tesz a user és a user által futtatott folyamatok között; egy user GUI vagy user shell rendelkezhet teljes hozzáféréssel a home directory minden adatához, de pl. egy ugyanerről az userről futtatott e-mail kliens hozzáférése szabályozható vagy letiltható.
A project GYIK-oldalán felmerült a kérdés, hogy a SELinux tulajdonképpen egy Linux firewall-e, vagy használható-e tűzfalként. A fejlesztők erre azt a választ adták, hogy bár hálózati tűzfalnak nem neveznék, egyfajta fájlok közti tűzfalként lehet értelmezni. Szerintük minél több rétegű a rendszervédelem annál jobb, és a SELinuxot inkább a védelem egyik rétegeként tudják elképzelni.
A SELinuxhoz (a fejlesztők által a hivatalos oldalon ajánlott) premade policy-k is rendelkezésre állnak itt, a Debianhoz használható beállítások itt, a Boolean alapú vezérléshez pedig a CentOS guide nyújthat komoly segítséget az érdeklődőknek.