Algajaid SELinuxi juhend

Algajaid SELinuxi juhend

Artikli tĂ”lge on ette valmistatud kursuse ĂŒliĂ”pilaste jaoks «Linuxi turvalisus»

SELinux ehk Security Enhanced Linux on tĂ€iustatud juurdepÀÀsu haldamise mehhanism, mille on vĂ€lja töötanud Ameerika Ühendriikide Riikliku Julgeoleku Agentuur (NSA), et vĂ€ltida pahatahtlikke sissetunge. See rakendab olemasoleva diskretsioonilise (vĂ”i valikulise) juurdepÀÀsu haldamise mudeli (ingl. k. Discretionary Access Control, DAC) peal sundmudelit (ingl. k. Mandatory Access Control, MAC), mis pĂ”hineb poliitikareeglitel.

SELinuxil on kolm reĆŸiimi:

  1. Karm — ligipÀÀsu keelamine poliitika reeglite alusel.
  2. Leebe — tegevuste logimine, mis rikuvad poliitikat, mida karmis reĆŸiimis keelataks.
  3. Keelatud — SELinuxi tĂ€ielik vĂ€ljalĂŒlitamine.

Vaikimisi seaded on: /etc/selinux/config

SELinuxi reĆŸiimide muutmine

Praeguse reĆŸiimi teada saamiseks kĂ€ivitage

$ getenforce

ReĆŸiimi muutmiseks leebeks kĂ€ivitage jĂ€rgmine kĂ€sk

$ setenforce 0

vĂ”i, et muuta reĆŸiim leebest karmiks . Tundub, et , kĂ€ivitage$ setenforce 1

Kui soovite SELinuxi tĂ€iesti vĂ€lja lĂŒlitada, saab seda teha ainult konfiguratsioonifaili kaudu

$ vi /etc/selinux/config

VĂ€ljalĂŒlitamiseks muutke parameetrit SELINUX jĂ€rgmiselt:

SELINUX=disabled

SELinuxi seadistamine

Iga fail ja protsess on mĂ€rgistatud SELinuxi konteksti, mis sisaldab lisainfot, nagu kasutaja, roll, tĂŒĂŒp jne. Kui aktiveerite SELinuxi esmakordselt, tuleb kĂ”igepealt seadistada kontekst ja sildid. Sildistamisprotsess on tuntud kui mĂ€rgistamine. MĂ€rgistamise alustamiseks muudame konfiguratsioonifailis reĆŸiimi jĂ€rgmiste ridadega

$ vi /etc/selinux/config SELINUX=permissive karmiks.

PĂ€rast reĆŸiimi seadistamist

, loome juurkaustas tĂŒhja peidetud faili nimega karmiks.autorelabel $ touch /.autorelabel

ja taaskÀivitame arvuti

$ init 6

MĂ€rkus: kasutame reĆŸiimi

, kuna selle reĆŸiimi kasutamine vĂ”ib sĂŒsteemi taaskĂ€ivitamise ajal kokku kukkuda. karmiks Ärge muretsege, kui laadimine peatub mĂ”nes failis, mĂ€rgistamine vĂ”tab aega. PĂ€rast mĂ€rgistamise ja sĂŒsteemi laadimise lĂ”petamist vĂ”ite minna konfiguratsioonifaili ja seadistada reĆŸiimi , kĂ€ivitage , samuti kĂ€ivitada:

NĂŒĂŒd olete edukalt aktiveerinud SELinuxi oma arvutis. , kĂ€ivitageJĂ€lgime logisid

Kui soovite SELinuxi tĂ€iesti vĂ€lja lĂŒlitada, saab seda teha ainult konfiguratsioonifaili kaudu

NĂŒĂŒd olete edukalt aktiivseks teinud SELinuxi oma arvutis.

JĂ€lgime logisid

VĂ”ib-olla on teil mingeid vigu sildistamisel vĂ”i sĂŒsteemi töö kĂ€igus. Et kontrollida, kas teie SELinux töötab Ă”igesti ja ei blokeeri juurdepÀÀsu mĂ”nele sadamale, rakendusele jne, tuleb vaadata logisid. SELinuxi logi asub /var/log/audit/audit.log, kuid te ei pea seda tĂ€ielikult lugema, et leida vigu. Vigu otsimiseks saate kasutada tööriista audit2why. KĂ€itage jĂ€rgmist kĂ€sku:

$ audit2why < /var/log/audit/audit.log

Tulemusena saate veateate loendi. Kui logis vigade ei olnud, ei kuvata mingeid teadete.

SELi poliitika seadistamine

SELi poliitika on reeglite kogum, mille alusel toimib SELi turvamehhanism. Poliitika mÀÀrab konkreetse keskkonna jaoks reeglite kogumi. Uurime nĂŒĂŒd, kuidas seadistada poliitikaid, et lubada juurdepÀÀs keelatud teenustele.

1. Loogilised vÀÀrtused (lĂŒlitid)

LĂŒlitid (booleans) vĂ”imaldavad muuta poliitika osi töötamise ajal, ilma et oleks vaja luua uusi poliitikaid. Need vĂ”imaldavad teha muudatusi ilma poliitikate taaskĂ€ivitamise vĂ”i uuesti kompileerimise vajaduseta.

NĂ€ide
Oletame, et soovime anda kasutaja kodukausta FTP kaudu lugemis- ja kirjutamisĂ”igused ja oleme selle juba jaganud, kuid juurdepÀÀsu proovimisel ei nĂ€e me midagi. See on tingitud sellest, et SELi poliitika keelab FTP-serveril lugeda ja kirjutada kasutaja kodukausta. Peame poliitikat muutma, et FTP-server saaks kodukaustadele juurde pÀÀseda. Vaadake, kas selleks on olemas mĂ”ningaid lĂŒliteid, kĂ€itudes

$ semanage boolean -l

See kĂ€sk annab vĂ€lja saadaval olevate lĂŒlitite loendi nende praeguse olekuga (lĂŒlitatud / on vĂ”i vĂ€ljalĂŒlitatud / off) ja kirjeldustega. Otsingu tĂ€psustamiseks saate kasutada grep'i, et leida tulemusi, mis on seotud ainult ftp:ga:

$ semanage boolean -l | grep ftp

ja leiate jÀrgmise

ftp_home_dir -> off       Luba ftp-l lugeda ja kirjutada faile kasutaja kodukaustas

See lĂŒliti on vĂ€ljalĂŒlitatud, seega lĂŒlitame selle sisse, kasutades setsebool $ setsebool ftp_home_dir on

NĂŒĂŒd saab meie ftp-teenus kasutada kasutaja kodukausta.
MĂ€rkus: saate ka saada saadaval olevate lĂŒlitite loendi ilma kirjeldusteta, kĂ€itudes getsebool -a

2. MĂ€rgised ja kontekstid

See on kÔige levinum viis SELi poliitika rakendamiseks. Iga fail, kaust, protsess ja sadam on mÀrgistatud SELi kontekstiga:

  • Failide ja kaustade jaoks salvestatakse mĂ€rgid failisĂŒsteemis laiendatud atribuutidena ning neid saab vaadata jĂ€rgmise kĂ€suga:
    $ ls -Z /etc/httpd
  • Protsesside ja portide mĂ€rgistamist haldab tuum ning neid mĂ€rke saab vaadata jĂ€rgmiselt:

protsess

$ ps –auxZ | grep httpd

port

$ netstat -anpZ | grep httpd

NĂ€ide
KĂ€esolev nĂ€ide aitab meil paremini mĂ”ista mĂ€rgiseid ja konteksti. Oletame, et meil on veebiserveriks, mis on katalooge asendav. /var/www/html/ ĐžŃĐżĐŸĐ»ŃŒĐ·ŃƒĐ”Ń‚ /home/dan/html/. SELinux peab seda poliitika rikkumiseks, mistĂ”ttu ei saa te oma veebilehti vaadata. See juhtub, kuna me ei ole seadnud HTML-failidega seotud turvakonteksti. Vaikimisi turvakonteksi vaatamiseks kasutage jĂ€rgmist kĂ€sku:

$ ls –lz /var/www/html
 -rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

Siin saime httpd_sys_content_t HTML-failide kontekstiks. Peame seadma selle turvakonteksti meie praegusele kataloogile, millel on hetkel jÀrgmine kontekst:

-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

Alternatiivne kÀsk faili vÔi kausta turvakonteksti kontrollimiseks:

$ semanage fcontext -l | grep '/var/www'

Kasutame samuti semanage'i konteksti muutmiseks, kui oleme leidnud Ôige turvakontekti. Katalooge /home/dan/html muutmiseks kÀivitage jÀrgmised kÀsud:

$ semanage fcontext -a -t httpd_sys_content_t '/home/dan/html( /.*)?'
$ semanage fcontext -l | grep '/home/dan/html'
/home/dan/html(/.*)? kÔik failid system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

PĂ€rast konteksti muutmist semanage'i abil laadib restorecon vaikimisi turvakonteksti failidele ja kaustadele. Meie veebiserver suudab nĂŒĂŒd lugeda faile kaustast /home/dan/html, kuna selle kausta turvakontekst on muudetud. httpd_sys_content_t.

3. Kohalike poliitikate loomine

VÔib esineda olukordi, kus eelnevad meetodid ei ole teie jaoks kasulikud ning saate audit.log failis vigu (avc/denial). Kui see juhtub, peate looma kohaliku poliitika (Local policy). KÔiki vigu saate leida audit2why abil, nagu eespool mainitud.

Vigade kÔrvaldamiseks on vÔimalik luua kohaliku poliitika. NÀiteks, kui saame vea, mis on seotud httpd (apache) vÔi smbd (samba) ka, grep'ime vead ja loome neile poliitika:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

Siin http_policy ja smb_policy — need on objektid kohalike poliitikate, mille me lĂ”ime. NĂŒĂŒd peame need loodud kohalikud poliitikad laadima praegusesse SELinux poliitikasse. Seda saab teha jĂ€rgmiselt:

$ semodule –I http_policy.pp
$ semodule –I smb_policy.pp

Meie kohalikud poliitikad on laaditud ja me ei tohiks enam mingeid avc vÔi denial registreerida audit.log'is.

See oli minu katse aidata teil mÔista SELinuxi. Loodan, et pÀrast selle artikli lugemist tunnete end SELinuxiga mugavamalt.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster