SELinux

SELinux pentru începători care utilizează CentOS

SELinux pentru începători care utilizează CentOS
Dezvoltat de NSA pentru a preveni accesul și intruziunile malefice, Security-Enhanced Linux sau SELinux este o funcție avansată de control al accesului livrată cu cele mai moderne distribuții Linux. SELinux este definit ca sistemul de control obligatoriu al accesului (MAC) dezvoltat ca înlocuitor pentru sistemul de control al accesului discreționar (DAC).

SELinux poate părea descurajant și foarte greu de implementat în majoritatea sistemelor moderne. Cu toate acestea, configurarea SELinux are beneficii uriașe atât în ​​aplicarea securității, cât și în depanarea.

Acest tutorial va discuta diverse concepte implementate de SELinux și va explora diverse metode practice de implementare a SELinux.

NOTĂ: Înainte de a începe, este bine să utilizăm comenzile din acest tutorial ca utilizator root sau ca utilizator din grupul sudoers.

Instalați pachetele SELinux

Permiteți-ne să instalăm diferite pachete SELinux, care la rândul lor vă vor ajuta să lucrați cu politicile SELinux.

Înainte de a continua instalarea pachetelor SELinux, este bine să verificăm care sunt instalate pe sistemul curent.

În majoritatea instalațiilor de distribuții REHL, unele pachete sunt instalate în mod implicit. Aceste pachete includ:

  1. setools - acest pachet este utilizat pentru monitorizarea jurnalelor, interogarea politicilor și gestionarea fișierelor contextuale.
  2. policycoreutils-python - oferă utilități de bază python pentru gestionarea SELinux
  3. policycoreutils - acest pachet oferă și utilități pentru gestionarea SELinux.
  4. mcstrans - mcstrans oferă daemon de traducere SELinux, care traduce diferite niveluri în formate ușoare care pot fi înțelese cu ușurință.
  5. setools-console - similar cu setools.
  6. Selinux-policy - oferă o referință pentru configurarea politicii SELinux
  7. Selinux-policy-targeted - similar cu SELinux-policy
  8. Libselinux-utils - utilități SELinux libselinux care ajută la gestionarea SELinux
  9. Setroubleshoot-server - instrumente pentru depanarea SELinux

Pentru a verifica ce pachete sunt deja instalate pe sistemul dvs., puteți utiliza comanda rpm -qa și puteți conduce rezultatul la grep pentru SELinux ca:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-target-3.14.3-54.el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64

Acest lucru ar trebui să vă ofere o ieșire a tuturor pachetelor instalate pentru asistență SELinux

Dacă nu toate pachetele SELinux sunt instalate pe sistemul dvs., utilizați yum pentru a le instala așa cum se arată în comanda de mai jos:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Moduri și state SELinux

Să începem acum să ne jucăm cu SELinux, în mod specific, cu modurile SELinux.

Moduri SELinux

Când este activat, SELinux poate fi trei moduri posibile:

Modul de aplicare

Dacă se aplică modul SELinux, se va asigura că nu este refuzat accesul neautorizat la sistem de către niciun utilizator sau proces. Modul de executare păstrează, de asemenea, jurnalele oricărei încercări de acces neautorizat.

Mod permisiv

Modul permisiv acționează ca o stare SELinux parțial activată. În acest mod, nu este refuzat accesul, deoarece SELinux nu își aplică politicile în acest mod. Cu toate acestea, modul permisiv păstrează un jurnal al tuturor încercărilor de încălcare a politicii. Acest mod este foarte eficient pentru testare înainte de al activa pe deplin, deoarece utilizatorii și componentele pot interacționa în continuare cu sistemul, dar totuși colectează jurnale. Acest lucru vă permite să reglați sistemul în modurile pe care le considerați potrivite.

Mod dezactivat

Modul dezactivat poate fi văzut și ca o stare dezactivată în care SELinux este dezactivat și nu oferă nici o securitate.

Statele SELinux

Odată ce SELinux este instalat pe un sistem. Poate avea stări binare: activat și dezactivat. Pentru a vizualiza starea SELinux, utilizați comanda:

getenforce
Dezactivat

Ieșirea de mai sus indică faptul că SELinux este în prezent dezactivat.

De asemenea, puteți utiliza comanda sestatus așa cum se arată mai jos:

sestatus
Stare SELinux: dezactivat

Activați și dezactivați SELinux

Stările și configurația SELinux sunt gestionate de fișierul de configurare situat în / etc / selinux / config. Puteți utiliza comanda cat pentru a vizualiza conținutul acesteia.

cat / etc / selinux / config
#Acest fișier controlează starea SELinux pe sistem.
# SELINUX = poate lua una dintre aceste trei valori:
#enforcing - Politica de securitate SELinux este aplicată.
#permisiv - SELinux tipărește avertismente în loc să aplice.
#disabled - Nu este încărcată nicio politică SELinux.
SELINUX = aplicarea
# SELINUXTYPE = poate lua una dintre aceste trei valori:
# target - Procesele vizate sunt protejate,
# minim - Modificarea politicii vizate. Numai procesele selectate sunt protejate.
# mls - Protecție de securitate pe mai multe niveluri.
SELINUXTYPE = vizat

Din rezultatul de mai sus, avem două directive principale activate. Directiva SELINUX a specificat modul în care este configurat SELinux. Directiva SELINUXTYPE specifică setul de politici SELinux. În mod implicit, SELinux folosește o politică vizată care vă permite să personalizați permisiunile de control al accesului. Cealaltă politică este securitatea pe mai multe niveluri sau MLS.

Este posibil să găsiți o politică minimă în unele versiuni.

cd / etc / selinux /
[ls -l
total 4
-rw-r - r-- 1 rădăcină rădăcină 548 16 februarie 22:40 config
drwxr-xr-x 1 rădăcină rădăcină 4096 16 februarie 22:43 mls
-rw-r - r-- 1 rădăcină rădăcină 2425 21 iul 2020 semanage.conf
drwxr-xr-x 1 rădăcină rădăcină 4096 16 februarie 22:40 vizată

Să vedem acum cum să activați SELinux pe sistem. Vă recomandăm mai întâi să setați modul SELINUX la permisiv și să nu fie aplicat.

nano / etc / selinux / config

Acum editați directiva SELINUX ca:

SELINUX = permisiv

Odată ce salvați fișierul, lansați o repornire a sistemului.

reporniți

NOTĂ: Vă recomandăm să stabiliți directiva SELINUX ca permisivă înainte de a aplica SELinux.

Odată ce reporniți sistemul, verificați dacă există jurnalele raportate de SELinux în / var / log / messages.

Apoi, asigurați-vă că nu aveți erori și aplicați SELinux setând directiva pentru a aplica în / etc / selinux / config

În cele din urmă, puteți vizualiza starea SELinux folosind comanda sestatus:

Stare SELinux: activat
SELinuxfs mount: / sys / fs / selinux
Directorul rădăcină SELinux: / etc / selinux
Numele politicii încărcate: vizat
Modul curent: aplicarea
Mod din fișierul de configurare: eroare (succes)
Stare MLS a politicii: activată
Politică deny_unknown status: permis
Verificarea protecției memoriei: reală (sigură)
Versiunea politicii kernel max: 31

De asemenea, puteți utiliza comanda setenforce pentru a comuta între diferite moduri SELinux. De exemplu, pentru a seta modul la permisiv, utilizați comanda:

setenforce permisiv

Acest mod este temporar și va fi restabilit la unul din fișierul de configurare după o repornire.

sestatus SELinux status: activat
SELinuxfs mount: / sys / fs / selinux
Directorul rădăcină SELinux: / etc / selinux
Numele politicii încărcate: vizat
Mod curent: permisiv
Mod din fișierul de configurare: aplicarea
Stare MLS a politicii: activată
Politică statutul deny_unknown: permis
Verificarea protecției memoriei: reală (sigură)
Versiunea politicii kernel max: 31

Politica și contextul SELinux

Pentru a evita confuzia pentru începătorii SELinux, nu ne vom adânci în modul în care sunt implementate politicile SELinux, ci pur și simplu îl vom atinge pentru a vă face o idee.

SELinux funcționează prin implementarea politicilor de securitate. O politică SELinux se referă la o regulă care este utilizată pentru a defini drepturile de acces pentru fiecare obiect din sistem. Obiectele se referă la utilizatori, procese, fișiere și roluri.

Fiecare context este definit sub forma utilizatorului: rol: tip: nivel.

De exemplu, creați un director în directorul de acasă și vizualizați contextul de securitate SELinux, așa cum se arată în comenzile de mai jos:

mkdir ~ / linuxhint_dir
ls -Z ~ / | grep linuxhint

Aceasta va afișa ieșirea așa cum se arată mai jos:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

De asemenea, puteți găsi alte directoare cu contexte de securitate precum:

system: _u: object_r: user_home_t: s0

Vă puteți da seama că rezultatul de mai sus respectă sintaxa utilizatorului: rol: tip: nivel.

Concluzie

Acesta a fost un tutorial pentru începători pentru SELinux folosind CentOS 8. Deși tutorialul este conceput pentru începători, este mai mult decât suficient să vă alergați picioarele în SELinux și să eliminați natura intimidantă a SELinux.

Mulțumesc că ai citit.

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...