Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Introducere în SELinux

24 august 2018 By Bobses Un comentariu

NSA Security-Enhanced Linux (SELinux) este o unealtă folosită pentru a proteja calculatoarele cu Linux de eventualele atacuri provenite din Internet. A fost cerut și dezvoltat, cel puțin în perioada sa de început, de către National Security Agency (NSA). Prima versiune a fost oferită de către NSA comunității open source pe 22 decembrie 2000. SELinux a fost inculs în kernelul Linux în 2003, începând cu versiunea de kernel 2.6.0-test3. Este prezent și pe telefoanele mobile începând cu versiunea Android 4.3.

Există o mulțime de programe care, după instalare, își creează propriul cont de utilizator; un cont de utilizator numit "apache" este creat ca parte a procesului de instalare a pachetului httpd (pentru a vizualiza toți userii din sistem, inclusiv userul apache, rulați sudo cat /etc/passwd). Persoanele rău intenționate pot găsi o cale de a prelua controlul asupra acestui cont și, prin urmare, pot să obțină acces la alte fișiere sau directoare de pe mașină. În această situație, clasicele permisiuni ugo+rwx nu mai oferă nicio o protecție. Și aici apare SELinux care, cu ajutorul magiei din spatele său, poate salva sistemul.

În principal, SELinux efectuează controlul distrugerilor. Astfel, dacă software-ul apache/httpd dat ca exemplu mai sus este compromis, atunci atacatorul poate fi limitat la a accesa doar fișierele și directoarele pe care contul de utilizator apache le-ar accesa în mod normal; atacatorul, mascat ca utilizator apache, nu va fi capabil să scrie sau să citească nimic din directorul /etc, chiar dacă serviciul apache are privilegiile necesare de scriere/citire/execuție pe acesta.

Într-un articol viitor voi prezenta cum gestionează SELinux acest tip de control granular al accesului.

Straturi de securitate

Pentru ca un computer cu Linux să fie securizat, pot fi adăugate straturi (layers) de securitate. Dintre aceste straturi de securitate pot fi menționate: firewall-urile, permisiunile udo+rwx, politici pentru parole, criptare, autentificare, etc. Oricum, toate aceste modalități de a securiza un sistem nu acționează la nivelul cel mai de jos al unui sistem de operare. Din această cauză, aceste metode de securitate sunt considerate Discretionary Access Control (sau DAC - controlul discreționar al accesului).

Dar SELinux, care face și el parte din aceste straturi de securitate, acționează la nivelul cel mai de jos al sistemului de operare, fiind, de fapt, inclus în kernelul Linux. Din această cauză, SELinux este denumit Mandatory Access Control (sau MAC - control obligatoriu al accesului).

Dar cum acționează împreună toate aceste metode de securizare a sistemului? Dacă, spre exemplu, un proces vrea să acceseze un fișier de configurare, acesta cere întâi aprobare de la straturile de securitate DAC, după care va obține și aprobarea stratului de securitate MAC (SELinux). În final, accesul este permis doar dacă are aprobarea tuturor straturilor de securitate (DAC și MAC).

Instrumente pentru SELinux

Chiar dacă pe sistemele Red Hat și derivate (CentOS, Fedora, etc.) SELinux vine preinstalat, pe alte distribuții (Ubuntu, Gentoo, etc.) poate fi instalat și activat ulterior. Sunt anumite pachete care pot face mai ușoară gestionarea acestuia:

  • policycoreutils-python – pachetul furnizează comanda semanage
  • policycoreutils – oferă multe comenzi importante, cum ar fi sestatus, restorecon, setsebool
  • policycoreutils-gui - utilitar grafic de configurare pentru SELinux
  • setools-console – furnizează comanda sesearch
  • setools-gui - instrument grafic de analiză a politicilor pentru SELinux
  • setroubleshoot - permite vizualizarea mesajelor setroubleshoot-server
  • setroubleshoot-server - instrumente de diagnoză a problemelor SELinux. Când un mesaj AVC (Access Vector Cache - voi vorbi în alt articol despre AVC) este generat, se generează și o alertă care poate da informații despre problema apărută și poate oferi ajutor în rezolvarea ei
  • selinux-policy-doc - documentație politici SELinux

Instalarea acestora în CentOS sau Fedora se poate face cu comanda yum sau dnf:

sudo yum install policycoreutils-python policycoreutils-gui setools-console setools-gui setroubleshoot setroubleshoot-server

Mai multe informații generale despre SELinux pot fi aflate folosind comanda man:

man selinux

De asemenea, este interesant de citit și FAQ-ul oferit de NSA.

În articolele viitoare vom învăța despre modurile de funcționare ale SELinux, despre contexte, politici, atribute de securitate, AVC (Active Vector Cache), probleme  și rezolvarea lor.

SELinux by mindzoo - DeviantArt

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: SELinux Etichete: RHCSA, SELinux

Trackbacks

  1. Funcționarea SELinux | Despre Linux spune:
    20 iunie 2021 la 14:15

    […] instrumentul sesearch (parte a pachetului  setools-console, așa cum am menționat în primul articol despre SELinux). Comanda de mai jos caută prin toate politicile SELinux și afișează pe o singură linie […]

    Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}