Ce este SELinux și cum influențează securitatea serverului. SELinux oferă un mecanism avansat de securitate pentru sistemele Linux, bazat pe reguli stricte de acces și izolare.
Deși poate fi provocator de configurat, beneficiile în materie de protecție și audit sunt semnificative.
Printr-o înțelegere corectă și aplicare atentă, SELinux devine un aliat puternic în asigurarea securității serverului dumneavoastră.
Ce este SELinux și cum influențează securitatea?
SELinux (Security-Enhanced Linux) este un modul de securitate integrat în nucleul Linux, care oferă un nivel avansat de control asupra accesului la resursele sistemului.
Dezvoltat inițial de NSA și comunitatea open-source, SELinux funcționează pe baza unei politici de securitate obligatorii (MAC – Mandatory Access Control) și completează sistemul tradițional de permisiuni UNIX.
Ce este SELinux?
SELinux extinde mecanismul de securitate al sistemului de operare Linux, impunând reguli stricte care determină ce procese pot accesa ce fișiere, porturi, resurse sau alte procese.
Spre deosebire de permisiunile standard, care sunt flexibile, SELinux adaugă un strat suplimentar care se aplică indiferent de permisiunile UNIX.
Moduri de operare ale SELinux
SELinux poate funcționa în trei moduri principale:
- Enforcing – aplică politicile de securitate și blochează acțiunile nepermise;
- Permissive – nu blochează nimic, dar loghează toate încercările de încălcare a politicii;
- Disabled – dezactivează complet SELinux.
Pentru a verifica modul curent:
getenforce
Componentele de bază ale SELinux
SELinux utilizează următoarele concepte cheie:
- Subjects – procese sau utilizatori;
- Objects – fișiere, directoare, porturi, etc.;
- Types – etichete aplicate obiectelor și subiectelor, utilizate în reguli de acces;
- Policies – reguli care definesc ce subiect poate accesa ce obiect și în ce mod.
Avantajele utilizării SELinux
- Previne escaladarea privilegiilor în cazul compromiterii unui serviciu;
- Izolează aplicațiile între ele prin politici stricte de acces;
- Oferă loguri detaliate ale tuturor încercărilor de acces neautorizat;
- Funcționează independent de permisiunile standard de fișier.
Comenzi utile în administrarea SELinux
1. Verificarea stării SELinux
sestatus
2. Schimbarea temporară a modului
setenforce 0 # permissive setenforce 1 # enforcing
3. Schimbarea permanentă a modului
sudo nano /etc/selinux/config
Modificați linia:
SELINUX=enforcing
4. Etichete SELinux
Fiecare fișier are o etichetă SELinux:
ls -Z
Pentru a schimba o etichetă:
chcon -t httpd_sys_content_t /var/www/html/index.html
5. Restaurarea etichetelor implicite
restorecon -Rv /var/www/html
Exemplu de utilizare: protejarea serverului web
Un server Apache rulează cu contextul SELinux httpd_t. Fișierele accesate de server trebuie să aibă contextul httpd_sys_content_t, iar porturile trebuie autorizate explicit.
Adăugarea unui port non-standard (ex: 8081):
semanage port -a -t http_port_t -p tcp 8081
Limitări și provocări
- Configurarea poate fi complexă pentru începători;
- Aplicațiile necompatibile pot avea probleme de funcționare;
- Necesită o bună înțelegere a politicilor și contextelor SELinux.
Când ar trebui folosit SELinux?
SELinux este recomandat în medii de producție unde securitatea este o prioritate, în special pentru servere expuse în rețea (web, email, baze de date).
Este o barieră suplimentară eficientă împotriva exploatărilor care scapă de sistemul de permisiuni tradițional.

