SELinux voi tuntua pelottavalta ja erittäin vaikea toteuttaa useimmissa nykyaikaisissa järjestelmissä. SELinuxin määrittämisellä on kuitenkin valtavia etuja sekä turvallisuuden valvonnassa että vianmäärityksessä.
Tässä opetusohjelmassa käsitellään erilaisia SELinuxin toteuttamia käsitteitä ja tutkitaan erilaisia käytännön menetelmiä SELinuxin käyttöönottamiseksi.
HUOMAUTUS: Ennen kuin aloitamme, on hyvä käyttää tämän opetusohjelman komentoja pääkäyttäjänä tai sudoers-ryhmän käyttäjänä.
Asenna SELinux-paketit
Asennetaan useita SELinux-paketteja, jotka puolestaan auttavat työskentelemään SELinux-käytäntöjen kanssa.
Ennen kuin jatkamme SELinux-pakettien asentamista, on hyvä tarkistaa, mitkä asennetaan nykyiseen järjestelmään.
Useimmissa REHL-jakelujen asennuksissa jotkut paketit asennetaan oletusarvoisesti. Nämä paketit sisältävät:
- setools - Tätä pakettia käytetään valvomaan lokeja, kyselykäytäntöjä ja kontekstitiedostojen hallintaa.
- policycoreutils-python - tarjoaa python-ydinapuohjelmat SELinuxin hallintaan
- policycoreutils - tämä paketti tarjoaa myös apuohjelmia SELinuxin hallintaan.
- mcstrans - mcstrans tarjoaa SELinux-käännösdemonin, joka kääntää eri tasot helposti ymmärrettäviin muotoihin.
- setools-console - samanlainen kuin setools.
- Selinux-käytäntö - se tarjoaa viitteen SELinux-käytännön määrittämiseen
- Selinux-policy-kohdistettu - samanlainen kuin SELinux-policy
- Libselinux-utils - SELinux libselinux -apuohjelmat, jotka auttavat hallitsemaan SELinuxia
- Setroubleshoot-server - työkalut SELinuxin vianmääritykseen
Voit tarkistaa, mitkä paketit on jo asennettu järjestelmään, käyttämällä rpm -qa -komentoa ja lähettämällä tulos grepille SELinuxille seuraavasti:
rpm -qa | grep selinuxlibselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-kohdistettu-3.14.3-54.el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64
Tämän pitäisi antaa sinulle ulostulo kaikista SELinux-tukea varten asennetuista paketeista
Jos kaikkia SELinux-paketteja ei ole asennettu järjestelmään, asenna ne yum-komennolla alla olevan komennon mukaisesti:
yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-kohdistettu libselinux-utils setroubleshoot-server setools setools-console mcstransSELinux-tilat ja tilat
Aloitetaan nyt pelaaminen SELinuxilla, erityisesti SELinux-tiloilla.
SELinux-tilat
Kun SELinux on käytössä, sillä voi olla kolme mahdollista tilaa:
- Täytäntöönpano
- Salliva
- Liikuntarajoitteinen
Täytäntöönpanotila
Jos pakotetaan SELinux-tila, se varmistaa, ettei kenenkään käyttäjän tai prosessin luvatonta pääsyä järjestelmään estetä. Pakotustila pitää myös lokitiedot luvattomasta pääsystä.
Permissiivinen tila
Permissiivinen tila toimii kuin osittain käytössä oleva SELinux-tila. Tässä tilassa pääsyä ei evätä, koska SELinux ei pakota käytäntöjään tässä tilassa. Sallittu tila pitää kuitenkin kirjaa kaikista käytäntöjen rikkomisyrityksistä. Tämä tila on erittäin tehokas testaamiseen, ennen kuin se otetaan käyttöön täysin, koska käyttäjät ja komponentit voivat silti olla vuorovaikutuksessa järjestelmän kanssa, mutta silti kerätä lokeja. Tämän avulla voit hienosäätää järjestelmääsi sopivalla tavalla.
Pois käytöstä
Estetty tila voidaan nähdä myös käytöstä poistettuna tilana, jossa SELinux on poistettu käytöstä eikä se tarjoa mitään suojausta.
SELinux-tilat
Kun SELinux on asennettu järjestelmään. Sillä voi olla binaaritiloja: käytössä ja pois käytöstä. Voit tarkastella SELinuxin tilaa komennolla:
getenforceLiikuntarajoitteinen
Yllä oleva lähtö osoittaa, että SELinux on tällä hetkellä pois käytöstä.
Voit käyttää myös sestatus-komentoa alla esitetyllä tavalla:
sestatusSELinux-tila: pois käytöstä
Ota SELinux käyttöön ja poista se käytöstä
Tilat ja SELinux-määritykset hoidetaan asetustiedostossa, joka sijaitsee / etc / selinux / config. Voit käyttää kissan komentoa sen sisällön tarkasteluun.
cat / etc / selinux / config#Tämä tiedosto ohjaa järjestelmän SELinux-tilaa.
# SELINUX = voi ottaa yhden näistä kolmesta arvosta:
#enforcing - SELinux-tietoturvakäytäntöä noudatetaan.
#permissive - SELinux tulostaa varoitukset täytäntöönpanon sijaan.
#disabled - SELinux-käytäntöä ei ole ladattu.
SELINUX = täytäntöönpano
# SELINUXTYPE = voi ottaa yhden näistä kolmesta arvosta:
# kohdistettu - Kohdennetut prosessit ovat suojattuja,
# minimi - Kohdennetun käytännön muuttaminen. Vain valitut prosessit ovat suojattuja.
# mls - Monitasoinen suojaus.
SELINUXTYPE = kohdennettu
Edellä esitetyn perusteella meillä on kaksi päädirektiiviä käytössä. SELINUX-direktiivi määritti tilan, jossa SELinux määritetään. SELINUXTYPE-direktiivi määrittää SELinux-käytäntöjoukon. Oletusarvoisesti SELinux käyttää kohdennettua käytäntöä, jonka avulla voit mukauttaa käyttöoikeuksien käyttöoikeuksia. Toinen käytäntö on monitasoinen suojaus tai MLS.
Joissakin versioissa saatat löytää vähimmäiskäytännön.
cd / etc / selinux /[ls -1
yhteensä 4
-rw-r - r-- 1 juurihakemisto 548 16. helmikuuta 22:40 kokoonpano
drwxr-xr-x 1 juurijuuri 4096 16. helmikuuta 22:43 mls
-rw-r - r-- 1 juuren juuri 2425 heinäkuu 21 2020 semanage.konf
drwxr-xr-x 1 juurihakemisto 4096 16. helmikuuta 22:40 kohdennettu
Katsotaan nyt, kuinka SELinux otetaan käyttöön järjestelmässä. Suosittelemme, että ensin asetat SELINUX-tilan sallivaksi eikä sitä pakoteta.
nano / etc / selinux / configMuokkaa nyt SELINUX-direktiiviä seuraavasti:
SELINUX = sallivaKun olet tallentanut tiedoston, käynnistä järjestelmä uudelleen.
käynnistä uudelleenHUOMAUTUS: Suosittelemme, että asetat SELINUX-direktiivin sallivaksi ennen SELinuxin käyttöönottoa.
Kun käynnistät järjestelmän uudelleen, tarkista, onko SELinuxin raportoinneissa lokeja / var / log / messages.
Varmista seuraavaksi, ettei sinulla ole virheitä, ja pakota SELinux käyttöön asettamalla direktiivi pakotettavaksi tiedostoon / etc / selinux / config
Lopuksi voit tarkastella SELinux-tilaa käyttämällä sestatus-komentoa:
SELinux-tila: käytössäSELinuxfs mount: / sys / fs / selinux
SELinux-juurihakemisto: / etc / selinux
Ladatun käytännön nimi: kohdennettu
Nykyinen tila: täytäntöönpano
Tila määritystiedostosta: virhe (onnistui)
Käytännön MLS-tila: käytössä
Käytännön deny_unknown tila: sallittu
Muistisuojauksen tarkistus: todellinen (suojattu)
Max ytimen käytäntöversio: 31
Voit myös vaihtaa eri SELinux-tilojen välillä setenforce-komennolla. Esimerkiksi, jos haluat asettaa tilan sallivaksi, käytä komentoa:
setenforce sallivaaTämä tila on väliaikainen ja palautetaan kokoonpanotiedostoon yhdeksi uudelleenkäynnistyksen jälkeen.
sestatus SELinux-tila: käytössäSELinuxfs mount: / sys / fs / selinux
SELinux-juurihakemisto: / etc / selinux
Ladatun käytännön nimi: kohdennettu
Nykyinen tila: salliva
Tila konfigurointitiedostosta: pakottaa
Käytännön MLS-tila: käytössä
Käytännön deny_unknown tila: sallittu
Muistisuojauksen tarkistus: todellinen (suojattu)
Max ytimen käytäntöversio: 31
SELinux-käytäntö ja konteksti
Välttääksemme sekaannusta SELinux-aloittelijoille, emme sukella syvälle siihen, miten SELinux-käytäntöjä toteutetaan, vaan yksinkertaisesti kosketamme sitä antamaan sinulle idea.
SELinux toimii toteuttamalla tietoturvakäytäntöjä. SELinux-käytäntö viittaa sääntöön, jota käytetään järjestelmän kaikkien objektien käyttöoikeuksien määrittelemiseen. Objektit viittaavat käyttäjiin, prosesseihin, tiedostoihin ja rooleihin.
Jokainen asiayhteys määritetään muodossa käyttäjä: rooli: tyyppi: taso.
Luo esimerkiksi hakemisto kotihakemistoon ja tarkastele sen SELinux-suojauskontekstia alla olevien komentojen mukaisesti:
mkdir ~ / linuxhint_dirls -Z ~ / | grep linuxhint
Tämä näyttää tuotoksen alla olevan kuvan mukaisesti:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirLöydät myös muita hakemistoja, joissa on suojausyhteydet:
system: _u: object_r: user_home_t: s0Saatat ymmärtää, että yllä oleva lähtö seuraa käyttäjän syntaksia: rooli: tyyppi: taso.
Johtopäätös
Se oli aloittelijan opetusohjelma SELinuxille CentOS 8: n avulla. Vaikka opetusohjelma on tarkoitettu aloittelijoille, se on enemmän kuin tarpeeksi saada jalkasi käyntiin SELinuxissa ja poistamaan SELinuxin pelottava luonne.
Kiitos, että luit.