„SELinux“ gali atrodyti bauginanti ir labai sunkiai įgyvendinama daugumoje šiuolaikinių sistemų. Tačiau sukonfigūravus „SELinux“ yra labai naudinga tiek užtikrinant saugumą, tiek šalinant trikčių šalinimą.
Šioje pamokoje bus aptariamos įvairios „SELinux“ įgyvendinamos sąvokos ir nagrinėjami įvairūs praktiniai „SELinux“ diegimo metodai.
PASTABA: Prieš pradėdami, naudinga naudoti šios mokymo programos komandas kaip šakninį arba sudoers grupės vartotoją.
Įdiekite „SELinux“ paketus
Įdiekime įvairius „SELinux“ paketus, kurie savo ruožtu padės dirbti su „SELinux“ strategijomis.
Prieš pradėdami diegti SELinux paketus, gerai, kad patikrintume, kurie įdiegti dabartinėje sistemoje.
Daugumoje REHL platinimų diegimų kai kurie paketai yra įdiegti pagal numatytuosius nustatymus. Šie paketai apima:
- „setools“ - šis paketas naudojamas stebint žurnalus, užklausiant strategijas ir valdant konteksto failus.
- policycoreutils-python - teikia pagrindines pitono komunalines paslaugas SELinux valdymui
- policycoreutils - šis paketas taip pat teikia komunalines paslaugas SELinux valdymui.
- mcstrans - mcstrans pateikia SELinux vertimo demoną, kuris įvairius lygius paverčia lengvai suprantamais formatais, kuriuos galima lengvai suprasti.
- setools-console - panašus į setools.
- „Selinux-policy“ - ji pateikia nuorodą konfigūruoti „SELinux“ politiką
- „Selinux-policy-target“ - panašus į „SELinux-policy“
- „Libselinux-utils“ - „SELinux libselinux“ įrankiai, kurie padeda valdyti „SELinux“
- „Setroubleshoot-server“ - „SELinux“ trikčių šalinimo įrankiai
Norėdami patikrinti, kurie paketai jau yra įdiegti jūsų sistemoje, galite naudoti komandą rpm -qa ir perduoti rezultatą grep SELinux kaip:
aps. -qa | grep selinuxlibselinux-utils-2.9–4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-suunatud-3.14.3-54.el8_3.2.noarchas
python3-libselinux-2.9–4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarchas
libselinux-2.9–4.el8_3.x86_64
Tai turėtų suteikti jums visų paketų, įdiegtų SELinux palaikymui, išvestį
Jei jūsų sistemoje nėra įdiegti visi „SELinux“ paketai, naudokite „yum“, kad juos įdiegtumėte, kaip parodyta toliau pateiktoje komandoje:
yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-target libselinux-utils setroubleshoot-server setools setools-console mcstrans„SELinux“ režimai ir būsenos
Pradėkime dabar žaisti su „SELinux“, būtent „SELinux“ režimais.
„SELinux“ režimai
Įjungus „SELinux“ gali būti trys galimi režimai:
- Vykdymas
- Leidžiantis
- Neįgalus
Vykdymo režimas
Jei bus vykdomas „SELinux“ režimas, jis užtikrins, kad jokiam vartotojui ar procesui nebūtų uždrausta neteisėta prieiga prie sistemos. Vykdymo režimas taip pat saugo visų bandymų atlikti neteisėtą prieigą žurnalus.
Leidžiantis režimas
Permisyvus režimas veikia kaip iš dalies įjungta „SELinux“ būsena. Šiuo režimu prieiga nėra uždrausta, nes „SELinux“ nevykdo savo politikos šiame režime. Tačiau leidžiantis režimas registruoja bandymus pažeidinėti politiką. Šis režimas yra labai efektyvus testavimui, prieš jį visiškai įjungiant, nes vartotojai ir komponentai vis tiek gali sąveikauti su sistema, bet vis tiek rinkti žurnalus. Tai leidžia jums tiksliai sureguliuoti sistemą jums tinkamais būdais.
Išjungtas režimas
Neįgaliųjų režimas taip pat gali būti vertinamas kaip išjungta būsena, kai „SELinux“ yra išjungta ir nesiūlo jokio saugumo.
SELinux valstybės
Kai sistemoje bus įdiegta „SELinux“. Jis gali turėti dvejetaines būsenas: įgalintas ir išjungtas. Norėdami peržiūrėti „SELinux“ būseną, naudokite komandą:
getenforceNeįgalus
Pirmiau pateiktas išvestis rodo, kad SELinux šiuo metu yra išjungtas.
Taip pat galite naudoti komandą sestatus, kaip parodyta žemiau:
sestatus„SELinux“ būsena: išjungta
Įgalinti ir išjungti „SELinux“
„SELinux“ būsenas ir konfigūraciją tvarko konfigūracijos failas, esantis aplanke / etc / selinux / config. Norėdami peržiūrėti jos turinį, galite naudoti komandą katė.
katė / etc / selinux / config#Šis failas valdo SELinux būseną sistemoje.
# SELINUX = gali būti viena iš šių trijų reikšmių:
#enforcing - vykdoma SELinux saugos politika.
#permissive - „SELinux“ spausdina įspėjimus, o ne vykdo.
#disabled - nėra įkelta jokia „SELinux“ politika.
SELINUX = vykdymas
# SELINUXTYPE = gali būti viena iš šių trijų reikšmių:
# tikslinis - tiksliniai procesai yra apsaugoti,
# minimum - tikslinės politikos pakeitimas. Apsaugoti tik pasirinkti procesai.
# mls - kelių lygių saugumo apsauga.
SELINUXTYPE = tikslinė
Iš pirmiau pateiktų rezultatų turime dvi pagrindines direktyvas. SELINUX direktyva nurodė režimą, kuriuo sukonfigūruotas SELinux. SELINUXTYPE direktyva nurodo SELinux strategijos rinkinį. Pagal numatytuosius nustatymus „SELinux“ naudoja tikslinę politiką, leidžiančią tinkinti prieigos valdymo leidimus. Kita politika yra daugiapakopis saugumas arba MLS.
Kai kuriose versijose galite rasti minimalią politiką.
CD / etc / selinux /[ls -l
iš viso 4
-rw-r - r-- 1 šaknies šaknis 548 Vasario 16 22:40 konfig
drwxr-xr-x 1 šaknies šaknis 4096 vasario 16 22:43 mls
-rw-r - r-- 1 šaknies šaknis 2425 2020 m. liepos 21 d. semanage.konf
drwxr-xr-x 1 šaknies šaknis 4096 Vasario 16 22:40 tikslinė
Pažiūrėkime, kaip sistemoje įgalinti „SELinux“. Pirmiausia rekomenduojame nustatyti „SELINUX“ režimą į leistiną ir nevykdomą.
nano / etc / selinux / configDabar redaguokite SELINUX direktyvą taip:
SELINUX = leidžiantisIšsaugoję failą, iš naujo paleiskite sistemą.
perkraukitePASTABA: Prieš vykdant SELinux, labai rekomenduojame nustatyti leidžiančią SELINUX direktyvą.
Perkraukę sistemą patikrinkite, ar nėra žurnalų, apie kuriuos praneša SELinux aplanke / var / log / messages.
Tada įsitikinkite, kad neturite klaidų, ir vykdykite „SELinux“ nustatydami direktyvą, kad ji būtų vykdoma aplanke / etc / selinux / config
Galiausiai galite peržiūrėti SELinux būseną naudodami komandą sestatus:
„SELinux“ būsena: įjungtaSELinuxfs mount: / sys / fs / selinux
SELinux šakninis katalogas: / etc / selinux
Įkeltas politikos pavadinimas: tikslinis
Dabartinis režimas: vykdymas
Režimas iš konfigūracijos failo: klaida (pavyko)
Politikos MLS būsena: įgalinta
Politikos „deny_unknown“ būsena: leidžiama
Atminties apsaugos tikrinimas: faktinis (saugus)
Maksimalaus branduolio politikos versija: 31
Taip pat galite naudoti komandą setenforce, kad perjungtumėte įvairius „SELinux“ režimus. Pavyzdžiui, norėdami nustatyti, kad režimas būtų leistinas, naudokite komandą:
setenforce leistinasŠis režimas yra laikinas ir bus perkeltas į vieną iš konfigūracijos failo.
sestatus SELinux būsena: įjungtaSELinuxfs mount: / sys / fs / selinux
SELinux šakninis katalogas: / etc / selinux
Įkelta politikos pavadinimas: taikoma
Dabartinis režimas: leidžiantis
Režimas iš konfigūracijos failo: vykdymas
Politikos MLS būsena: įgalinta
Politikos „deny_unknown“ būsena: leidžiama
Atminties apsaugos tikrinimas: faktinis (saugus)
Maksimalaus branduolio politikos versija: 31
„SELinux“ politika ir kontekstas
Kad išvengtume painiavos pradedantiesiems „SELinux“, nesigilinsime į tai, kaip įgyvendinama „SELinux“ politika, o tiesiog paliesime ją, kad suteiktume idėją.
„SELinux“ veikia įgyvendindama saugumo politiką. „SELinux“ politika nurodo taisyklę, kuri naudojama apibrėžti kiekvieno sistemos objekto prieigos teises. Objektai nurodo vartotojus, procesus, failus ir vaidmenis.
Kiekvienas kontekstas apibrėžiamas vartotojo forma: vaidmuo: tipas: lygis.
Pavyzdžiui, sukurkite katalogą savo namų kataloge ir peržiūrėkite jo SELinux saugos kontekstą, kaip parodyta toliau pateiktose komandose:
mkdir ~ / linuxhint_dirls -Z ~ / | grep linuxhint
Tai parodys išvestį, kaip parodyta žemiau:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirTaip pat galite rasti kitų katalogų su saugos kontekstais:
sistema: _u: object_r: user_home_t: s0Galite suprasti, kad pirmiau pateiktas išvestis atitinka vartotojo sintaksę: role: type: level.
Išvada
Tai buvo „SELinux“ pradedančiųjų pamoka, naudojant „CentOS 8“. Nors mokymo programa skirta pradedantiesiems, to pakanka, kad jūsų kojos veiktų „SELinux“ ir pašalintų bauginantį „SELinux“ pobūdį.
Ačiū, kad skaitėte.