Există mai multe moduri diferite în care SELinux poate funcționa. Acest lucru este definit de politica SELinux. În acest ghid, veți afla mai multe despre politicile SELinux și despre cum să setați o politică în SELinux.
Prezentare generală a politicii SELinux
Să avem o scurtă descriere a SELinux și a politicilor sale. SELinux este un acronim pentru „Security-Enhanced Linux.”Acesta cuprinde o serie de patch-uri de securitate către nucleul Linux. SELinux a fost dezvoltat inițial de Agenția Națională de Securitate (NSA) și lansat comunității de dezvoltare open-source în 2000 sub licența GPL. Acesta a fost fuzionat cu nucleul Linux principal în 2003.
SELinux oferă MAC (Control acces obligatoriu) mai degrabă decât DAC (Control acces discreționar) implicit. Acest lucru permite implementarea unor politici de securitate care nu ar fi posibile de implementat altfel.
Politicile SELinux sunt seturi de reguli care ghidează motorul de securitate SELinux. O politică definește tipurile de obiecte de fișiere și domeniile pentru procese. Rolurile sunt utilizate pentru limitarea accesului la domenii. Identitățile utilizatorului determină ce roluri pot fi atinse.
Există două politici SELinux disponibile:
- Direcționat: politica implicită. Implementează controlul accesului la procesele vizate. Procesele rulează într-un domeniu restrâns în care procesul are acces limitat la fișiere. Dacă un proces limitat este compromis, daunele sunt atenuate. În cazul serviciilor, numai aceste servicii specifice sunt plasate în aceste domenii.
- MLS: Stabilește pentru securitate pe mai multe niveluri. Consultați documentația Red Hat privind politica SELinux MLS.
Procesele care nu sunt vizate vor rula într-un domeniu neconfigurat. Procesele care rulează în domenii nelimitate se bucură de acces aproape complet. Dacă un astfel de proces este compromis, SELinux nu oferă nicio atenuare. Atacatorul poate avea acces la întregul sistem și resurse. Cu toate acestea, regulile DAC se aplică în continuare pentru domeniile neconfinite.
Următoarea este o listă scurtă de exemple de domenii neconfinite:
- domeniul initrc_t: programe init
- kernel_t domain: procesele kernelului
- unconfined_t domain: utilizatorii s-au conectat la sistemul Linux
Modificarea politicii SELinux
Următoarele exemple sunt efectuate în CentOS 8. Toate comenzile din acest articol sunt executate ca utilizator root. Pentru alte distribuții, vă rugăm să consultați tutorialul adecvat despre cum să activați SELinux.
Pentru a schimba o politică în SELinux, începeți prin a verifica starea SELinux. Starea implicită ar trebui să fie activată SELinux în modul „Aplicare” cu politica „vizată”.
Pentru a modifica politica SELinux, deschideți fișierul de configurare SELinux în editorul de text preferat.
Aici, obiectivul nostru este variabila „SELINUXTYPE” care definește politica SELinux. După cum puteți vedea, valoarea implicită este „țintită.”
Toți pașii demonstrați în acest exemplu sunt realizați în CentOS 8. În cazul CentOS, politica MLS nu este instalată implicit. Acest lucru este probabil să fie și în cazul altor distribuții. Aflați cum să configurați SELinux pe Ubuntu aici. Asigurați-vă că instalați mai întâi programul. În cazul Ubuntu, CentOS, openSUSE, Fedora, Debian și altele, numele pachetului este „selinux-policy-mls.”
$ dnf instalează selinux-policy-mls
În acest caz, vom schimba politica la MLS. Modificați valoarea variabilei în consecință.
Salvați fișierul și ieșiți din editor. Pentru a pune în aplicare aceste modificări, trebuie să reporniți sistemul.
$ repornițiVerificați modificarea prin emiterea următoarelor.
$ sestatusSchimbarea modurilor SELinux
SELinux poate funcționa în trei moduri diferite. Aceste moduri determină modul de aplicare a politicii.
- Aplicat: orice acțiune împotriva politicii este blocată și raportată în jurnalul de audit.
- Permisiv: orice acțiune împotriva politicii este raportată numai în jurnalul de audit.
- Dezactivat: SELinux este dezactivat.
Pentru a schimba temporar modul în SELinux, utilizați comanda setenforce. Dacă sistemul este repornit, sistemul va reveni la setarea implicită.
$ setenforce Aplicare$ setenforced Permisiv
Pentru a schimba permanent modul în SELinux, trebuie să modificați fișierul de configurare SELinux.
Salvați și închideți editorul. Reporniți sistemul pentru a pune în aplicare modificările.
Puteți verifica modificarea folosind comanda sestatus.
Concluzie
SELinux este un mecanism puternic pentru asigurarea securității. Sperăm că acest ghid te-a ajutat să înveți cum să configurezi și să gestionezi comportamentul SELinux.
Calcul fericit!