15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
25.08.2025

Ce este SELinux și cum poate îmbunătăți securitatea pe serverele Linux?

Când majoritatea administratorilor de sisteme se gândesc la consolidarea unui server Linux, se concentrează pe fundamentele: menținerea pachetelor actualizate, configurarea regulilor firewall-ului și restricționarea accesului SSH. Acestea sunt toți pași valizi și necesari — dar lasă un decalaj semnificativ. Unul dintre mecanismele de securitate cele mai puternice și frecvent subutilizate disponibile pe Linux este SELinux (Security-Enhanced Linux), un cadru de control obligatoriu al accesului la nivel de kernel conceput pentru a conține amenințări înainte ca acestea să se transforme în compromisuri complete ale sistemului.

Indiferent dacă rulezi un mediu VPS Hosting, o aplicație cu trafic ridicat pe Dedicated Servers, sau o platformă Shared Web Hosting multi-tenant, SELinux poate fi stratul decisiv care transformă o breșă serioasă într-un incident conținut și recuperabil.

Ce este SELinux?

SELinux este un modul de securitate al kernel-ului Linux care implementează Mandatory Access Control (MAC). Pentru a înțelege de ce acest lucru este important, trebuie mai întâi să înțelegi ce înlocuiește — sau mai degrabă, ce completează.

Modelul tradițional de securitate Linux se bazează pe Discretionary Access Control (DAC). Sub DAC, permisiunile de acces sunt determinate de proprietatea fișierelor și apartenența la grup. Utilizatorul root deține putere nelimitată asupra întregului sistem. Dacă un atacator obține root, obține totul.

Sub modelul MAC al SELinux, accesul este guvernat de politici de securitate la nivel de sistem care sunt aplicate la nivel de kernel. În mod critic, chiar și utilizatorul root este supus acestor restricții. Un proces care rulează ca root nu poate efectua acțiuni pe care politica sa SELinux nu le permite în mod explicit.

SELinux a fost dezvoltat inițial de National Security Agency (NSA) în colaborare cu Red Hat și a fost integrat în kernel-ul Linux principal la începutul anilor 2000. Astazi este o componentă standard a distribuțiilor Linux de nivel enterprise, inclusiv RHEL, CentOS, Fedora, AlmaLinux și Rocky Linux.

Unde securitatea tradițională Linux nu reușește

Modelul clasic de permisiuni UNIX a servit Linux bine timp de decenii, dar poartă slăbiciuni structurale pe care atacatorii moderni le exploatează în mod obișnuit:

  • Root este omnipotent. Orice exploit care escaladează cu succes la root oferă atacatorului acces nelimitat la întregul sistem — fișiere, baze de date, socket-uri de rețea și toate.
  • Compromisul serviciului egal cu compromisul sistemului. Un modul Apache vulnerabil, un script PHP prost scris sau o aplicație configurată greșit pot fi folosite pentru a se deplasa lateral pe întregul server.
  • Vectorii de atac moderni ocolesc DAC în întregime. Shell-urile web, exploatările de escaladare a privilegiilor, scăpările de containere și atacurile lanțului de aprovizionare sunt concepute pentru a funcționa în limitele permisiunilor tradiționale, în timp ce încă provoacă daune catastrofale.

Scenariu de atac din lumea reală

Luați în considerare o vulnerabilitate comună a CMS care permite unui atacator să încarce și să execute un shell web.

Fără SELinux: Atacatorul citește config.php, extrage credențialele bazei de date, descarcă baza de date, se deplasează lateral la alte site-uri găzduite și potențial obține acces complet la root. Întreaga stivă este compromisă dintr-un singur punct de intrare.

Cu SELinux: Procesul serverului web Apache rulează în domeniul httpd_t. Politica limitează strict ceea ce httpd_t poate accesa. Shell-ul web nu poate citi fișiere în afara domeniului de conținut desemnat, nu poate deschide conexiuni de rețea neautorizate și nu poate atinge fișierele de configurare a sistemului. Breșa este conținută la nivelul aplicației.

Aceasta este propunerea de valoare de bază a SELinux: conținerea daunelor prin confinarea proceselor.

Cum funcționează SELinux: contexte de securitate și aplicarea politicii

SELinux funcționează prin atribuirea unui context de securitate (etichetă) fiecărui proces, fișier, port și socket de rețea din sistem. Politicile definesc apoi care contexte sunt permise să interacționeze între ele. Kernel-ul aplică aceste reguli la fiecare încercare de acces.

Un exemplu concret

ObiectContext de securitate
Procesul Apachehttpd_t
Fișiere websitehttpd_sys_content_t
Fișier de parolă shadowshadow_t

Politica SELinux permite httpd_t să citească fișiere etichetate httpd_sys_content_t. Nu permite httpd_t să citească shadow_t.

Dacă Apache — fie în mod legitim, fie din cauza exploatării — încearcă să citească /etc/shadow, kernel-ul refuză cererea și scrie o intrare detaliată de încălcare în /var/log/audit/audit.log. Atacul este blocat și documentat simultan.

Moduri de operare SELinux

SELinux funcționează în trei moduri distincte:

ModComportament
EnforcingPoliticile sunt aplicate în mod activ. Încălcările sunt blocate și înregistrate.
PermissiveÎncălcările sunt înregistrate dar nu sunt blocate. Util pentru audit și dezvoltarea politicii.
DisabledSELinux este complet dezactivat. Nu se recomandă pentru mediile de producție.

Verificarea și setarea modului curent

# Check current SELinux status
getenforce
sestatus

# Temporarily switch to permissive mode (no reboot required)
setenforce 0

# Switch back to enforcing mode
setenforce 1

Pentru a schimba permanent modul, editează /etc/selinux/config și setează SELINUX=enforcing (sau permissive), apoi repornește.

> Bună practică: Implementează servere noi în modul Permissive mai întâi. Revizuiește jurnalele de audit, identifică orice procese legitime care sunt marcate, reglează fin politicile tale și apoi treci la Enforcing pentru producție. Această abordare previne întreruperile operaționale, asigurând că politicile tale sunt corecte.

Tipuri de politici SELinux

SELinux vine cu mai multe tipuri de politici potrivite pentru medii diferite:

Politica țintă (implicit și recomandată)

Aplică restricții MAC doar la serviciile orientate către rețea, cum ar fi Apache, Nginx, Postfix, Dovecot și DNS. Toate celelalte procese rulează într-un domeniu neconfinat. Aceasta este cel mai bun echilibru între securitate și ușurință de utilizare pentru marea majoritate a sarcinilor VPS și server dedicat.

Politica strictă

Aplică MAC la toate procesele din sistem, inclusiv sesiunile utilizatorului. Oferă securitate maximă, dar necesită semnificativ mai mult management al politicii și expertiză operațională.

MLS/MCS (Multi-Level Security / Multi-Category Security)

Tipuri de politici avansate concepute pentru medii de nivel guvernamental, clasificate sau foarte reglementate, unde datele trebuie izolate pe mai multe niveluri de sensibilitate simultan.

Pentru majoritatea implementărilor de servere de producție, Politica țintă este alegerea corectă.

De ce SELinux este important pentru hosting, DevOps și conformitate

SELinux oferă beneficii de securitate tangibile într-o gamă largă de contexte operaționale:

Izolarea proceselor

Fiecare serviciu confinat funcționează în propriul domeniu de securitate. Compromisul unui serviciu — să spunem, o aplicație web — nu acordă acces la alte servicii care rulează pe același gazdă. Aceasta este deosebit de valoroasă în mediile cu mai multe aplicații pe server.

Aplicarea privilegiilor minime

SELinux aplică principiul privilegiilor minime la nivel de kernel. Procesele pot accesa doar resursele de care au nevoie în mod explicit. Chiar dacă un atacator obține root într-un proces confinat, nu poate depăși permisiunile definite de politică.

Piste de audit și forenzică

Fiecare încercare de acces refuzat este înregistrată în /var/log/audit/audit.log cu context complet: procesul implicat, resursa pe care a încercat-o să acceseze, contextele de securitate ale ambelor și o marcă de timp. Aceasta face ca forenza post-incident să fie dramatic mai eficientă.

Securitatea containerelor

SELinux previne containerele Docker și Podman să scape din limitele lor și să acceseze resursele gazdei. Aceasta este un strat de apărare critic pentru sarcinile containerizate în care vulnerabilitățile de scăpare din container sunt o clasă de atac cunoscută.

Conformitate cu reglementările

SELinux este un control obligatoriu în mai multe cadre de conformitate, inclusiv PCI DSS, HIPAA și standarde de securitate militare/guvernamentale. Rularea SELinux în modul Enforcing cu o politică documentată este adesea o condiție prealabilă pentru trecerea auditurilor de securitate în industrii reglementate.

Comenzi esențiale SELinux pentru administratorii de sisteme

Iată cele mai frecvent utilizate comenzi pentru gestionarea SELinux în operațiunile zilnice:

Verifică starea SELinux

getenforce
sestatus

Restaurează contextele fișierelor după mutarea fișierelor web

Când fișierele sunt mutate în loc să fie copiate, pot reține etichete de securitate incorecte. Utilizează restorecon pentru a remedia aceasta:

restorecon -Rv /var/www/html

Listează etichetele de securitate ale fișierelor

ls -Z /var/www/html

Permite serviciului web conexiuni de ieșire (de exemplu, pentru apeluri API sau proxying)

setsebool -P httpd_can_network_connect 1

Permite Apache să se conecteze la o bază de date

setsebool -P httpd_can_network_connect_db 1

Revizuiește acțiunile recent refuzate în jurnalul de audit

ausearch -m avc -ts recent

Generează un modul de politică personalizat din negări de audit

audit2allow -a -M my_custom_policy
semodule -i my_custom_policy.pp

> Important: Investighează întotdeauna negările de audit înainte de a crea reguli de permisiune. audit2allow este un instrument puternic, dar permisiunea oarbă a tuturor negărilor anulează scopul SELinux. Înțelege ce permite fiecare regulă înainte de a o aplica.

Capcane comune SELinux și cum să le eviți

Dezactivarea SELinux în loc să-l repari. Cea mai comună greșeală pe care o fac administratorii este dezactivarea permanentă a SELinux atunci când întâlnesc o negare. Aceasta elimină un întreg strat de protecție. În schimb, utilizează audit2allow și setsebool pentru a aborda probleme specifice, menținând SELinux activ.

Etichete de fișiere incorecte după implementări manuale. Dacă implementezi fișiere de aplicație copiindu-le dintr-o locație non-standard, pot moșteni etichete incorecte. Rulează întotdeauna restorecon după operațiuni manuale de fișiere în rădăcinile web și directoarele de aplicații.

Nerevizuirea jurnalelor în modul Permissive. Omiterea fazei Permissive și trecerea directă la Enforcing pe un server de producție este o rețetă pentru întreruperi neașteptate. Validează întotdeauna politicile împotriva traficului real înainte de a le aplica.

SELinux și AlexHost: Securitate gata pentru producție de la bază

Serverele AlexHost care rulează distribuții Linux enterprise (AlmaLinux, Rocky Linux, CentOS) vin cu SELinux disponibil din cutie. Indiferent dacă implementezi o stivă de aplicații web, un server de bază de date sau un mediu de microservicii containerizate, SELinux oferă stratul fundamental de control al accesului care ține sarcinile tale reziliente împotriva exploatării.

Dacă gestionezi serverul tău printr-un panou de control, mediile VPS cu cPanel sunt complet compatibile cu SELinux în modul țintă, iar cPanel însuși vine cu configurații conștiente de SELinux pentru serviciile sale gestionate.

Pentru echipe care au nevoie de control complet asupra poziției lor de securitate — inclusiv module de politică SELinux personalizate, configurații MLS sau consolidare condusă de conformitate — Dedicated Servers oferă izolarea și accesul la nivel de root necesar pentru a implementa și menține politici MAC de nivel enterprise fără constrângerile infrastructurii partajate.

Concluzie

SELinux nu este pur și simplu un add-on de securitate opțional — este o componentă arhitecturală fundamentală care redefinește modul în care Linux aplică controlul accesului la nivel de kernel. Prin confinarea proceselor în domenii de securitate bine definite, aplicarea politicilor de privilegii minime pe care chiar și root nu le poate depăși și generarea de piste de audit detaliate ale fiecărei încercări de acces refuzat, SELinux transformă un server Linux standard într-un sistem semnificativ mai rezilent și mai defensibil

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți