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

Теперь вы успешно включили 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.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