
Artikli tõlge on ette valmistatud kursuse üliõpilaste jaoks
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:
- Karm — ligipääsu keelamine poliitika reeglite alusel.
- Leebe — tegevuste logimine, mis rikuvad poliitikat, mida karmis režiimis keelataks.
- Keelatud — SELinuxi täielik väljalülitamine.
Vaikimisi seaded on: /etc/selinux/config
SELinuxi režiimide muutmine
Praeguse režiimi teada saamiseks käivitage
$ getenforceRežiimi muutmiseks leebeks käivitage järgmine käsk
$ setenforce 0võ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 seadistamineIga 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Теперь вы успешно включили SELinux на своем компьютере.
Мониторим логи
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.logTulemusena 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 -lSee 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 ftpja leiate järgmise
ftp_home_dir -> off Luba ftp-l lugeda ja kirjutada faile kasutaja kodukaustasSee 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 httpdport
$ netstat -anpZ | grep httpdNä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/htmlPä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_policySiin 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.ppMeie 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
