SELinux nustatymas, įjungimas, išjungimas. SELinux – teorija Subjektai ir objektai

Patobulintas saugumas „Linux“ (SELinux) yra „Linux“ funkcijų mechanizmas, teikiantis prieigos kontrolės saugos politikos palaikymą.

SELinux gali sukurti vartotojų ar paslaugų prieigos taisykles, kurios leidžia apriboti kai kurias komunalinių paslaugų prieigos galimybes, apibrėžiant šias galimybes ir jų elgesį taisyklių pavidalu, o SELinux naudojanti OS stebės šių taisyklių laikymąsi. Šioje temoje aš jums pasakysiu, kaip išjungti arba įjungti SELinux „CentOS“. Kai kuriuose platinimuose SELinux yra įjungtas pagal numatytuosius nustatymus, o tai gali sukelti nepageidaujamą elgesį, jei nesuprantate, kaip veikia SELinux arba kaip jį konfigūruoti.

Norėdami išjungti SELinux, galite naudoti bet kurį iš 4 skirtingų šiame straipsnyje paminėtų metodų.

SELinux taikys saugos politiką, įskaitant privalomus prieigos valdiklius, apibrėžtus Linux branduolyje. Kiekvienas sistemoje esantis failas ir procesas bus pažymėti konkrečiais sparčiaisiais klavišais, kuriuos naudos SELinux. Galite naudoti komandą ir peržiūrėti šiuos sparčiuosius klavišus, kaip parodyta toliau:

# ls -Z /etc/

Tai nėra visas sąrašas, kurį pateikiau, jis gali skirtis jums.

1-asis būdas išjungti SELinux CentOS. Laikinai.

Norėdami laikinai išjungti SELinux, turite redaguoti /selinux/enforce, kaip parodyta toliau. Atminkite, kad po sistemos perkrovimo šios parinkties nebebus.

Taigi, patikrinkime, kokia SELinux būsena yra serveryje:

# cat /selinux/enforce 1

Arba galite naudoti:

# /usr/sbin/sestatus SELinux būsena: įjungta SELinuxfs mount: /selinux Dabartinis režimas: leistinas režimas iš konfigūracijos failo: vykdoma politikos versija: 24 Konfigūracijos failo politika: tikslinė

Tai reiškia, kad jis įjungtas. Norėdami jį išjungti, naudokite šią komandą:

# echo 0 > /selinux/enforce

Ir dar kartą patikrinkime:

# cat /selinux/enforce 0

Galimos setenforce parinktys:

  • 1 (įjungti).
  • 0 (išjungti).

Taip pat galite naudoti komandą setenforce, kaip parodyta toliau, norėdami išjungti SELinux. Štai šios komandos pavyzdys:

#setenforce 0

Arba pateiksiu kitą naudojimo atvejį:

# setenforce Leidžiama

PS: Norėdami patikrinti, yra dar viena puiki komanda:

# getenforce Leidžiama

2-asis būdas išjungti SELinux CentOS. Galutinai!

Patikrinkime SELinux būseną CentOS.

# cat /etc/selinux/config

Aš jį įjungiau, noriu jį išjungti, tada tam reikia atidaryti konfigūraciją ir parašyti:

# vim /etc/selinux/config

Reikia rasti:

SELINUX=įjungta

Pakeistas:

Kaip parodyta šioje ekrano kopijoje:

Po to turime iš naujo paleisti OS:

# paleisti iš naujo

3 metodas. SELinux išjungimas pačioje Grub įkrovos įkrovikoje.

Jei savo sistemoje nerandate /etc/selinux/config, galite išjungti SELinux, perduodami parametrą GRUB įkrovos programai, kaip parodyta toliau.

# cat /boot/grub/grub.conf

4-as metodas. Tik konkrečios paslaugos išjungimas SELinux – HTTP/Apache

Jei nenorite išjungti visos SELinux, taip pat galite išjungti SELinux tik konkrečiai paslaugai. Pavyzdžiui, norite išjungti HTTP/Apache aptarnavimą SELinux, tada /etc/selinux/targeted/booleans turite pakeisti kintamąjį httpd_disable_trans.

Mes jau rašėme apie SELinux svetainėje Habré, tačiau nebuvo paskelbta daug išsamių šios sistemos vadovų. Šiandien skelbiame būtent tokį išsamų SELinux vadovą, pradedant nuo informacijos apie sistemą ir baigiant lanksčia politikos konfigūracija.
Kad įrašas nepavirstų sunkiai suprantamu „lapu“, vadovą nusprendėme padalinti į dvi dalis. Pirmajame bus kalbama apie pačią sistemą ir kai kurias jos funkcijas. Antrasis susijęs su politikos kūrimu. Dabar publikuojame pirmąją dalį, antroji bus kiek vėliau.

1. Įvadas

SELinux (SELinux) yra priverstinės prieigos kontrolės sistema, įdiegta branduolio lygiu. Ši sistema pirmą kartą pasirodė ketvirtoje CentOS versijoje, o 5 ir 6 versijose diegimas buvo žymiai papildytas ir patobulintas. Šie patobulinimai leido SELinux tapti universalia sistema, galinčia efektyviai išspręsti daugybę dabartinių problemų. Verta prisiminti, kad pirmiausia taikoma klasikinė Unix teisių sistema, o valdymas SELinux bus perduotas tik tada, kai šis pradinis patikrinimas bus sėkmingas.

1.1 Kai kurios dabartinės problemos.

Norėdami suprasti praktinę SELinux vertę, pažvelkime į keletą pavyzdžių, kai standartinės prieigos kontrolės sistemos nepakanka. Jei SELinux išjungtas, turite prieigą tik prie klasikinio pasirinkto prieigos valdymo, į kurį įeina DAC (pasirenkama prieigos kontrolė) arba ACL (prieigos kontrolės sąrašai). Tai yra, mes kalbame apie manipuliavimą rašymo, skaitymo ir vykdymo teisėmis vartotojų ir vartotojų grupių lygmeniu, o kai kuriais atvejais to gali visiškai nepakakti. Pavyzdžiui:

– Administratorius negali visiškai kontroliuoti vartotojo veiksmų. Pavyzdžiui, vartotojas gali suteikti visiems kitiems vartotojams skaitymo teises į savo jautrius failus, pvz., SSH raktus.

Procesai gali pakeisti saugos nustatymus. Pavyzdžiui, failus, kuriuose yra vartotojo paštas, turėtų skaityti tik vienas konkretus vartotojas, tačiau pašto programa gali pakeisti prieigos teises, kad šiuos failus galėtų skaityti visi.

Procesai paveldi juos paleidusio vartotojo teises. Pavyzdžiui, Trojos arkliu užkrėsta Firefox naršyklės versija gali nuskaityti vartotojo SSH raktus, nors neturi tam jokios priežasties.

Iš esmės tradiciniame selektyvaus prieigos valdymo (DAC) modelyje gerai įgyvendinti tik du prieigos lygiai – vartotojo ir supervartotojo. Nėra paprasto metodo, kuris leistų kiekvienam vartotojui turėti reikiamas minimalias teises.
Žinoma, yra daug būdų, kaip išspręsti šias problemas klasikiniame saugumo modelyje, tačiau nė vienas iš jų nėra universalus.

1.1.1 Pagrindiniai SELinux vartojami terminai:

Domenas- veiksmų, kuriuos procesas gali atlikti, sąrašas. Paprastai domenas apibrėžiamas kaip minimalus galimas veiksmų rinkinys, per kurį gali veikti procesas. Tokiu būdu, jei procesas bus diskredituotas, užpuolikas negalės padaryti daug žalos.

Vaidmuo- domenų, kuriuos galima pritaikyti, sąrašas. Jei tam tikro domeno nėra vaidmens domenų sąraše, veiksmai iš to domeno negali būti taikomi.

Tipas- veiksmų, kurie yra leistini objekto atžvilgiu, visuma. Tipas skiriasi nuo domeno tuo, kad jis gali būti taikomas vamzdžiams, katalogams ir failams, o domenas taikomas procesams.

Saugumo kontekstas- visi SELinux atributai - vaidmenys, tipai ir domenai.

1.2 Tradicinio saugumo modelio problemų sprendimas.

SELinux daug griežčiau laikosi kiekvienos paslaugos, vartotojo ir programos minimalių privilegijų modelio. Pagal numatytuosius nustatymus nustatytas „draudžiamasis režimas“, kai kiekvienas sistemos elementas turi tik tas teises, kurios yra būtinos jam funkcionuoti. Jei vartotojas, programa ar paslauga bando pakeisti failą arba pasiekti šaltinį, kuris nėra aiškiai reikalingas jam išspręsti, tada jiems tiesiog bus uždrausta prieiga ir toks bandymas bus užregistruotas.

SELinux yra įdiegtas branduolio lygiu, todėl taikomosios programos gali visiškai nieko nežinoti apie šios priverstinės prieigos kontrolės sistemos versiją, jos veikimo ypatybes ir pan. Jei sukonfigūruota teisingai, SELinux neturės įtakos trečiųjų šalių programų ir paslaugų veikimui. Nors, jei programa gali perimti klaidų pranešimus iš šios prieigos kontrolės sistemos, programos naudojimo patogumas žymiai padidėja. Iš tiesų, jei bandoma pasiekti apsaugotą šaltinį ar failą, SELinux siunčia klaidą iš šeimos „prieiga uždrausta“ į pagrindinę programą. Tačiau kelios programos naudoja sistemos skambučių grąžinimo kodus, gautus iš SELinux.

Štai keli SELinux naudojimo pavyzdžiai, siekiant parodyti, kaip galite pagerinti visos sistemos saugumą.

- Programų, kurios gali nuskaityti ssh raktus, sąrašo kūrimas ir konfigūravimas.

Užkirsti kelią neteisėtai prieigai prie duomenų per pašto programą.

Naršyklės konfigūravimas taip, kad ji galėtų skaityti tik tuos failus ir aplankus, kurie būtini vartotojo namų aplanke.

2. SELinux darbo režimai

SELinux turi tris pagrindinius veikimo režimus, pagal numatytuosius nustatymus nustatytas vykdymo režimas. Tai gana griežtas režimas, kurį prireikus galima pakeisti į patogesnį galutiniam vartotojui.

Vykdymas: numatytasis režimas. Pasirinkus šį režimą, visi veiksmai, kurie kažkaip pažeidžia esamą saugumo politiką, bus blokuojami, o bandymas pažeisti įrašomas į žurnalą.

Leidžiantis: Naudojant šį režimą informacija apie visus veiksmus, kurie pažeidžia esamą saugumo politiką, bus įrašoma į žurnalą, tačiau patys veiksmai nebus blokuojami.

Išjungta: Visiškas priverstinės prieigos kontrolės sistemos išjungimas.

Galite peržiūrėti esamą režimą ir kitus SELinux nustatymus (ir, jei reikia, pakeisti) naudodami specialų GUI įrankį, esantį Administravimo meniu (sistema-konfigūracija-selinux). Jei esate įpratę dirbti konsolėje, dabartinę būseną galite peržiūrėti naudodami komandą sestatus.

# sestatus SELinux būsena: įjungta SELinuxfs mount: /selinux Dabartinis režimas: vykdymo režimas iš konfigūracijos failo: vykdomas politikos versija: 21 Politika iš konfigūracijos failo: tikslinė

SELinux būseną taip pat galite sužinoti naudodami komandą getenforce.
Komanda „setenforce“ leidžia greitai persijungti tarp priverstinio ir leistino režimų, pakeitimai įsigalios neperkraunant. Bet jei įjungiate arba išjungiate SELinux, reikia iš naujo paleisti, nes saugos etiketės turi būti iš naujo įdiegtos failų sistemoje.
Norėdami pasirinkti numatytąjį režimą, kuris bus taikomas kiekvieną kartą paleidžiant sistemą, faile /etc/selinux/config nustatykite eilutės "SELINUX=" reikšmę, nurodydami vieną iš režimų - "enforcing", "permissive" arba " neįgalus“. Pavyzdžiui: „SELINUX=permissive“.

3. SELinux politika

Kaip minėta anksčiau, SELinux pagal numatytuosius nustatymus veikia vykdymo režimu, kai automatiškai blokuojami bet kokie kiti veiksmai, nei leidžiami, kiekviena programa, vartotojas ar paslauga turi tik tas teises, kurių jiems reikia, bet nieko daugiau. Tai gana griežta politika, kuri turi ir privalumų – aukščiausią informacijos saugumo lygį, ir trūkumų – sistemos konfigūravimas šiuo režimu siejamas su daug darbo sistemos administratoriams, be to, yra didelė rizika, kad vartotojai susidurs su prieigos apribojimais, jei nori naudotis sistema bent kokiu nors nereikšmingu būdu. Šis metodas yra priimtinas įmonių sektoriuje, bet nepriimtinas galutinio vartotojo kompiuteriuose. Daugelis administratorių tiesiog išjungia SELinux savo darbo vietose, kad išvengtų tokių problemų.

Siekiant to išvengti, pagrindinėms programoms ir paslaugoms, tokioms kaip, pavyzdžiui, httpd, named, dhcpd, mysqld, apibrėžiama iš anksto sukonfigūruota tikslinė politika, kuri neleis užpuolikui pasiekti svarbių duomenų. Tos programos, kurių politika neapibrėžta, veikia domene unconfined_t ir nėra apsaugotos SELinux. Taigi, teisingai parinktos tikslinės strategijos leidžia pasiekti priimtiną saugumo lygį nesukeliant vartotojui nereikalingų problemų.

4. Prieigos valdymas SELinux

SELinux siūlo šiuos prieigos valdymo modelius:

Tipo vykdymas (TE): pagrindinis prieigos kontrolės mechanizmas, naudojamas tikslinėse politikose. Leidžia tvarkyti leidimus išsamiai, žemiausiu lygiu. Pats lankstiausias, bet kartu ir daugiausiai darbo reikalaujantis mechanizmas sistemos administratoriui.

Vaidmenimis pagrįstas prieigos valdymas (RBAC): Šiame modelyje prieigos teisės įgyvendinamos kaip vaidmenys. Vaidmuo yra leidimas atlikti tam tikrus vieno ar kelių sistemos elementų veiksmus, palyginti su kitomis sistemos dalimis. Iš esmės RBAC yra tolesnė TE plėtra.

Multi-Level Security (MLS): kelių lygių apsaugos modelis, kuriame visiems sistemos objektams priskiriamas tam tikras prieigos lygis. Prieigos leidimą arba atsisakymą leisti jam nulemia tik ryšys tarp šių lygių.

Visi SELinux procesai ir failai turi saugos kontekstą.
Pažvelkime į kontekstą praktikoje, atidžiau pažvelgdami į Apache žiniatinklio serverio pradžios puslapį, esantį /var/www/html/index.html

$ ls -Z /var/www/html/index.html -rw-r--r-- vartotojo vardas vartotojo vardas system_u:object_r:httpd_sys_content_t /var/www/html/index.html

Be standartinių failų leidimų, galime matyti SELinux saugos kontekstą: system_u: object_r: httpd_sys_content_t.

Kontekstas pagrįstas user:role:type:mls, bet laukai user:role:type rodomi, kol mls laukas yra paslėptas. Taip pat galime matyti tikslinę politiką, šiuo atveju httpd_sys_content_t.

Dabar pažvelkime į SELinux saugos kontekstą „httpd“ procesui („Apache“ žiniatinklio serveris):

$ps axZ | grep httpd system_u:system_r:httpd_t 3234 ? Ss 0:00 /usr/sbin/httpd

Kaip matome, šis procesas vykdomas httpd_t domene.

Na, o dabar pažvelkime į failo, esančio mūsų namų kataloge, saugos kontekstą:

$ ls -Z /home/naudotojovardas/manofailas.txt -rw-r--r-- vartotojo vardas vartotojo vardas user_u:object_r:user_home_t /home/username/myfile.txt

Matome, kad failo tipas yra user_home_t, šis tipas pagal numatytuosius nustatymus priskiriamas visiems namų katalogo failams.
Prieiga leidžiama tik tarp to paties tipo elementų, todėl „Apache“ žiniatinklio serveris gali lengvai nuskaityti failą /var/www/html/index.html, kurio tipas yra httpd_sys_content_t. Tuo pačiu metu, kadangi „Apache“ veikia httpd_t domene ir neužpildytų laukų userid:username, ji negali pasiekti failo home/username/myfile.txt, nors šį failą gali skaityti procesai, kurie neturi nustatytas tikslas. Tokiu būdu, jei „Apache“ žiniatinklio serveris bus pažeistas, užpuolikas negalės pasiekti failų ar paleisti procesų, kurie nėra httpd_t domene.

5. SELinux trikčių šalinimas

Anksčiau ar vėliau atsiras situacija, kai susidursite su situacija, kai SELinux neleidžia jums pasiekti kažko. Yra kelios pagrindinės prieigos atmetimo priežastys:

Neteisingai pažymėtas failas.
– Procesas vyksta netinkamame kontekste
– Politikos klaida. Procesui reikalinga prieiga prie failo, į kurį nebuvo atsižvelgta kuriant politiką.
- Bandyta įsiveržti.

Pirmosios trys prieigos uždraudimo priežastys išsprendžiamos gana nesunkiai, o bandant įsilaužti pasigirsta pavojaus signalas ir vartotojui išsiunčiamas atitinkamas pranešimas.
Norėdami išspręsti bet kokią problemą, tiesiog pažiūrėkite į SELinux žurnalą. Pagal numatytuosius nustatymus auditd procesas jį įrašo į failą /var/log/audit/audit.log. Jei šis procesas nevyksta, tada SELinux registruojasi į failą /var/log/messages, tokiu atveju visi prieigos kontrolės sistemos pranešimai yra pažymėti AVC raktu, kuris leidžia greitai išfiltruoti, pavyzdžiui, reikiamas eilutes. naudojant grep komandą.
Naujausiose platinimo versijose (pradedant nuo „CentOS 5“) yra programa su grafine vartotojo sąsaja, leidžiančia rodyti SELinux žurnalą patogia ir patogia forma. Ją galite iškviesti iš konsolės įvesdami sealert -b. Priemonė yra trikčių šalinimo paketo dalis. Jei X serveris neveikia, galite generuoti žmonėms skaitomas ataskaitas naudodami šią komandą:

Sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.1 Failų saugos konteksto etikečių keitimas.

Komanda „chcon“ leidžia keisti failų ar katalogų SELinux kontekstą taip pat, kaip komandos „chown“ ir „chmod“ leidžia pakeisti failo savininką arba prieigos teises standartinėje prieigos kontrolės sistemoje.

Pažvelkime į kelis pavyzdžius.
Tarkime, kad sistemoje yra įdiegtas Apache žiniatinklio serveris ir turime pakeisti aplanką, kuriame saugomos svetainės (pagal numatytuosius nustatymus tai yra /var/www/html/) į, tarkime, /html/ ir sukurti indeksą. html failą šiame kataloge.
# mkdir /html # touch /html/index.html # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:default_t html

Aukščiau matome, kad ir /html katalogas, ir /html/index.html failas saugos kontekste yra default_t tipo. Tai reiškia, kad jei paleisime „Apache“ ir bandysime dirbti su šiuo katalogu ar failu, „SELinux“ uždraus mums prieigą. Ir tai bus visiškai teisinga, nes teisingas saugos kontekstas failams, sąveikaujantiems su Apache, yra httpd_sys_content_t.
Pakeiskime kontekstą ir patikrinkime, ar viskas padaryta teisingai:

# chcon -v --type=httpd_sys_content_t /html kontekstas /html pakeistas į user_u:object_r:httpd_sys_content_t # chcon -v --type=httpd_sys_content_t /html/index.html /html/index.html kontekstas pakeistas į user_u:object_r :httpd_sys_content_t # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:httpd_sys_content_t html
Nebūtina rankiniu būdu apdoroti kiekvieno failo ir kiekvieno katalogo; galite tiesiog naudoti parinktį -R rekursinis katalogo perėjimas:

# chcon -Rv --type=httpd_sys_content_t /html

Tokie saugos konteksto pakeitimai išliks tarp paleidimų iš naujo, tačiau, jei bus pakeistos failų sistemos etiketės, pakeitimai bus prarasti. Techninės priežiūros ir eksploatavimo metu tai nėra neįprasta. Teisingas sprendimas tokioje situacijoje būtų (žinoma, po bandymo) sukurti papildomą taisyklę, o tada sujungti ją su vietinėmis vietinėmis taisyklėmis. Taigi jis turės didesnį prioritetą nei pagrindinės taisyklės.

Kad SELinux veiktų tinkamai net pakeitus failų sistemos etiketes, galime naudoti tiek SELinux valdymo įrankius su GUI sąsaja, tiek semanage console įrankį:

Semanuoti fcontext -a -t httpd_sys_content_t "/html(/.*)?"

Aukščiau pateiktame pavyzdyje mes priskyrėme httpd_sys_content_t kontekstą visiems failams, esantiems /html kataloge.

5.2 SELinux saugos konteksto atkūrimas.

Komanda „restorecon“ leidžia pakeisti saugos kontekstą į tą, kuris buvo priskirtas pagal numatytuosius nustatymus.
Vėlgi, kaip pavyzdį naudojame „Apache“ žiniatinklio serverį. Tarkime, kad vartotojas redagavo index.html failo kopiją savo namų kataloge ir perkėlė ją (su komanda mv) į katalogą, kuriame saugomos svetainės (/var/www/html).

Atkreipkite dėmesį, kad kopijuojant (cp komanda), failo saugos kontekstas sutaps su paskirties katalogo kontekstu, o perkeliant saugos kontekstas sutaps su šaltinio kontekstu. Žinoma, galime naudoti komandą chcon, kad pakeistume saugos kontekstą, bet kadangi perkelti failai dabar yra /var/www/html kataloge, galime tiesiog atkurti konteksto nustatymus visiems tame kataloge esantiems failams.

Norėdami atkurti kontekstą tik failo index.html, galime naudoti komandą:

# restorecon -v /var/www/html/index.html

Jei norime rekursyviai pereiti visą katalogą ir pakeisti visų jame esančių failų kontekstą, naudojame šią komandą:

# Restorecon -Rv /var/www/html

5.3 Etikečių keitimas visai failų sistemai.

Kartais reikia iš naujo nustatyti saugos etiketes visoje failų sistemoje. Dažniausiai ši operacija atliekama iš naujo įjungiant SELinux, kai sistema kurį laiką buvo išjungta. Tai taip pat būtina, jei politikos valdymo tipą pakeisime į griežtą (šiuo atveju visi procesai veikia savo specialiose srityse; niekas negali dirbti unconfined_t domene).

Norėdami automatiškai perskirstyti failų sistemą, kai kitą kartą paleisite iš naujo, įveskite šias komandas:
# palieskite /.autorelabel # paleiskite iš naujo
Kartais automatinis perskirstymas neveikia (dažniausiai tais atvejais, kai buvo atnaujintas platinimo rinkinys su išjungtu SELinux). Tokiu atveju naudokite šią komandą:

# genhomedircon # touch /.autorelabel # paleisti iš naujo

5.4 Prieigos prie uostų suteikimas.

Dažnai norime, kad tokios paslaugos kaip Apache galėtų klausytis nestandartinių prievadų ir priimti įeinančius ryšius. Pagrindinės SELinux strategijos leidžia pasiekti tik iš anksto nustatytus prievadus, kurie yra užkoduoti tam tikrai paslaugai. Tarkime, kad norime, kad „Apache“ klausytųsi per 81 prievadą. Tokiu atveju turime pridėti taisyklę naudodami komandą semanage:

# semanage port -a -t http_port_t -p tcp 81

Visą prievadų, prie kurių SELinux suteikia prieigą, sąrašą galima peržiūrėti taip:

# semanage port -l

Kitoje, antroje vadovo dalyje parodysime galimybę lanksčiai konfigūruoti sistemos politiką.

Kai kuriuose Linux platinimuose pagal numatytuosius nustatymus įjungtas SELinux, ir tai gali sukelti įvairių problemų. Jei nesuprantate, kaip veikia SELinux, ir nežinote, kaip jį teisingai sukonfigūruoti, geriausia jį išjungti, kol sužinosite pagrindinius jos veikimo principus

Išjungti SELinux galite naudoti bet kurį iš 4 aprašytų metodų.

Mes nesigilinsime į tai, kam naudojamas SELinux, ir tiesiogiai jį išjungsime. Jei sistema naudoja SELinux, tada paleisdami komandą ls -Z galite pamatyti tokį paveikslėlį.

# ls -Z /etc/-rw-r--r-- šakninė šakninė sistema_u:object_r:etc_t:s0 a2ps.cfg -rw-r--r-- root system_u:object_r:adjtime_t:s0 adjtime -rw-r--r-- root root system_u:object_r:etc_aliases_t:s0 slapyvardžiai drwxr-x--- root root system_u:object_r:auditd_etc_t:s0 auditas drwxr-xr-x root system_u:object_r:etc_runtime_t:s0 blkid drwxob root_xr- :bluetooth_conf_t:s0 bluetooth drwx------ root root system_u:object_r:system_cron_spool_t:s0 cron.d -rw-rw-r-- šakninis diskas system_u:object_r:amanda_dumpdates_t:s0 dumpdates

1 būdas: laikinai išjunkite SELinux

Norėdami laikinai išjungti SELinux, galite modifikuoti /selinux/enforce failą. Atminkite, kad tai laikinas išjungimas ir, kai sistema bus paleista iš naujo, SELinux vėl veiks.

# cat /selinux/enforce 1 # echo 0 > /selinux/enforce# cat /selinux/enforce 0

Taip pat galite naudoti komandą setenforce, kaip parodyta toliau pateiktame pavyzdyje. Galimos komandos setenforce parinktys yra šios: Vykdoma, Leidžiama, 1 (įjungti) arba 0 (išjungti).

#setenforce 0

2 būdas: visam laikui išjunkite SELinux

Norėdami visam laikui išjungti SELinux, redaguokite /etc/selinux/config failą ir nustatykite SELINUX=disabled, kaip parodyta toliau. Po to iš naujo paleiskite serverį.

# cat /etc/selinux/config SELINUX=išjungta SELINUXTYPE=nukreipta SETLOCALDEFS=0

3 būdas: SELinux išjungimas Grub Bootloader

Trečiasis metodas naudoja GRUB įkrovos programą, kad išjungtų SELinux. Pridėkite prie eilutės pabaigos 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) branduolys /boot/vmlinuz -2.6.18-92.el5PAE ro root=LABEL=/ rhgb tylus selinux = 0 initrd /boot/initrd-2.6.18-92.el5PAE.img title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) šakninis (hd0,0) branduolys /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb tylus selinux = 0 initrd /boot/initrd-2.6.18-92.el5.img

4 būdas: išjunkite SELinux tik tam tikroms paslaugoms – HTTP/Apache

Jei jums nereikia visiškai išjungti SELinux, o tik tam tikroms paslaugoms, turite šią parinktį. Pavyzdžiui, išjunkite SELinux HTTP/Apache, pakeisdami kintamojo reikšmę httpd_disable_trans faile /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

Taip pat nustatykite kintamąjį naudodami komandą setsebool. Po to iš naujo paleiskite httpd, kad pakeitimai įsigaliotų.

„Android 5.0 Lollipop“ sistemoje „Google“ pagal numatytuosius nustatymus įgalino „SeLinux“ funkciją, todėl labai sunku keisti sistemos skaidinį! Kaip išjungti? Skaityk!

Mėgstantiems modifikuoti programinę-aparatinę įrangą ar įterpti aplikaciją, „Google“ labai stengėsi to išvengti – buvo suaktyvinta „selinux“ technologija, kuri „sulaužo“ failus, kurie patenka į sistemos skaidinį, taip pat modifikuota apsaugos sistema. „Knox“, pasiskolintas iš „Samsung“. Visa tai buvo sukurta tam, kad mes, paprasti vartotojai, negalėtume pakeisti sistemos skaidinio! Pats laikas tai sutvarkyti!

Ko reikia norint išjungti apsaugą „Android“?

1. Kompiuteris su UBUNTU OS

2. Šerdis boot.img iš savo Android išmaniojo telefono ar planšetinio kompiuterio

Instrukcijos, kaip išjungti apsaugą „Android“ branduolyje

Paruošimas

Įdiekite paketą, kuris integruoja terminalo atidarymą failų tvarkyklėje

1. Atidarykite terminalą ir įveskite šią komandą

32 bitų sistemoms:

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

64 bitų sistemoms:

sudo apt-get įdiegti nautilus-open-terminal

2. Tada vykdykite komandą, kad iš naujo paleistumėte failų tvarkyklę

3. Įdiekite paketą, reikalingą darbui su Android branduoliu

sudo apt-get install abootimg

Darbas su branduoliu

1. Namų aplanke sukurkite aplanką bet kokiu patogiu pavadinimu ir perkelkite ten „Android“ branduolį – boot.img. (Pavyzdys nurodo branduolio aplanką)

2. Eikite į aplanką branduolys, bet kurioje tuščioje vietoje dešiniuoju pelės mygtuku spustelėkite ir pasirinkite „Atidaryti terminale“

3. Atsidariusiame terminale įveskite komandą:

abootimg -x boot.img

Tada aplanke branduolys pamatysite, kad atsirado naujų aplankų (branduolis buvo išpakuotas)

4. Sukurkime naują aplanką (pavadinkime jį rw) aplanko viduje branduolys, terminale rašome

5. Parašykite komandą terminale, kad toliau išpakuotumėte skaidinį initrd.img

zcat ../initrd.img | cpio -i

6. Tada aplanke rw rasite daug failų

7. Raskite ir atidarykite failą default.prop

8. Failo eilutę pakeiskite

ir išsaugokite failą bei išeikite iš jo

9. Terminale sukurkite failą initrd.img ir parašykite komandą

rasti. | cpio -o -H newc | gzip > ../initrd.img

10. Grįžtame į branduolio aplanką, tam rašome terminale

11. Android branduolio kompiliavimas su atliktais pakeitimais

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

ir tada dar viena komanda

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

Android branduolys su init.d palaikymu baigtas! Toliau reikia mirksėti!

Tai viskas! Sekite naujienas ir užsiprenumeruokite socialines grupes! Toliau bus įdomiau!

Sveiki visi, pakalbėkime šiek tiek apie SELinux, bet prieš tai šiek tiek apibrėžimo tiems, kurie negirdėjo, kas tai yra. SELinux yra anglų kalbos santrumpa. žodžiai Security-Enhanced Linux, o tai reiškia Linux su patobulinta sauga. Kitaip tariant, tai yra priverstinės prieigos kontrolės sistemos, kuri gali veikti lygiagrečiai su klasikine atrankinės prieigos kontrolės sistema, įdiegimas. Skirtumas yra tas, kad SELinux sistemoje per tam tikras strategijas prieigos teises nustato pati sistema, savo ruožtu selektyvinė prieigos kontrolės sistema atskiria proceso prieigą prie išteklių pagal vartotojo teises, kad būtų lengviau suprasti, tai yra trijų lygių rwx teisės - savininkas , savininkų grupė ir kiti vartotojai.
Po nedidelio aprašymo pabandykime pažvelgti į kai kurias SELinux komandas ir parinktis. Mūsų pavyzdžiai bus demonstruojami operacinėje sistemoje Linux CentOS 6. Bene pirmosios ir bene populiariausios yra SELinux būsenos tikrinimo komandos.

/usr/sbin/getenforce

/usr/sbin/sestatus

Grąžina komandos getenforce reikšmes
Vykdymas– rodo, kad SELinux suaktyvintas ir politikos taisyklės yra vykdomos;
Leidžiantis– rodo, kad SELinux suaktyvintas, bet politikos taisyklės nėra vykdomos ir naudojamos tik DAC taisyklės;
Išjungta– rodo, kad SELinux išjungtas.

Grąžina sestatus komandos reikšmes
Ši komanda, be SELinux būsenos, grąžina naudotą SELinux politiką, pavyzdžiui:

$ /usr/sbin/sestatus SELinux būsena: įjungta SELinuxfs prijungimas: /selinux Dabartinis režimas: vykdymo režimas iš konfigūracijos failo: vykdomas politikos versija: 23 Politika iš konfigūracijos failo: tikslinė

SELinux būsena: įjungta – reiškia, kad SELinux įjungtas;
Dabartinis režimas: enforcing – reiškia, kad SELinux įjungtas priverstiniu režimu;
Politika iš konfigūracijos failo: tikslinė – nurodo, kad naudojama SELinux tikslinė politika.

SELinux įgalinimas
Įjungti / išjungti SELinux operacinėje sistemoje konfigūracijos faile
/etc/selinux/config

# Šis failas valdo SELinux būseną sistemoje. # SELINUX= gali turėti vieną iš šių trijų reikšmių: # enforcing – SELinux saugos politika yra vykdoma. # permissive – SELinux spausdina įspėjimus, o ne vykdydamas. # išjungtas – neįkelta jokia SELinux politika. SELINUX=išjungta # SELINUXTYPE= gali turėti vieną iš šių dviejų reikšmių: # targeted – tiksliniai procesai apsaugoti, # mls – kelių lygių apsauga. SELINUXTYPE = nukreipta

Parinktis SELINUX=disabled reiškia, kad SELinux yra išjungtas. Prieš paleisdami SELinux, turite atlikti keletą manipuliacijų.
1. Patikrinkite SELinux paketų įdiegimą

Rpm -qa | grep selinux rpm -q policycoreutils rpm -qa | grep nustatymo trikčių šalinimas

Taip pat įsitikinkite, kad įdiegti šie paketai: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. Paketai policycoreutils-gui, setroubleshoot, selinux-policy-devel, Ir mcstrans neprivaloma.
Trūkstamus paketus galima įdiegti naudojant komandą (kaip root)

Yum įdiegti paketo pavadinimas

2. Prieš paleisdami kiekvienas failų sistemos failas turi būti pažymėtas SELinux kontekstu. Iki šio momento apribotiems domenams gali būti uždrausta prieiga, todėl operacinė sistema gali būti netinkamai įkelta. Situaciją galima ištaisyti nustatant parinktį SELINUX=permissive konfigūracijos faile /etc/selinux/config.

3. Failas bus pažymėtas kito sistemos perkrovimo metu. Visų failų etiketės nustatomos SELinux kontekste proceso metu. Paskutinėje eilutėje kiekvienas simbolis * reiškia 1000 pažymėtų failų. Proceso trukmė priklauso nuo failų skaičiaus sistemoje, taip pat nuo diskų greičio.

*** Įspėjimas – reikalingas SELinux tikslinės politikos peržymėjimas. *** Peržymėjimas gali užtrukti labai ilgai, priklausomai nuo failo *** sistemos dydžio ir standžiųjų diskų greičio. ****

4. Tuo atveju, kai SELinux politika nėra priskirta priverstinai, o darbas vyksta išplėtimo režimu, draudimai įrašomi į žurnalą kaip veiksmai, kurie būtų draudžiami priverstiniu režimu. Įsitikinkite, kad SELinux nedraudžia veiksmų paskutinio sistemos įkrovimo metu, kad tai padarytumėte, paleiskite komandą

Grep "SELinux neleidžia" /var/log/messages

Išvestis turi būti tuščia, o tai reiškia, kad viskas gerai ir SELinux nedraudžia veiksmo.
5. Įsitikinę, kad žurnaluose nėra pranešimų apie draudimus, nustatykite SELINUX parametrą vykdymo (failas /etc/selinux/config):

# Šis failas valdo SELinux būseną sistemoje. # SELINUX= gali turėti vieną iš šių trijų reikšmių: # enforcing – SELinux saugos politika yra vykdoma. # permissive – SELinux spausdina įspėjimus, o ne vykdydamas. # išjungtas – neįkelta jokia SELinux politika. SELINUX=įgaliojimas # SELINUXTYPE= gali turėti vieną iš šių dviejų reikšmių: # targeted – tiksliniai procesai apsaugoti, # mls – kelių lygių apsauga. SELINUXTYPE = nukreipta

6. Po to operacinė sistema turi būti paleista iš naujo. Paleidę iš naujo, turite patikrinti „Enforcing“ grąžinimo vertę naudodami komandą getenforce.

$ /usr/sbin/getenforce vykdymas

7. Norėdami peržiūrėti sąsajas tarp SELinux ir sistemos vartotojų, paleiskite komandą

/usr/sbin/semanage login –l

Komandos išvestis turėtų būti tokia:

Prisijungimo vardas SELinux vartotojo MLS / MCS diapazonas __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Taip pat reikėtų atsižvelgti į kai kurias funkcijas. Kai SELinux išjungtas, vartotojo sukurti failai nėra pažymėti, todėl gali kilti problemų, kai jie įjungiami į vykdymo būseną. Failai bus pažymėti pakeitus parinktį iš išjungtos į leistiną / vykdymo režimą, taip išvengiant nepažymėtų failų problemos.