SELinux vs AppArmor: Comparație pentru servere Linux

15 min citire - 21 mai 2026

hero section cover
Cuprins
  • SELinux vs AppArmor: Care cadru MAC se potrivește serverului dvs.?
  • Cum funcționează SELinux
  • Cum funcționează AppArmor
  • Comparație side-by-side
  • Configurație de bază
  • Pe care ar trebui să îl utilizați?
Distribuie

Compararea SELinux și AppArmor pentru securitatea serverelor Linux: Aflați cum funcționează fiecare cadru MAC, diferențele cheie și care să alegeți pentru configurația dvs. de găzduire.

SELinux vs AppArmor: Care cadru MAC se potrivește serverului dvs.?

Atât SELinux, cât și AppArmor impun controlul obligatoriu al accesului (MAC) pe Linux, restricționând ceea ce pot face procesele chiar dacă obțin drepturi de root. Diferența constă în modul în care o fac. SELinux atribuie etichete persistente fiecărui fișier și proces. AppArmor utilizează în schimb reguli de cale de fișiere. Această alegere de proiectare determină totul: complexitatea, nivelul de securitate și ce distribuție include ce instrument în mod implicit.


 

Cum funcționează SELinux

SELinux a fost dezvoltat inițial de NSA și este livrat în mod implicit pe RHEL, CentOS, Fedora și Rocky Linux. Acesta etichetează fiecare obiect din sistem, inclusiv fișiere, procese, porturi și socluri, cu un context de securitate în formatul user:role:type:level. Câmpul type Câmpul realizează cea mai mare parte a muncii grele printr-un mecanism numit Type Enforcement (TE).

De exemplu, serverul web Apache rulează ca httpd_t. Fișierele de conținut web au un tip diferit. Dacă nicio regulă de politică nu permite în mod explicit httpd_t accesul la acel tip de conținut, cererea este respinsă. Acesta este un model de refuz implicit. Nimic nu este permis, cu excepția cazului în care o regulă prevede altfel.

SELinux acceptă, de asemenea, Multi-Level Security (MLS) și Multi-Category Security (MCS), care clasifică datele în funcție de nivelul de confidențialitate și restricționează accesul în consecință. MCS este ceea ce conferă SELinux izolarea puternică a containerelor, menținând containerele separate unul de celălalt și de gazdă. Acest lucru contează în mediile Kubernetes și OpenShift, unde podurile împart un nod.

Compromisul este complexitatea. SELinux are o curbă de învățare abruptă. Depanarea refuzurilor de acces înseamnă citirea jurnalelor de audit, înțelegerea contextelor de securitate și, uneori, generarea de module de politici personalizate cu audit2allow. Pentru echipele fără personal dedicat securității, această sarcină suplimentară este reală.

Cum funcționează AppArmor

AppArmor adoptă o abordare diferită. În loc să eticheteze obiectele, acesta atașează profiluri de securitate aplicațiilor pe baza căilor lor de fișiere. Un profil pentru /usr/sbin/nginx definește ce directoare poate citi Nginx, la ce porturi se poate conecta și de ce capacități are nevoie. Profilurile sunt fișiere text simplu stocate în /etc/apparmor.d/.

AppArmor este cadrul MAC implicit pe Ubuntu, Debian și SUSE. Face parte din kernelul Linux încă de la versiunea 2.6.36. Aplicațiile fără profil revin la permisiunile DAC standard ale Linux.

AppArmor rulează în două moduri pentru fiecare profil: Enforce (blochează și înregistrează încălcările) și Complain (înregistrează încălcările fără a le bloca). Acest lucru face practică implementarea treptată a profilurilor noi. Începeți în modul Complain, examinați jurnalele, înăspriți profilul, apoi treceți la Enforce.

Instrumente precum aa-genprof și aa-logprof ajută la crearea profilurilor în mod interactiv, observând ce face o aplicație și generând reguli pe baza comportamentului acesteia. În comparație cu modulele de politici SELinux, sintaxa este mult mai ușor de citit și de editat manual.

Dezavantajul este că regulile bazate pe cale nu urmăresc fișierele atunci când acestea sunt mutate. O legătură hard sau o montare bind poate, în teorie, să ocolească o restricție bazată pe cale. De asemenea, AppArmor nu are suport nativ MLS/MCS, astfel încât poate izola containerele de gazdă, dar nu și unul de celălalt, așa cum face SELinux.

Comparație side-by-side

CaracteristicăSELinuxAppArmor
Model de control al accesuluiBazat pe etichete (contexte de securitate)Bazat pe cale (locații din sistemul de fișiere)
Atitudine implicităRespinge totPermite-tot (restricții pe profil)
Mutarea fișierelorEtichetele urmează fișierulSecuritate legată de cale
Suport MLS/MCSDaNu
Izolarea containeruluiDe la container la container și de la container la gazdăDoar container-la-gazdă
Formatul politiciiModule binare compilateFișiere text lizibile de către om
Distribuții impliciteRHEL, Fedora, CentOS, Rocky LinuxUbuntu, Debian, SUSE
Curba de învățareAbruptăModerat

Configurație de bază

SELinux

Verificați starea actuală:

sestatus
getenforce

Porniți în modul Permissive pentru a înregistra încălcările fără a bloca nimic:

setenforce 0

Utilizați politica „targeted” pentru majoritatea serverelor. Aceasta limitează serviciile cu risc ridicat, cum ar fi serverele web și bazele de date, lăsând totul restul fără restricții. Faceți-o permanentă în /etc/selinux/config:

SELINUX=enforcing
SELINUXTYPE=targeted

Verificați contextele de securitate ale fișierelor și proceselor:

ls -Z /var/www/html
ps -eZ | grep httpd

Dacă un serviciu utilizează un port non-standard, actualizați politica:

semanage port -a -t ssh_port_t -p tcp 9999

Pentru aplicațiile personalizate care generează refuzuri de acces, creați un modul de politică din jurnalul de audit:

ausearch -m avc -ts recent | audit2allow -M my_custom_policy
semodule -i my_custom_policy.pp

AppArmor

Verificați ce profiluri sunt încărcate:

sudo aa-status

Instalați pachetul de utilitare dacă aveți nevoie de instrumente de gestionare a profilurilor:

sudo apt install apparmor-utils

Generați un profil interactiv în timp ce aplicația rulează:

sudo aa-genprof /path/to/binary

Perfecționați profilul scanând jurnalele pentru încălcări:

sudo aa-logprof

Comutați un profil între moduri:

sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx

Pe care ar trebui să îl utilizați?

Răspunsul practic pentru majoritatea administratorilor: folosiți ceea ce vine cu distribuția dvs. RHEL, CentOS, Fedora și Rocky Linux vin cu SELinux. Ubuntu, Debian și SUSE vin cu AppArmor. Ambele cadre au instrumente și politici mature pentru platformele lor native. Trecerea la opțiunea non-implicită pe orice distribuție adaugă muncă și reduce suportul comunității.

Dincolo de asta, lăsați cerințele dvs. să decidă:

  • Alegeți SELinux dacă aveți nevoie de conformitate cu PCI DSS, HIPAA sau DISA-STIG. Dacă rulați sarcini de lucru cu containere multi-tenant pe Kubernetes sau OpenShift. Dacă aveți nevoie de izolare container-la-container pe gazde partajate. Dacă mediul dvs. gestionează date clasificate sau cu nivel de confidențialitate.
  • Alegeți AppArmor dacă rulați Ubuntu sau Debian și doriți protecție MAC fără o rampă de pornire abruptă. Dacă configurația dvs. este un singur server sau un cluster mic care rulează servicii web standard. Dacă implementarea rapidă contează mai mult decât controlul granular, la nivel de etichetă.

Ambele cadre adaugă o suprasolicitare minimă la rulare. SELinux stochează în cache deciziile de acces în Access Vector Cache. Încărcarea politicilor AppArmor poate adăuga o mică întârziere la pornire, dar are un impact neglijabil la rulare. Pentru majoritatea sarcinilor de găzduire, niciuna dintre ele nu va constitui un obstacol.

Dacă aveți nevoie de o bază de găzduire fiabilă, cu acces root complet pentru a configura oricare dintre aceste framework-uri, serverele dedicate sau VPS-urile FDC vă oferă controlul necesar pentru a configura SELinux sau AppArmor în funcție de cerințele mediului dvs.

Blog

În prim plan săptămâna aceasta

Mai multe articole
Procese zombie în Linux: Găsire, eliminare, prevenire

Procese zombie în Linux: Găsire, eliminare, prevenire

Aflați cum să identificați, să eliminați și să preveniți procesele zombie în Linux. Comenzi, corecturi de cod și sfaturi de monitorizare pentru administratorii de servere.

15 min citire - 19 mai 2026

Lista de verificare pentru întărirea serverului Linux

15 min citire - 8 mai 2026

Mai multe articole
background image

Aveți întrebări sau aveți nevoie de o soluție personalizată?

icon

Opțiuni flexibile

icon

Acoperire globală

icon

Implementare instantanee

icon

Opțiuni flexibile

icon

Acoperire globală

icon

Implementare instantanee