Leabhar-iùil do luchd-tòiseachaidh air SELinux

Leabhar-iùil do luchd-tòiseachaidh air SELinux

Eadar-theangachadh den artaigil a chaidh ullachadh airson oileanaich cùrsa "Tèarainteachd Linux"

Tha SELinux no Security Enhanced Linux na inneal smachd ruigsinneachd leasaichte a chaidh a leasachadh le Buidheann Tèarainteachd Nàiseanta na SA (NSA) gus casg a chuir air sàrachadh droch-rùnach. Bidh e a’ buileachadh modal smachd ruigsinneachd èigneachail (no èigneachail) (Smachd Ruigsinneachd Riatanach Beurla, MAC) a bharrachd air a’ mhodal roghnach (no roghnach) a th’ ann mar-thà (Smachd Ruigsinneachd Roghainneil Beurla, DAC), is e sin, ceadan airson leughadh, sgrìobhadh, cur an gnìomh.

Tha trì modhan aig SELinux:

  1. Cur an gnìomh - diùltadh ruigsinneachd stèidhichte air riaghailtean poileasaidh.
  2. Ceadaichte - a’ cumail log de ghnìomhan a bhriseas am poileasaidh, a bhiodh toirmisgte sa mhodh èigneachaidh.
  3. Ciorramaich - làn dhì-chomasachadh SELinux.

Gu gnàthach tha na roghainnean a-staigh /etc/selinux/config

Ag atharrachadh modhan SELinux

Gus faighinn a-mach am modh làithreach, ruith

$ getenforce

Gus am modh atharrachadh gu ceadaichte ruith an òrdugh a leanas

$ setenforce 0

no, gus am modh atharrachadh bho ceadaichte air èigneachadh, cur an gnìomh

$ setenforce 1

Ma dh'fheumas tu SELinux a dhì-cheadachadh gu tur, chan urrainnear seo a dhèanamh ach tron ​​​​fhaidhle rèiteachaidh

$ vi /etc/selinux/config

Gus a chur à comas, atharraich am paramadair SELINUX mar a leanas:

SELINUX=disabled

A' stèidheachadh SELinux

Tha gach faidhle agus pròiseas air a chomharrachadh le co-theacsa SELinux, anns a bheil fiosrachadh a bharrachd leithid neach-cleachdaidh, dreuchd, seòrsa, msaa. Mas e seo a’ chiad turas agad a’ comasachadh SELinux, feumaidh tu an co-theacsa agus na bileagan a rèiteachadh an-toiseach. Canar tagadh ris a’ phròiseas airson bileagan agus co-theacsa a shònrachadh. Gus tòiseachadh air comharrachadh, anns an fhaidhle rèiteachaidh atharraichidh sinn am modh gu ceadaichte.

$ vi /etc/selinux/config
SELINUX=permissive

Às deidh am modh a shuidheachadh ceadaichte, cruthaich faidhle falaichte falamh san fhreumh leis an ainm autorelabel

$ touch /.autorelabel

agus ath-thòisich an coimpiutair

$ init 6

Nota: Cleachdaidh sinn am modh ceadaichte airson comharrachadh, bho chaidh am modh a chleachdadh èigneachadh dh’ fhaodadh gun tuislich an siostam rè ath-thòiseachadh.

Na gabh dragh ma thèid an luchdachadh sìos an sàs ann am faidhle air choreigin, bheir an comharrachadh greiseag. Aon uair ‘s gu bheil an comharrachadh deiseil agus an siostam agad air a bhrùthadh, faodaidh tu a dhol chun fhaidhle rèiteachaidh agus am modh a shuidheachadh èigneachadhagus ruith cuideachd:

$ setenforce 1

Tha thu a-nis air SELinux a chomasachadh air a’ choimpiutair agad.

A 'cumail sùil air clàran

Is dòcha gun do thachair thu ri mearachdan nuair a bha thu a’ comharrachadh no fhad ‘s a tha an siostam a’ ruith. Gus faighinn a-mach a bheil an SELinux agad ag obair gu ceart agus mura h-eil e a’ bacadh ruigsinneachd gu port, tagradh, msaa, feumaidh tu coimhead air na logaichean. Tha log SELinux suidhichte ann /var/log/audit/audit.log, ach chan fheum thu an rud gu lèir a leughadh gus mearachdan a lorg. Faodaidh tu an goireas audit2why a chleachdadh gus mearachdan a lorg. Ruith an òrdugh a leanas:

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

Mar thoradh air an sin, gheibh thu liosta de mhearachdan. Mura robh mearachdan san loga, cha tèid teachdaireachdan sam bith a thaisbeanadh.

A’ rèiteachadh Poileasaidh SELinux

Tha poileasaidh SELinux na sheata de riaghailtean a tha a’ riaghladh uidheamachd tèarainteachd SELinux. Tha poileasaidh a’ mìneachadh seata de riaghailtean airson àrainneachd shònraichte. A-nis ionnsaichidh sinn mar a chuireas sinn poileasaidhean air dòigh gus cothrom fhaighinn air seirbheisean toirmisgte.

1. Luachan loidsigeach (iomlaidean)

Leigidh suidsichean (booleans) leat pàirtean de phoileasaidh atharrachadh aig àm ruith, gun a bhith agad ri poileasaidhean ùra a chruthachadh. Leigidh iad leat atharrachaidhean a dhèanamh gun a bhith ag ath-thòiseachadh no ag ath-chruinneachadh phoileasaidhean SELinux.

Eisimpleir:
Canaidh sinn gu bheil sinn airson eòlaire dachaigh neach-cleachdaidh a cho-roinn tro leughadh / sgrìobhadh FTP, agus tha sinn air a roinneadh mu thràth, ach nuair a dh’ fheuchas sinn ri faighinn thuige, chan fhaic sinn dad. Tha seo air sgàth gu bheil poileasaidh SELinux a’ cur casg air an fhrithealaiche FTP bho bhith a’ leughadh agus a’ sgrìobhadh gu eòlaire dachaigh an neach-cleachdaidh. Feumaidh sinn am poileasaidh atharrachadh gus am faigh am frithealaiche FTP cothrom air clàran dachaigh. Feuch sinn a bheil suidsichean sam bith ann airson seo le bhith a’ dèanamh

$ semanage boolean -l

Nì an àithne seo liosta de na suidsichean a tha rim faighinn leis an staid làithreach aca (air no dheth) agus tuairisgeul. Faodaidh tu an rannsachadh agad ùrachadh le bhith a’ cur grep ris gus toraidhean ftp-a-mhàin a lorg:

$ semanage boolean -l | grep ftp

agus gheibh thu na leanas

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

Tha an tionndadh seo à comas, agus mar sin cuiridh sinn an comas e setsebool $ setsebool ftp_home_dir on

A-nis bidh an deamhan ftp againn comasach air faighinn gu eòlaire dachaigh an neach-cleachdaidh.
Nota: Gheibh thu cuideachd liosta de na suidsichean a tha rim faighinn gun tuairisgeul le bhith a’ dèanamh getsebool -a

2. Bileagan agus co-theacsa

Is e seo an dòigh as cumanta air poileasaidh SELinux a bhuileachadh. Tha gach faidhle, pasgan, pròiseas agus port air a chomharrachadh le co-theacs SELinux:

  • Airson faidhlichean agus pasganan, tha bileagan air an stòradh mar bhuadhan leudaichte air an t-siostam faidhle agus chithear iad leis an òrdugh a leanas:
    $ ls -Z /etc/httpd
  • Airson pròiseasan agus puirt, tha an leubail air a riaghladh leis an kernel, agus chì thu na bileagan sin mar a leanas:

phròiseas

$ ps –auxZ | grep httpd

port

$ netstat -anpZ | grep httpd

Eisimpleir:
A-nis leig dhuinn sùil a thoirt air eisimpleir gus bileagan agus co-theacsa a thuigsinn nas fheàrr. Canaidh sinn gu bheil frithealaiche lìn againn a tha, an àite eòlaire /var/www/html/ использует /home/dan/html/. Beachdaichidh SELinux air seo mar bhriseadh poileasaidh agus cha bhith e comasach dhut na duilleagan lìn agad fhaicinn. Tha seo air sgàth 's nach do shuidhich sinn an co-theacs tèarainteachd co-cheangailte ris na faidhlichean HTML. Gus an co-theacs tèarainteachd bunaiteach fhaicinn, cleachd an àithne a leanas:

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

Seo sinn a fhuair httpd_sys_content_t mar cho-theacs airson faidhlichean html. Feumaidh sinn an co-theacsa tèarainteachd seo a shuidheachadh airson an eòlaire gnàthach againn, aig a bheil an co-theacsa a leanas an-dràsta:

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

Òrdugh eile airson sgrùdadh a dhèanamh air co-theacs tèarainteachd faidhle no eòlaire:

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

Cleachdaidh sinn semanage cuideachd gus an co-theacsa atharrachadh aon uair ‘s gu bheil sinn air an co-theacsa tèarainteachd ceart a lorg. Gus co-theacsa / home/dan/html atharrachadh, ruith na h-òrdughan a leanas:

$ 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

Às deidh an co-theacsa atharrachadh le bhith a’ cleachdadh semanage, luchdaichidh an t-òrdugh restorecon an co-theacs bunaiteach airson faidhlichean agus clàran. Bidh an frithealaiche lìn againn a-nis comasach air faidhlichean a leughadh bhon phasgan /home/dan/htmla chionn 's gun deach co-theacs tèarainteachd a' phasgain seo atharrachadh gu httpd_sys_content_t.

3. Cruthaich poileasaidhean ionadail

Is dòcha gum bi suidheachaidhean ann far nach eil na dòighean gu h-àrd gu feum sam bith dhut agus gum faigh thu mearachdan (avc/denial) ann an audit.log. Nuair a thachras seo, feumaidh tu poileasaidh ionadail a chruthachadh. Gheibh thu a h-uile mearachd a’ cleachdadh audit2why, mar a chaidh a mhìneachadh gu h-àrd.

Faodaidh tu poileasaidh ionadail a chruthachadh gus mearachdan fhuasgladh. Mar eisimpleir, gheibh sinn mearachd co-cheangailte ri httpd (apache) no smbd (samba), bidh sinn a’ greimeachadh air na mearachdan agus a’ cruthachadh poileasaidh dhaibh:

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

tha e http_policy и smb_policy a bheil ainmean nam poileasaidhean ionadail a chruthaich sinn. A-nis feumaidh sinn na poileasaidhean ionadail cruthaichte sin a luchdachadh a-steach don phoileasaidh SELinux gnàthach. Faodar seo a dhèanamh mar a leanas:

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

Chaidh na poileasaidhean ionadail againn a luchdachadh sìos agus cha bu chòir dhuinn avc no denail sam bith fhaighinn ann an audit.log tuilleadh.

B’ e seo an oidhirp agam do chuideachadh le bhith a’ tuigsinn SELinux. Tha mi an dòchas às deidh dhut an artaigil seo a leughadh gum bi thu a’ faireachdainn nas comhfhurtail le SELinux.

Source: www.habr.com

Cuir beachd ann