Siit saate parema turvalisusega vastused olulistele küsimustele elu, universumi ja kõige kohta Linuxis.
"Oluline tõde, et asjad ei ole alati nii, nagu nad paistavad, on üldteada..."
-Douglas Adams, Hitchhiker's Guide to the Galaxy
Ohutus. Suurenenud töökindlus. Kirjavahetus. poliitika. Neli Apokalüpsise ratsanikku süsadmin. Lisaks igapäevastele ülesannetele – monitooring, varundamine, juurutamine, seadistamine, uuendamine jne – vastutame ka oma süsteemide turvalisuse eest. Isegi need süsteemid, kus kolmandast osapoolest teenusepakkuja soovitab täiustatud turvalisuse keelata. See tundub nagu töö Ethan Hunt filmist "Mission: Impossible".
Selle dilemma ees otsustavad mõned süsteemiadministraatorid selle ette võtta sinine pill, sest nad arvavad, et ei saa kunagi vastust suurele küsimusele elu, universumi ja kõige muu kohta. Ja nagu me kõik teame, on see vastus 42.
Siin on The Hitchhiker's Guide to the Galaxy vaimus 42 vastust olulistele küsimustele juhtimise ja kasutamise kohta. SELinux teie süsteemides.
1. SELinux on sunnitud juurdepääsu juhtimissüsteem, mis tähendab, et igal protsessil on silt. Igal failil, kataloogil ja süsteemiobjektil on ka sildid. Poliitikareeglid kontrollivad juurdepääsu märgistatud protsesside ja objektide vahel. Kernel jõustab need reeglid.
2. Kaks kõige olulisemat mõistet on järgmised: Sildistamine — märgised (failid, protsessid, pordid jne) ja Tüübi jõustamine (mis isoleerib protsessid üksteisest tüüpide alusel).
3. Õige sildi formaat user:role:type:level (valikuline).
4. Mitmetasemelise turvalisuse tagamise eesmärk (Mitmetasandiline turvalisus – MLS) on hallata protsesse (domeene) nende poolt kasutatavate andmete turvalisuse taseme alusel. Näiteks ei saa salajane protsess lugeda ülisalajasti andmeid.
5. Mitme kategooria turvalisuse tagamine (Mitme kategooria turvalisus – MCS) kaitseb sarnaseid protsesse üksteise eest (näiteks virtuaalmasinad, OpenShift mootorid, SELinuxi liivakastid, konteinerid jne).
Protsess töötab kontekstis httpd_t, saab suhelda märgistatud objektiga httpd_something_t.
13. Paljud käsud aktsepteerivad argumenti -Z konteksti vaatamiseks, loomiseks ja muutmiseks:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Kontekstid luuakse siis, kui failid luuakse nende emakataloogi konteksti alusel (mõnede eranditega). RPM-id võivad luua kontekste nagu installimise ajal.
14. SELinuxi tõrgetel on neli peamist põhjust, mida kirjeldatakse üksikasjalikumalt allpool punktides 15-21:
Märgistamisega seotud probleemid
Millegi tõttu, mida SELinux peab teadma
Viga SELinuxi poliitikas/rakenduses
Teie teave võib olla ohus
15.Märgistamise probleem: kui teie failid on sees /srv/myweb on valesti märgitud, võidakse juurdepääs keelata. Siin on mõned viisid selle parandamiseks.
Kui teate silti: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Kui teate samaväärsete märgistega faili: # semanage fcontext -a -e /srv/myweb /var/www
17. kui SELinux, mida peate teadmaet HTTPD kuulab porti 8585, öelge SELinuxile:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux, mida peate teadma Tõeväärtused, mis võimaldavad SELinuxi poliitika osi muuta käitusajal ilma, et SELinuxi poliitika üle kirjutataks. Näiteks kui soovite, et httpd saadaks meili, sisestage: # setsebool -P httpd_can_sendmail 1
19.SELinux, mida peate teadma loogilised väärtused SELinuxi sätete lubamiseks/keelamiseks:
Kõigi tõeväärtuste vaatamiseks toimige järgmiselt. # getsebool -a
Iga kirjelduse vaatamiseks toimige järgmiselt. # semanage boolean -l
25. Kui ilmneb SELinuxi tõrge, kasutage logi setroubleshoot pakkudes mitmeid võimalikke lahendusi.
Näiteks alates journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26. Logimine: SELinux salvestab teavet paljudes kohtades:
30. Eraldi protsessi (domeeni) konfigureerimiseks lubavas režiimis töötama: # semanage permissive -a httpd_t
31. Kui te ei soovi enam, et domeen oleks lubatav: # semanage permissive -d httpd_t
32. Kõigi lubatud domeenide keelamiseks tehke järgmist. # semodule -d permissivedomains
33. MLS SELinuxi poliitika lubamine: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Veenduge, et SELinux töötaks lubavas režiimis: # setenforce 0
Kasutage skripti fixfilestagamaks, et failid järgmisel taaskäivitamisel ümber märgitakse:
# fixfiles -F onboot # reboot
34. Looge kasutaja konkreetse MLS-i vahemikuga: # useradd -Z staff_u john
Kasutades käsku useradd, vastendage uus kasutaja olemasoleva SELinuxi kasutajaga (antud juhul staff_u).
35. SELinuxi ja Linuxi kasutajate vahelise kaardistamise vaatamiseks tehke järgmist. # semanage login -l
36. Määrake kasutaja jaoks konkreetne vahemik: # semanage login --modify --range s2:c100 john