Gwida għall-Bidu għal SELinux

Gwida għall-Bidu għal SELinux

Traduzzjoni tal-artiklu mħejjija għall-istudenti tal-kors "Sigurtà tal-Linux"

SELinux jew Security Enhanced Linux huwa mekkaniżmu mtejjeb ta' kontroll ta' aċċess żviluppat mill-Aġenzija tas-Sigurtà Nazzjonali (NSA) tal-Istati Uniti biex jipprevjeni intrużjonijiet malizzjużi. Timplimenta mudell ta 'kontroll ta' aċċess sfurzat (jew obbligatorju) (Kontroll ta 'Aċċess Mandatorju Ingliż, MAC) fuq il-mudell eżistenti diskrezzjonali (jew selettiv) (Kontroll ta' Aċċess Diskrezzjonali Ingliż, DAC), jiġifieri permessi biex taqra, tikteb, tesegwixxi.

SELinux għandu tliet modi:

  1. Infurzar — ċaħda ta' aċċess ibbażata fuq regoli ta' politika.
  2. Permissiv — iż-żamma ta' reġistru ta' azzjonijiet li jiksru l-politika, li jkunu pprojbiti fil-mod ta' infurzar.
  3. B'diżabilità — diżattivazzjoni kompleta ta' SELinux.

B'default is-settings huma ġewwa /etc/selinux/config

Nibdlu l-modi SELinux

Biex issir taf il-mod kurrenti, run

$ getenforce

Biex tibdel il-mod għal permissiv mexxi l-kmand li ġej

$ setenforce 0

jew, biex tibdel il-mod minn permissiv fuq infurzar, tesegwixxi

$ setenforce 1

Jekk għandek bżonn tiddiżattiva kompletament SELinux, allura dan jista 'jsir biss permezz tal-fajl tal-konfigurazzjoni

$ vi /etc/selinux/config

Biex tiddiżattiva, ibdel il-parametru SELINUX kif ġej:

SELINUX=disabled

Twaqqif ta' SELinux

Kull fajl u proċess huwa mmarkat b'kuntest SELinux, li fih informazzjoni addizzjonali bħal utent, rwol, tip, eċċ. Jekk din hija l-ewwel darba li tippermetti SELinux, l-ewwel ser ikollok bżonn tikkonfigura l-kuntest u t-tikketti. Il-proċess tal-assenjazzjoni tat-tikketti u l-kuntest huwa magħruf bħala tagging. Biex tibda timmarka, fil-fajl tal-konfigurazzjoni nbiddlu l-mod għal permissiv.

$ vi /etc/selinux/config
SELINUX=permissive

Wara li tissettja l-mod permissiv, Oħloq fajl moħbi vojt fl-għerq bl-isem autorelabel

$ touch /.autorelabel

u reboot il-kompjuter

$ init 6

Nota: Aħna nużaw il-mod permissiv għall-immarkar, peress li l-użu tal-mod infurzar jista' jikkawża li s-sistema tiġġarraf waqt ir-reboot.

Tinkwetax jekk it-tniżżil jeħel fuq xi fajl, l-immarkar jieħu ftit. Ladarba l-immarkar ikun lest u s-sistema tiegħek tkun ibbutjata, tista 'tmur għall-fajl tal-konfigurazzjoni u ssettja l-mod infurzaru mexxi wkoll:

$ setenforce 1

Issa ppermettiet b'suċċess SELinux fuq il-kompjuter tiegħek.

Monitoraġġ taz-zkuk

Jista' jkun li ltqajt ma' xi żbalji waqt l-immarkar jew waqt li s-sistema tkun qed taħdem. Biex tiċċekkja jekk is-SELinux tiegħek hux qed jaħdem sew u jekk mhux qed jimblokka l-aċċess għal xi port, applikazzjoni, eċċ., trid tħares lejn ir-zkuk. Il-log SELinux jinsab fi /var/log/audit/audit.log, imma m'għandekx bżonn taqra l-ħaġa sħiħa biex issib żbalji. Tista' tuża l-utilità audit2why biex issib żbalji. Mexxi l-kmand li ġej:

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

Bħala riżultat, inti tirċievi lista ta 'żbalji. Jekk ma kienx hemm żbalji fil-log, allura ma jintwerew l-ebda messaġġi.

Konfigurazzjoni tal-Politika SELinux

Politika SELinux hija sett ta' regoli li jirregolaw il-mekkaniżmu tas-sigurtà SELinux. Politika tiddefinixxi sett ta' regoli għal ambjent speċifiku. Issa se nitgħallmu kif nikkonfiguraw politiki biex jippermettu aċċess għal servizzi pprojbiti.

1. Valuri loġiċi (swiċċijiet)

Swiċċijiet (booleans) jippermettulek tibdel partijiet ta' politika waqt ir-runtime, mingħajr ma jkollok għalfejn toħloq politiki ġodda. Huma jippermettulek tagħmel bidliet mingħajr ma terġa 'tibda jew tikkompila mill-ġdid il-politiki SELinux.

Eżempju
Ejja ngħidu li rridu naqsmu d-direttorju tad-dar ta 'utent permezz ta' FTP qari/kitba, u diġà konna qasmuh, iżda meta nippruvaw naċċessawha, ma naraw xejn. Dan għaliex il-politika SELinux tipprevjeni lis-server FTP milli jaqra u jikteb fid-direttorju tad-dar tal-utent. Irridu nbiddlu l-politika sabiex is-server FTP ikun jista’ jaċċessa direttorji tad-dar. Ejja naraw jekk hemmx xi swiċċijiet għal dan billi tagħmel

$ semanage boolean -l

Dan il-kmand se jelenka l-iswiċċijiet disponibbli bl-istat attwali tagħhom (mixgħul jew mitfi) u d-deskrizzjoni. Tista' tirfina t-tfittxija tiegħek billi żżid grep biex issib riżultati ta' ftp biss:

$ semanage boolean -l | grep ftp

u għandek issib dan li ġej

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

Dan is-swiċċ huwa diżattivat, għalhekk aħna se nippermettuha setsebool $ setsebool ftp_home_dir on

Issa d-demon ftp tagħna se jkun jista’ jaċċessa d-direttorju tad-dar tal-utent.
Nota: Tista 'wkoll tikseb lista ta' swiċċijiet disponibbli mingħajr deskrizzjoni billi tagħmel getsebool -a

2. Tikketti u kuntest

Dan huwa l-aktar mod komuni biex tiġi implimentata l-politika SELinux. Kull fajl, folder, proċess u port huwa mmarkat bil-kuntest SELinux:

  • Għal fajls u folders, it-tikketti huma maħżuna bħala attributi estiżi fuq is-sistema tal-fajls u jistgħu jitqiesu bil-kmand li ġej:
    $ ls -Z /etc/httpd
  • Għall-proċessi u l-portijiet, it-tikkettjar huwa ġestit mill-qalba, u tista 'tara dawn it-tikketti kif ġej:

proċess

$ ps –auxZ | grep httpd

il-port

$ netstat -anpZ | grep httpd

Eżempju
Issa ejja nħarsu lejn eżempju biex nifhmu aħjar it-tikketti u l-kuntest. Ejja ngħidu li għandna web server li, minflok direttorju /var/www/html/ использует /home/dan/html/. SELinux ser iqis dan bħala ksur tal-politika u ma tkunx tista' tara l-paġni web tiegħek. Dan huwa għaliex aħna ma stabbilixxewx il-kuntest tas-sigurtà assoċjati mal-fajls HTML. Biex tara l-kuntest tas-sigurtà default, uża l-kmand li ġej:

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

Hawn sirna httpd_sys_content_t bħala kuntest għall-fajls html. Għandna bżonn nissettjaw dan il-kuntest tas-sigurtà għad-direttorju attwali tagħna, li bħalissa għandu l-kuntest li ġej:

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

Kmand alternattiv biex jiċċekkja l-kuntest tas-sigurtà ta’ fajl jew direttorju:

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

Se nużaw ukoll semanage biex nibdlu l-kuntest ladarba sibna l-kuntest tas-sigurtà korrett. Biex tibdel il-kuntest ta' /home/dan/html, mexxi l-kmandi li ġejjin:

$ semanage fcontext -a -t httpd_sys_content_t ‘/home/dan/html(/.*)?’
$ semanage fcontext -l | grep ‘/home/dan/html’
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

Wara li l-kuntest jinbidel bl-użu ta 'semanage, il-kmand restorecon se jgħabbi l-kuntest default għall-fajls u direttorji. Is-server tal-web tagħna issa se jkun jista' jaqra fajls mill-folder /home/dan/htmlminħabba li l-kuntest tas-sigurtà għal dan il-folder inbidel għal httpd_sys_content_t.

3. Oħloq politiki lokali

Jista 'jkun hemm sitwazzjonijiet fejn il-metodi ta' hawn fuq ma huma ta 'ebda użu għalik u ikollok żbalji (avc/denial) f'audit.log. Meta jiġri dan, trid toħloq politika lokali. Tista' ssib l-iżbalji kollha billi tuża audit2why, kif deskritt hawn fuq.

Tista' toħloq politika lokali biex issolvi l-iżbalji. Per eżempju, aħna jkollna żball relatat ma 'httpd (apache) jew smbd (samba), aħna grep l-iżbalji u noħolqu politika għalihom:

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

Hawnhekk http_policy и smb_policy huma l-ismijiet tal-politiki lokali li ħloqna. Issa għandna bżonn tagħbija dawn il-politiki lokali maħluqa fil-politika attwali SELinux. Dan jista' jsir kif ġej:

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

Il-politiki lokali tagħna ġew imniżżla u m'għandniex nirċievu aktar l-ebda avc jew denail f'audit.log.

Dan kien it-tentattiv tiegħi biex ngħinek tifhem SELinux. Nittama li wara li taqra dan l-artikolu tħossok aktar komdu b'SELinux.

Sors: www.habr.com

Żid kumment