Traduzzjoni tal-artiklu mħejjija għall-istudenti tal-kors
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:
- Infurzar — ċaħda ta' aċċess ibbażata fuq regoli ta' politika.
- Permissiv — iż-żamma ta' reġistru ta' azzjonijiet li jiksru l-politika, li jkunu pprojbiti fil-mod ta' infurzar.
- 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/html
minħ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