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:
sestatusSELinux status: enabledSELinuxfs 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 0Verificati ca modul s-a schimbat cu succes:
getenforcePermissive
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 1Dezactivarea 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=disabledSalvati 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=0Reporniti pentru a aplica modificarile bootloader-ului si ale configuratiei:
sudo rebootDupa ce sistemul revine, verificati mai intai modul efectiv:
getenforceDisabled
Puteti confirma si starea detaliata SELinux:
sestatusSELinux 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/configSetati SELinux la permissive pentru primul boot dupa reactivare:
SELINUX=permissiveSELINUXTYPE=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 selinuxsudo grubby --update-kernel ALL --args enforcing=0
Reporniti mai intai in modul permissive:
sudo rebootDupa ce sistemul revine, verificati ca SELinux este in modul permissive:
getenforcePermissive
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 todayUn 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 onbootReporniti 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/configSELINUX=enforcingSELINUXTYPE=targeted
Eliminati argumentul de kernel temporar enforcing=0, reporniti si verificati modul enforcing:
sudo grubby --update-kernel ALL --remove-args enforcing
sudo reboot
getenforce
EnforcingDepanare 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-pagerSistemul 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/configValorile 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:
getenforcePermissive
Verificati jurnalele aplicatiei si jurnalul sistemului pentru eroarea reala:
sudo journalctl -xeCauzele 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:
sestatusDaca 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.
Leave A Comment?