Cum se dezactiveaza SELinux pe Rocky Linux 10, 9 si 8?

Configurare noua (How To)

Situatie

Dezactivarea permanenta a SELinux pe Rocky Linux elimina controlul obligatoriu al accesului de la fiecare serviciu local, deci tratati-o ca ultima solutie, nu ca o remediere obisnuita. Pentru majoritatea depanarii, comutati mai intai la modul permissive: opreste aplicarea imediata, mentine jurnalizarea refuzurilor SELinux activa si va permite sa confirmati daca politica blocheaza cu adevarat aplicatia.

Folositi calea permanenta doar cand un sistem de laborator, un workload legacy sau un caz sensibil la performanta are un motiv documentat pentru a rula fara SELinux. Rocky Linux 9 si 10 necesita argumentul de kernel selinux=0 pentru dezactivarea completa la nivel de kernel; setarea doar a SELINUX=disabled in /etc/selinux/config nu mai elimina hook-urile SELinux asa cum o facea Rocky Linux 8.

Acesti pasi acopera Rocky Linux 10, 9 si 8. Rocky Linux 9 si 10 includ avertismentul privind argumentul de kernel direct in /etc/selinux/config, in timp ce Rocky Linux 8 accepta in continuare calea mai veche de dezactivare prin fisierul de configurare.

Solutie

Pasi de urmat

Dezactivarea SELinux pe Rocky Linux:

Alegerea unei metode

Incepeti prin alegerea celei mai mici modificari care raspunde intrebarii de depanare. Modul permissive este temporar si reversibil fara repornire, in timp ce modul disabled elimina incarcarea politicii SELinux si necesita o repornire plus planificare atenta pentru reactivare.

Mod Ce se schimba Utilizare optima
Enforcing SELinux aplica politica si jurnalizeaza refuzurile. Functionare normala a serverului si workstation-ului Rocky Linux.
Permissive SELinux jurnalizeaza refuzurile dar nu le blocheaza. sudo setenforce 0 schimba modul live pana la repornire. Sesiuni scurte de depanare in care trebuie sa dovediti daca SELinux este blocantul.
Disabled Politica SELinux nu se incarca dupa repornire. Rocky Linux 9 si 10 necesita selinux=0 pe linia de comanda a kernel-ului pentru dezactivare completa. Cazuri specifice de laborator, legacy sau cu risc acceptat in care modul permissive nu este suficient.

Verificarea starii curente SELinux

Inainte de a modifica SELinux, verificati atat modul live cat si modul configurat pentru boot. Comanda sestatus arata daca SELinux este activat, ce politica este incarcata si ce mod va folosi urmatoarea repornire:

sestatus
SELinux status: enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

Output-ul confirma ca SELinux este activat, ruleaza in modul enforcing si foloseste politica targeted. Linia Mode from config file arata ce va incerca SELinux sa foloseasca dupa urmatoarea repornire, cu exceptia cazului in care un argument de kernel precum selinux=0 o suprascrie.

Dezactivarea temporara a SELinux cu modul Permissive

Modul permissive este cel mai sigur prim test deoarece dezactiveaza aplicarea fara a dezactiva SELinux in sine. Modificarea intra in vigoare imediat, mentine jurnalizarea refuzurilor disponibila si dureaza doar pana la repornire, cu exceptia cazului in care modificati si /etc/selinux/config.

sudo setenforce 0

Verificati ca modul s-a schimbat cu succes:

getenforce
Permissive

Output-ul confirma ca SELinux a comutat la modul permissive. Reproduceti actiunea esecului aplicatiei in timp ce modul permissive este activ; daca aplicatia incepe sa functioneze, inspectati refuzul SELinux si corectati politica, eticheta, boolean-ul sau regula de port inainte de a decide sa dezactivati SELinux permanent.

Restaurati modul enforcing imediat ce testul este finalizat:

sudo setenforce 1

Dezactivarea permanenta a SELinux pe Rocky Linux

Dezactivarea permanenta este o modificare la momentul boot-ului. Mentineti o consola locala functionala sau o cale de acces remote testata inainte de repornire, mai ales pe servere unde politica SELinux ar putea face parte din stiva de acces curenta.

Deschideti fisierul de configurare SELinux:

sudo nano /etc/selinux/config

Schimbati linia SELINUX= la disabled astfel incat fisierul sa documenteze starea intentionata la boot:

SELINUX=disabled

Salvati modificarile (Ctrl+O, Enter) si iesiti (Ctrl+X).

Adaugarea argumentului de kernel SELinux
Rocky Linux 9 si 10 necesita argumentul de kernel selinux=0 pentru dezactivarea completa la nivel de kernel. Rocky Linux 8 poate dezactiva SELinux prin /etc/selinux/config, dar folosirea argumentului de kernel ofera un flux de lucru consistent pentru toate versiunile Rocky suportate:

sudo grubby --update-kernel ALL --args selinux=0

Reporniti pentru a aplica modificarile bootloader-ului si ale configuratiei:

sudo reboot

Dupa ce sistemul revine, verificati mai intai modul efectiv:

getenforce
Disabled

Puteti confirma si starea detaliata SELinux:

sestatus
SELinux status:                 disabled

Reactivarea SELinux in mod sigur

Reactivati SELinux mai intai in modul permissive, reetichetati sistemul de fisiere, apoi reveniti la modul enforcing dupa ce ati verificat refuzurile AVC. Trecerea directa de la disabled la enforcing poate strica boot-ul sau pornirea serviciilor deoarece fisierele create in timp ce SELinux era dezactivat pot avea contexte lipsa sau incorecte.

Deschideti fisierul de configurare:

sudo nano /etc/selinux/config

Setati SELinux la permissive pentru primul boot dupa reactivare:

SELINUX=permissive
SELINUXTYPE=targeted

Daca ati folosit selinux=0 pentru a dezactiva SELinux, eliminati acel argument de dezactivare completa. Adaugati enforcing=0 astfel incat sistemul sa porneasca in permissive chiar daca fisierul de configurare este modificat prea devreme:

sudo grubby --update-kernel ALL --remove-args selinux
sudo grubby --update-kernel ALL --args enforcing=0

Reporniti mai intai in modul permissive:

sudo reboot

Dupa ce sistemul revine, verificati ca SELinux este in modul permissive:

getenforce
Permissive

Rulati aplicatiile afectate, apoi verificati refuzurile SELinux din ziua curenta. Rezolvati refuzurile importante inainte de a aplica din nou politica enforcing:

sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts today

Un rezultat <no matches> inseamna ca jurnalul de audit nu are refuzuri SELinux corespunzatoare pentru acea fereastra de timp. Daca apar inregistrari AVC, corectati acele etichete, boolean-uri, porturi sau probleme de politica locala inainte de a reveni la modul enforcing.

Marcati sistemul de fisiere pentru o reetichetare SELinux fortata la urmatoarea repornire:

sudo fixfiles -F onboot

Reporniti din nou si lasati Rocky Linux sa reeticheteze sistemul de fisiere:

sudo reboot

Dupa finalizarea boot-ului de reetichetare, verificati din nou modul permissive si repetati verificarea refuzurilor daca sistemul ruleaza servicii personalizate:

getenforce

Permissive

Cand sistemul ruleaza curat in modul permissive, deschideti fisierul de configurare si setati SELinux inapoi la enforcing:

sudo nano /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted

Eliminati argumentul de kernel temporar enforcing=0, reporniti si verificati modul enforcing:

sudo grubby --update-kernel ALL --remove-args enforcing
sudo reboot
getenforce
Enforcing

Depanare probleme frecvente
Reetichetarea sistemului de fisiere dureaza extrem de mult
Sistemul atribuie etichete de context de securitate fiecarui fisier in timpul reetichetarii. Durata depinde de dimensiunea sistemului de fisiere, numarul de fisiere si viteza stocarii.
Consola de boot poate avertiza ca reetichetarea politicii SELinux targeted este necesara si ca poate dura mult timp. Acel mesaj este asteptat in timpul unei reetichetari fortate.
Dupa ce sistemul termina boot-ul, revizuiti unitatea de reetichetare in jurnalul de boot curent:

sudo journalctl -b -u selinux-autorelabel.service --no-pager

Sistemul nu porneste dupa modificarea configuratiei

Daca boot-ul esueaza dupa modificarea /etc/selinux/config, fisierul poate contine o eroare de sintaxa, o valoare de mod invalida sau un prim boot in enforcing inainte de finalizarea reetichetarii.

Porniti in rescue mode din meniul GRUB, apoi verificati fisierul de configurare:

grep SELINUX= /etc/selinux/config

Valorile valide sunt enforcing, permissive sau disabled. Pentru recuperare, folositi mai intai permissive astfel incat urmatoarea repornire sa poata fi finalizata in timp ce SELinux jurnalizeaza refuzurile. Daca fisierul este grav corupt, recreati o configuratie minimala cu politica targeted:

sudo tee /etc/selinux/config > /dev/null <<'EOF'
SELINUX=permissive
SELINUXTYPE=targeted
EOF

Aplicatia ramane blocata dupa comutarea la modul Permissive
Daca o aplicatie continua sa esueze dupa comutarea la modul permissive, SELinux probabil nu este componenta care blocheaza acea actiune. Verificati ca modul curent este cu adevarat permissive inainte de a trece la alte cauze:

getenforce
Permissive

Verificati jurnalele aplicatiei si jurnalul sistemului pentru eroarea reala:

sudo journalctl -xe

Cauzele frecvente non-SELinux includ reguli de firewall care blocheaza conexiunile de retea, permisiuni incorecte ale fisierelor, dependente lipsa sau erori de configurare a aplicatiei.

SELinux apare in continuare ca activat dupa repornire
Setarea SELINUX=disabled in fisierul de configurare nu intra in vigoare pana la repornire, iar Rocky Linux 9 sau 10 necesita in continuare argumentul de kernel selinux=0 pentru dezactivarea completa. Verificati mai intai starea efectiva:

sestatus

Daca output-ul arata in continuare Current mode: enforcing sau permissive, inspectati intrarea de boot activa pentru argumentul de kernel:

sudo grubby --info=DEFAULT | grep -E '^args='

Cand selinux=0 lipseste pe Rocky Linux 9 sau 10, adaugati-l cu sudo grubby --update-kernel ALL --args selinux=0 si reporniti din nou. Daca aveti nevoie doar de depanare imediata fara repornire, folositi sudo setenforce 0 pentru a comuta temporar la modul permissive.

Tip solutie

Permanent

Voteaza

(38 din 62 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?