Serviciul Selinux pe linia de comandă. Configurarea SELinux, activarea, dezactivarea

SELinux (Security-Enhanced Linux - Linux with improved security) este o implementare a unui sistem de control al accesului forțat care poate funcționa în paralel cu un sistem clasic de control al accesului discreționar. Inclus în nucleul standard Linux. De asemenea, pentru ca SELinux să funcționeze, sunt necesare versiuni modificate ale unor utilitare (ps, ls etc.), care oferă suport pentru noile funcții ale kernelului și suport din sistemul de fișiere.

Metoda 1: Dezactivați temporar SELinux

Pentru a dezactiva temporar SELinux, puteți modifica fișierul /selinux/enforce. Vă rugăm să rețineți că aceasta este o dezactivare temporară și odată ce sistemul este repornit, SELinux va funcționa din nou.

# cat /selinux/enforce 1 # echo 0 > /selinux/enforce# cat /selinux/enforce 0 Puteți folosi și comanda setenforce, așa cum se arată în exemplul de mai jos. Opțiunile posibile pentru comanda setenforce sunt: ​​Enforcing, Permisive, 1 (activare) sau 0 (dezactivare).
# setenforce 0

Metoda 2: Dezactivați definitiv SELinux

Pentru a dezactiva definitiv SELinux, editați fișierul /etc/selinux/config și setați SELINUX=disabled așa cum se arată mai jos. După aceasta, reporniți serverul.

# cat /etc/selinux/config SELINUX=dezactivat SELINUXTYPE=țintit SETLOCALDEFS=0

Metoda 3: Dezactivarea SELinux în Grub Bootloader

A treia metodă folosește încărcătorul GRUB pentru a dezactiva SELinux. Adăugați la sfârșitul rândului selinux=0

# cat /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (hd0,0) kernel /boot/vmlinuz -2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img titlu Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb silent selinux=0 initrd /boot/initrd-2.6.18-92.el5.img

Metoda 4: Dezactivați SELinux numai pentru anumite servicii - HTTP/Apache

Dacă nu trebuie să dezactivați SELinux complet, ci doar pentru anumite servicii, aveți această opțiune. De exemplu, să dezactivăm SELinux pentru HTTP/Apache prin modificarea valorii variabilei httpd_disable_transîn dosar /etc/selinux/targeted/booleans.

# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1 Setați variabila și folosind comanda setsebool. După aceasta, reporniți httpd pentru ca modificările să intre în vigoare.

# setsebool httpd_disable_trans 1# service httpd repornire

În Android 5.0 Lollipop, Google a activat caracteristica SeLinux în mod implicit, făcând foarte dificilă modificarea partiției de sistem! Cum se dezactivează? Citește mai departe!

Pentru cei cărora le place să modifice firmware-ul sau au nevoie să încorporeze o aplicație, Google a încercat din greu să prevină acest lucru - a fost activată tehnologia selinux, care „sparge” fișierele care ajung în partiția sistemului, precum și un sistem de securitate modificat bazat pe pe Knox, împrumutat de la Samsung. Toate acestea au fost create astfel încât noi, utilizatorii obișnuiți, să nu putem schimba partiția de sistem! Este timpul să o reparăm!

Ce este necesar pentru a dezactiva protecția în Android?

1. Computer cu UBUNTU OS

2. Miez boot.img de pe smartphone-ul sau tableta dvs. Android

Instrucțiuni despre cum să dezactivați protecția în nucleul Android

Pregătirea

Instalați un pachet care integrează deschiderea unui terminal într-un manager de fișiere

1. Deschideți un terminal și introduceți următoarea comandă

Pentru sistemele pe 32 de biți:

sudo apt-get install nautilus-open-terminal:i386

Pentru sisteme pe 64 de biți:

sudo apt-get install nautilus-open-terminal

2. Apoi executați comanda pentru a reporni managerul de fișiere

3. Instalați pachetul necesar pentru a funcționa cu nucleul Android

sudo apt-get install abootimg

Lucrul cu nucleul

1. Creați un folder în folderul de acasă cu orice nume convenabil și mutați nucleul Android acolo - boot.img. (Exemplul va indica folderul kernel)

2. Accesați folderul nucleu, în orice spațiu gol, faceți clic dreapta și selectați „Deschideți în terminal”

3. În terminalul care se deschide, introduceți comanda:

abootimg -x boot.img

Apoi în folder nucleu veți vedea că au apărut noi foldere (kernel-ul a fost dezambalat)

4. Să creăm un folder nou (să-l numim rw) în interiorul folderului nucleu, în terminal scriem

5. Scrieți o comandă în terminal pentru a despacheta în continuare partiția initrd.img

zcat ../initrd.img | cpio -i

6. Apoi în folder rw veți găsi o mulțime de fișiere

7. Găsiți și deschideți fișierul implicit.prop

8. În fișier, schimbați linia

și salvați fișierul și ieșiți din el

9. În terminal, construiți fișierul initrd.img și scrieți comanda

găsi . | cpio -o -H newc | gzip > ../initrd.img

10. Revenim in folderul kernel, pentru asta scriem in terminal

11. Compilarea nucleului Android cu modificările făcute

abootimg --create boot.img -k zImage -r initrd.img

și apoi încă o comandă

abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img

Nucleul Android cu suport init.d complet! În continuare trebuie să flash!

Asta e tot! Rămâneți și abonați-vă la grupuri sociale! Va fi mai interesant în continuare!

S-au scris destul de multe despre SELinux, dar majoritatea acestui material are două deficiențe. Sau acestea sunt scurte sfaturi practice despre cum să faci ceva specific, dar fără explicații despre cum funcționează și funcționează. Și dacă un articol (sau un capitol dintr-o carte) descrie probleme teoretice, este cumva lung și confuz.

De aceea am încercat să descriu pe scurt și clar ce este SELinux. Disponibil pentru cei care nu au întâlnit încă sisteme de securitate. Din dorinta de concizie am sarit peste cateva aspecte pentru a nu supraincarca – acest articol contine doar esenta. În special, nu voi descrie aici ce este „vechiul” sistem de securitate Linux - DAC (controlul accesului discreționar, controlul accesului selectiv). Sau care sunt diferențele dintre DAC, MAC și RBAC. Cei interesați pot citi despre asta, de exemplu, pe Wikipedia.

Ce este SELinux?

SELinux (Linux cu securitate îmbunătățită) Acesta este un sistem de securitate bazat pe modele de acces obligatorii și bazate pe roluri. A fost dezvoltat la începutul anilor 2000 pentru a corecta deficiențele sistemului tradițional de securitate UNIX (DAC). SELinux a fost implementat ca o componentă a nucleului Linux începând cu versiunea 2.6. Adică, SELinux poate fi folosit pe orice distribuție Linux cu kernel 2.6 sau mai recent. Desigur, nu toate distribuțiile fac utilizarea SELinux cât mai ușoară posibil, dar în principiu poate fi instalat în aproape oricare.

Mai multe distribuții instalează SELinux din cutie - RHEL, CentOS, Fedora. Deci, pentru utilizare reală, trebuie doar să puneți SELinux în modul forțat. În mai multe alte distribuții, SELinux este inclus în depozit, așa că instalarea acestuia este o chestiune de câteva minute - de exemplu, Debian, Ubuntu. Pe aceste distribuții, SELinux este instalat cu o singură comandă " sudo apt-get install selinux", urmată de o repornire.

SELinux și DAC

SELinux funcționează „după” DAC. Adică, operațiunile interzise în DAC nu pot fi permise în SELinux.
Cu alte cuvinte, SELinux completează și specifică acțiunile permise prin DAC. Cu toate acestea, SELinux funcționează independent de DAC.

Subiecte și obiecte

Când vorbim despre SELinux, subiectele și obiectele sunt întotdeauna menționate. Adică, SELinux reprezintă permisiuni și interdicții care se aplică în acțiunile dintre subiecți și obiecte.

Subiecții – strict vorbind, aceștia sunt utilizatori care efectuează orice operațiuni pe computer. Cu toate acestea, utilizatorii acționează întotdeauna printr-un program de aplicație sau altul. Adică, un utilizator uman nu poate urca el însuși în interiorul computerului și „cu propriile mâini”, de exemplu, să scrie într-un fișier. Dacă trebuie să scrie într-un fișier, rulează un program. Prin urmare, subiectele înseamnă cel mai adesea programe (procese). Cu alte cuvinte, subiecții sunt cei care efectuează anumite acțiuni.

Obiectele sunt asupra cărora se desfășoară acțiunile. Cel mai adesea, obiectele se referă la fișiere de date. Dar acestea pot fi dispozitive și chiar programe. Exemplu:
cat /var/log/syslog | grep SELinux
în această comandă programul grep obiect pentru program pisică. Și, în consecință, programul cat este un subiect în relație cu programul grep.

Cum să activați sau să dezactivați SELinux

Activarea sau dezactivarea SELinux se face cu comanda selinuxenabled cu parametrul 1 (activare SELinux) sau 0 (dezactivare SELinux). Dacă aveți nevoie ca SELinux să fie activat/dezactivat la pornirea sistemului, atunci editați fișierul /etc/selinux/config(parametru SELinux=dezactivat).

Moduri de operare SELinux

Permisiv- încălcarea politicii de securitate este permisă. Astfel de încălcări sunt înregistrate doar în jurnalul de sistem. Adică, în esență, SELinux nu funcționează, ci doar înregistrează încălcările politicii de securitate.

Aplicat- încălcările politicii de securitate sunt blocate. SELinux funcționează complet.

Comutarea modurilor de operare se realizează cu comanda setenforce cu parametrul 1 (activare forțată) sau 0 (activare permisivă). Dar dacă aveți nevoie ca modul de operare să fie setat imediat când sistemul pornește, atunci editați fișierul /etc/selinux/config(SELinux= parametru) care poate lua una dintre cele trei valori - permisiv, forțat, dezactivat (SELinux este dezactivat).

Echipă sestatus vă permite să aflați modul de operare curent al SELinux.

Înregistrare SELinux (audit)

  • setare auditallow - înregistrează evenimente.
  • setare dontaudit - nu înregistrați evenimente.

Logica de functionare:

  • dacă operațiunea este permisă, atunci este înregistrată numai în cazul auditallow;
  • Dacă operațiunea este interzisă, atunci NU este înregistrată doar în cazul dontaudit.

Context de securitate (etichetă) SELinux

Acesta este un set de date format din:

  1. tip de utilizator
  2. tipul de date sau domeniul de proces
  3. niveluri și categorii (utilizate numai în anumite politici MLS/MCS; în politicile generale, aceste valori sunt setate la acces complet)

Contextul de securitate este scris în atributele fișierului (pe sistemul de fișiere) și creat atunci când SELinux este instalat (operație de etichetare). Un context de securitate deja atribuit poate fi modificat ulterior - operația de tranziție.

Dacă sistemul de fișiere nu acceptă scrierea etichetelor SELinux (cum ar fi NFS), atunci etichetele sunt scrise separat de fișiere, conexiunea dintre fișiere și etichete având loc de-a lungul căilor fișierelor. Acest lucru poate duce la un „decalaj” între fișier și eticheta acestuia dacă fișierul este mutat pe o cale diferită (de exemplu, directorul cu astfel de fișiere este remontat la un alt punct de montare).

Eticheta unui fișier poate fi incorectă chiar dacă sistemul de fișiere acceptă scrierea unor astfel de etichete, dar fișierul a fost aplicat incorect cu operațiuni de copiere sau mutare în cadrul sistemului de fișiere. De exemplu, atunci când este copiat într-un alt folder, un fișier poate primi setul de etichete pentru acest folder (moștenirea etichetei), în loc de eticheta pe care o avea înainte. Prin urmare, este important să efectuați corect operațiunile de copiere și mutare a fișierelor atunci când utilizați SELinux.

Puteți afla contexte SELinux folosind comenzi standard cu comutatorul -Z:

  • ps -eZ [| gerp program_name]: context SELinux pentru rularea programelor (sau pentru un anumit program).
  • ls -Z: context SELinux pentru fișiere.
  • id-Z: context SELinux pentru utilizatorul curent.

Utilizator SELinux

Acesta este un tip de utilizator descriptiv, nu un utilizator specific cu autentificare și parolă. În principiu, acesta este același cu grupul de utilizatori din „vechiul” sistem de securitate DAC. Când fiecare utilizator nou este adăugat la sistem, acesta este mapat implicit (sau explicit) la un anumit tip de utilizator SELinux și va avea ulterior permisiunile sau restricțiile care sunt specificate pentru tipul său de utilizator.

Rol

Lista acțiunilor permise. Este posibil să treci de la un rol la altul pentru a schimba puterile. Acest lucru nu schimbă identitatea utilizatorului (spre deosebire de comenzile su/sudo). Rolurile nu se combină, se înlocuiesc unul pe altul.

Politica de securitate definește tranzițiile permise de la un rol la altul. Adică este imposibil să treci de la orice rol la orice rol. Deoarece rolurile sunt întotdeauna asociate cu tipuri (domenii), ele vorbesc adesea nu despre schimbarea rolurilor, ci despre schimbarea unui domeniu (Domain Transition).

Tipuri (domenii) de SELinux

Cunoscut și sub numele de sandbox SELinux. Ei unesc subiecții și obiectele în grupuri, iar în cadrul acestor grupuri determină acțiunile permise ale subiecților asupra obiectelor. Pentru subiecte, termenul domeniu este folosit în locul termenului tip.
Pentru a spune simplu, puteți spune asta:
tip SELinux - pentru date;
Domeniul SELinux - pentru procese.
În SELinux, în politicile generale, se folosește un mecanism de atribuire forțată a tipului - Type Enforcement. Adică, fiecare obiect și subiect trebuie să fie turnat la un anumit tip (sau domeniu).

Politica SELinux

Setul tuturor relațiilor descrise în sistem: utilizator - rol - tip (domeniu) - nivel și categorie. Toate tipurile de utilizatori, toate rolurile, toate tipurile/domeniile. Sunt utilizate două tipuri de politici:

  • Aplicarea tipului (TE) - Controlul accesului bazat pe roluri (RBAC). Dirijate și stricte sunt cele mai utilizate politici TE - RBAC SELinux.
  • Bell-La Padula Model Multi-Level Security (MLS) - Multi-Category Security (MCS).

Politică vizate- toate procesele care nu sunt incluse în domenii speciale restricționate operează în domeniul nerestricționat unconfined_t. Acest lucru face posibilă efectuarea de procese care nu sunt încă descrise în politică. Dar astfel de procese sunt de fapt efectuate cu drepturi aproape administrative. Acesta este punctul slab al politicii vizate.

Politica strictă- toate procesele funcționează în domenii limitate speciale, nimeni nu lucrează în domeniul nelimitat unconfined_t; Politica strictă este utilizată într-un mod foarte specializat, deoarece necesită o configurare manuală pentru fiecare caz specific. La urma urmei, procesele care nu sunt descrise în această politică pur și simplu nu vor funcționa. Dar această politică oferă protecție completă în cadrul capabilităților disponibile în SELinux.

Politica MLS/MCS

Politică specială bazată pe mecanismul de acces obligatoriu. Tuturor subiectelor și obiectelor li se atribuie niveluri de acces. Ulterior, permisiunea sau interdicția pentru o operațiune este emisă pe baza raportului dintre nivelurile de acces ale subiectului și obiectului. Subiectul permisiunii este doar două operațiuni - citirea dintr-un fișier și scrierea într-un fișier. O diferență importantă între această schemă este că permisiunile sunt acordate nu fișierelor, ci fluxurilor de date asociate cu aceste fișiere.

Regula este că fluxul de date nu poate trece în direcția scăderii nivelului de acces. Adică de la un nivel superior la un nivel inferior. Acest lucru duce, la prima vedere, la o interdicție ilogică a citirii sau accesului dacă subiectul și obiectul au niveluri de acces diferite. De exemplu, un subiect cu nivelul de acces „secret” nu poate scrie într-un fișier cu nivelul de acces „neclasificat”. Și același subiect cu drept de acces „secret” nu poate citi dintr-un fișier cu nivel „secret”, dar poate scrie în acest fișier.

Cu toate acestea, există o logică aici, este pur și simplu diferit. Dacă o entitate confidențială scrie date într-un fișier neclasificat, acel fișier va conține (potențial) date secrete, dar va fi accesibil entităților neclasificate. Adică, scurgerea de informații va deveni posibilă. Prin urmare, în MLS, scrierea în fișiere este permisă numai de la nivelurile inferioare la nivelurile superioare.

Această caracteristică trebuie înțeleasă atunci când se atribuie etichete de nivel de acces.

Pe lângă niveluri, accesul este reglementat în continuare pe categorii. Un subiect care nu are drepturi de acces la categoria „Navy” nu poate accesa datele care sunt etichetate cu această categorie. Chiar dacă acest subiect are cel mai înalt nivel de acces.
În contextul SELinux, intrarea pentru niveluri și categorii arată astfel: " s0-s0:c0.c1023" Unde " s0-s0„și nivelurile permise” c0.c1023„categorii acceptabile. Această intrare specială este „ s0-s0:c0.c1023„ înseamnă cel mai înalt nivel de acces la orice categorie de obiecte.

Această parte a contextului este utilizată numai în anumite politici MLS/MCS. În politicile generale, cum ar fi direcționate sau stricte, această parte a contextului este pur și simplu setată la nivelul maxim de permisiune și, prin urmare, nu afectează accesul.

rezumat

SELinux oferă protecție maximă atunci când treceți în modul forțat și folosind politica strictă sau politica MLS/MCS.

Dacă SELinux rulează în modul permisiv, atunci nu există practic nicio protecție - sunt înregistrate doar încălcări ale politicii actuale.

Dacă SELinux este comutat în modul forțat, dar este utilizată politica vizată, atunci protecția este oferită numai pentru programele „cunoscute” pentru care permisiunile și restricțiile sunt definite în politică. Programul „necunoscut” are de fapt privilegii administrative.

Dacă locuiți în Krasnodar, există o modalitate ușoară de a instala SELinux și învață să-l folosești.

Dacă ați găsit acest articol util sau pur și simplu v-a plăcut, atunci nu ezitați să susțineți financiar autorul. Acest lucru este ușor de făcut aruncând cu bani Portofel Yandex nr. 410011416229354. Sau la telefon +7 918-16-26-331 .

Chiar și o sumă mică vă poate ajuta să scrieți articole noi :)

Articole similare

SELinux(Security-Enhanced Linux) este un sistem de control al accesului forțat, poate funcționa în paralel cu sistemul clasic standard de control al accesului în Linux. SELinux poate crea reguli pentru accesarea utilizatorilor sau a programelor, ceea ce face posibilă limitarea unora dintre accesul acestora. Acest material descrie cum să setați diferite moduri de operare ale subsistemului de securitate sau cum să îl opriți pur și simplu în sistemul de operare Linux.

Stare SELinux

Echipe /usr/sbin/getenforceȘi /usr/sbin/sestatus sunt folosite pentru a verifica starea curentă a SELinux. Echipă getenforce returnează Aplicare , Permisiv sau Dezactivat . Comanda getenforce returnează Enforcing când SELinux este activat (regulile politicii SELinux sunt forțate):

# /usr/sbin/getenforce Aplicarea

Comanda getenforce returnează Permisiv atunci când SELinux este activat, dar regulile de politică SELinux nu sunt aplicate și sunt utilizate numai regulile DAC. Comanda getenforce returnează Disabled dacă SELinux este dezactivat.

Comanda sestatus returnează starea SELinux și politica SELinux în uz:

# /usr/sbin/sestatus

Valoarea SELinux status: enabled este returnată când SELinux este activat. Modul curent: aplicarea este returnată când SELinux este activat în modul forțat. Politica din fișierul de configurare: targeted este returnat atunci când este utilizată politica vizată SELinux.

Management SELinux

Pe sistemele de operare cu SELinux dezactivat, opțiunea este configurată SELINUX=dezactivat V /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 imprimă avertismente în loc să le impună. # disabled - Nicio politică SELinux nu este încărcată. SELINUX=dezactivat # SELINUXTYPE= poate lua una dintre aceste două valori: # targeted - Procesele vizate sunt protejate, # mls - Multi Level Security protection. SELINUXTYPE=țintit

De asemenea, echipa getenforce returnează valoarea Dezactivat:

# /usr/sbin/getenforce Dezactivat

Pentru a activa SELinux:

Dacă nu este cazul, rulați comanda ca utilizator root pentru a corecta erorile din mapările utilizatorilor. Este mai sigur să ignorați avertismentele Utilizator SELinux nume de utilizator este deja definit, dacă apar, unde nume de utilizator ar putea fi unconfined_u, guest_u sau xguest_u.

Care oferă un mecanism de sprijinire a politicilor de securitate pentru controlul accesului. SELinux vă poate pune uneori în cale. Prin urmare, trebuie să dezactivați-dezactivați SELinux . Cu toate acestea, înainte de a opri/dezactiva SELinux, asigurați-vă că aveți un motiv bun pentru care faceți acest lucru.

Cum să dezactivați/dezactivați temporar SELinux

Pasul 1:În primul rând, verificați starea curentă a SELinux folosind următoarea comandă:

# getenforce punerea în aplicare #

Folosind o metodă diferită cu o comandă care duce la același lucru:

# sestatus Stare SELinux: activat Montare SELinuxfs: /selinux Mod curent: aplicare Mod din fișierul de configurare: aplicare Versiunea politicii: 24 Politică din fișierul de configurare: vizată #

Pasul 2: Pentru a dezactiva/dezactiva temporar SELinux , utilizați metoda de mai jos:

# echo 0 > /selinux/enforce

O altă metodă

# setenforce 0

Cel mai probabil îl puteți seta în modul permisiv. Ca rezultat, SELinux va emite mesaje de avertizare, mai degrabă decât să le execute. Pentru a face același lucru, utilizați următoarea comandă:

# setenforce Permisiv

În primul rând, metoda descrisă funcționează până când reporniți. Ca rezultat, va funcționa până la următoarea repornire. În plus, dacă doriți să faceți acest lucru permanent prin repornire, urmați procedura de mai jos.

Cum să dezactivați-dezactivați SELinux permanent

Pentru a o dezactiva definitiv, modificați valoarea „ SELinux" pe " dezactivat"in fisier" /etc/sysconfig/SELinux"așa cum se arată mai jos

În cele din urmă, verificați din nou cu comanda de mai jos:

# sestatus Stare SELinux: dezactivat