Root mewn terfynell, wedi’i wrthod o dan SELinux: pam mae’r bachyn yn methu
Gall bachyn sy’n gweithio’n berffaith â llaw gael ei wrthod y tu mewn i’r gwasanaeth. Cymharwch barth y broses, label y ffeil a’r caniatâd a wrthodwyd cyn golygu.
Rydych chi’n rhedeg y sgript up fel root, mae’n cwblhau, ac mae’r un sgript yn methu pan fydd y gwasanaeth yn ei galw. Nid oes dim wedi newid yng nghaniatadau’r ffeil, felly’r cam nesaf naturiol yw eu llacio eto, ac nid yw hynny’n trwsio dim. Ar westeiwr SELinux nid pwy yw’r broses sy’n penderfynu’n aml, ond ym mha barth y mae’n rhedeg, ac mae root o fewn parth cyfyngedig yn dal yn gyfyngedig.
Yr un gorchymyn, dau barth diogelwch gwahanol
Mae gorfodi mathau yn gwerthuso’r parth ffynhonnell, y label targed a’r llawdriniaeth a ofynnwyd gyda’i gilydd. Mae eich sesiwn terfynell yn rhedeg mewn parth heb ei gyfyngu neu weinyddol, ac mae’r daemon yn rhedeg yn y parth a neilltuwyd i’w uned. Felly mae gorchmynion unfath yn cynhyrchu penderfyniadau gwahanol, ac mae’r gwahaniaeth yn fwriadol yn hytrach na’n wall yn y polisi.
Dyma pam mai dim ond os ydych chi’n cymharu eu cyd-destunau y mae cymharu’r ddau rediad yn ddefnyddiol. Rhedwch yr un gorchymyn o’r plisgyn ac o’r bachyn, ac mae fersiwn y plisgyn yn profi bod y deuaidd yn bodoli a bod y dadleuon yn gywir; nid yw’n profi dim am a yw’r gwasanaeth yn cael ei redeg. Rhedwch ef y ddwy ffordd a chymharwch y parthau, nid y codau ymadael yn unig. Y gymhariaeth honno sy’n troi cwyn caniatâd annelwig yn gwestiwn penodol am un parth ac un label.
Siâp clasurol y nam hwn yw cynorthwyydd sy’n galw offeryn allanol. Gall y bachyn ei hun fod yn ganiataol, tra bod yr offeryn a alwodd yn cario label na all parth y gwasanaeth ei redeg, neu’n ysgrifennu i gyfeiriadur y mae ei label yn gwahardd hynny.
Darllenwch y cofnod AVC wrth ymyl gwall y bachyn
Mae gwrthodiad AVC yn enwi’r meysydd sy’n penderfynu’r achos: cyd-destun ffynhonnell y broses, cyd-destun targed y gwrthrych, dosbarth y gwrthrych, a’r caniatâd penodol a wrthodwyd. Darllenwch bob un o’r pedwar cyn llunio theori, oherwydd mae gan wrthodiad ar weithredu a gwrthodiad ar ysgrifennu atgyweiriadau hollol wahanol.
ausearch -m AVC,USER_AVC -ts recent
ls -Z /usr/local/sbin/vpn-up.sh
ps -eZ | grep openvpn
Dylai’r cyd-destun ffynhonnell gyfateb i’r parth y mae’r gwasanaeth yn rhedeg ynddo mewn gwirionedd, a dylai’r cyd-destun targed gyfateb i label y ffeil neu’r cyfeiriadur y cyffyrddodd y llawdriniaeth ag ef. Os nad yw’r naill na’r llall yn cyfateb i’r gwall rydych chi’n ei ddilyn, rydych chi’n darllen digwyddiad gwahanol.
Nodwch fersiwn y polisi a llwybr uniongyrchol y gweithredadwy ochr yn ochr â’r cofnod. Mae enw parth sy’n ymddangos ym mholisi un dosbarthiad yn dystiolaeth am y gosodiad hwnnw, nid yn warant bod adeiladwaith arall yn cludo’r un rheolau. Y cyd-destun hwnnw sy’n caniatáu i rywun arall atgynhyrchu eich casgliad ar ei westeiwr ei hun. Heb hynny, mae’r cofnod yn darllen fel anecdot yn hytrach na thystiolaeth.
Label, ffurfweddiad, neu bolisi: tair atgyweiriad
Yr atgyweiriad cyntaf yw label nad yw’n cyfateb i leoliad gosodedig y ffeil. Gall sgript a gopïwyd i’w lle gyda cp neu a ysgrifennwyd gan olygydd fod â label diofyn na all parth y gwasanaeth ei ddefnyddio, ac mae adfer y cyd-destun disgwyliedig yn trwsio hynny heb gyffwrdd â’r polisi o gwbl.
Yr ail yw ffurfweddiad. Efallai y bydd y dosbarthiad yn darparu ffordd gefnogol o redeg y llawdriniaeth, cyfeiriadur wedi’i ddogfennu ar gyfer y cynorthwyydd, neu becyn polisi wedi’i ddiweddaru sy’n caniatáu’n barod. Mae newid eich cynllun i’r un cefnogol yn rhatach na ysgrifennu polisi ac yn goroesi diweddariadau.
Y trydydd yw rheol sy’n wirioneddol absennol, a dylai fod yn ail gyfle olaf. Cynhyrchwch ymgeisydd gyda’r offerynnau archwilio, darllenwch beth mae’n ei ganiatáu mewn gwirionedd, cyfyngwch ef i’r llawdriniaeth a’r parth a arsylwyd gennych, a gofynnwch i rywun arall ei adolygu cyn iddo fynd yn agos at gynhyrchu.
Pam nad yw hen fodiwl allow yn yr ateb
Mae canlyniadau chwilio am y nam hwn yn llawn modiwlau rhag-gyfansoddedig, yn aml ar gyfer offeryn nad yw’r bachyn yn ei alw mwyach. Mae gosod un yn rhoi caniatadau a allai fod â dim i’w wneud â’ch gwrthodiad, ac mae’n gadael y camgyfatebiaeth go iawn yn ei le tra’n ychwanegu twll parhaol.
Mae hefyd yn cuddio’r methiant nesaf. Bydd modiwl sy’n caniatáu dosbarth eang o weithrediadau yn gwneud i’r gwall hwn ddiflannu ac yn troi’r un nesaf yn rhywbeth llawer anoddach ei briodoli. Mae tynnu’r modiwl yn ddiweddarach hefyd yn newid nad oes neb eisiau ei drefnu, felly mae’r llwybr byr yn tueddu i ddod yn barhaol.
Y gymhariaeth ddisgybledig yw rhwng y gwrthodiad y gallwch chi ei ddarllen a’r newid rydych chi’n ei gynnig. Mae canllaw datrys problemau SELinux Red Hat yn rhoi gwiriadau labelu a ffurfweddu o flaen polisi a gynhyrchwyd yn union am y rheswm hwn. Os nad oes gwrthodiad cyfatebol yn y cofnod, mae’n debyg nad SELinux yw eich problem, ac mae materion llwybr, sandbox neu ganiatâd yn dal yn agored.