Gall tystysgrifau fod yn y cyfeiriadur cywir gyda modd darllenadwy a pherchnogaeth root, a gall y gwasanaeth o hyd adrodd na all agor y ffeil. Ar system SELinux mae’r cyfuniad hwnnw’n pwyntio at un mecanwaith penodol yn hytrach nag at ganiatadau. Teithiodd y label gyda’r ffeil, oherwydd nid yw ailenwi’n creu gwrthrych newydd. Cadwodd yr inode y cyd-destun diogelwch oedd ganddo ar yr hen lwybr, ac ni chafodd polisi’r llwybr newydd gyfle erioed i bennu un ei hun.

Beth mae ailenwi’n ei wneud mewn gwirionedd i label

Mae ffeil yn cario ei chyd-destun SELinux fel data priodoleddau sydd ynghlwm wrth yr inode. Mae ailenwi o fewn un system ffeiliau’n newid y cofnod cyfeiriadur a dim arall, sy’n gyflym ac yn atomig, a dyna pam mae’r cyd-destun yn goroesi’r symudiad. Ni ymgynghorir â pholisi, ni chymhwysir unrhyw ragosodiad, ac ni argreffir unrhyw rybudd.

Mae copïo’n ymddwyn yn wahanol. Mae copi’n creu inode newydd yn y cyfeiriadur cyrchfan, ac mae’r polisi’n pennu cyd-destun o fath y cyfeiriadur hwnnw, felly mae tystysgrif a gopïwyd fel arfer yn cael y label cywir tra bo un a symudwyd yn aros yn anghywir. Mae’r un gwahaniaeth hwnnw’n esbonio’r rhan fwyaf o’r dryswch yn y dosbarth hwn o docynnau.

Mae symudiadau rhwng systemau ffeiliau’n disgyn yn ôl i semanteg copïo, felly gall yr un gorchymyn ymddwyn yn wahanol ar ddwy beiriant yn dibynnu a yw /etc yn byw ar ei gyfrol ei hun. Gwiriwch hynny cyn dod i’r casgliad bod yr offeryn yn annibynadwy. Mae un olwg ar y tabl mowntio’n dweud wrthych pa fath o symudiad a wnaethoch.

Darllenwch y label presennol yn erbyn yr un a ddisgwylir

Mae tri gorchymyn darllen yn unig yn ateb y cwestiwn heb newid dim. Mae’r cyntaf yn dangos beth sydd gan y ffeil nawr, mae’r ail yn adrodd beth mae’r polisi’n ei ddisgwyl ar gyfer yr union lwybr hwnnw, ac mae’r trydydd yn rhestru pob ffeil o dan y cyfeiriadur y mae ei label yn wahanol.

ls -lZ /etc/openvpn/client/office-ca.crt
matchpathcon /etc/openvpn/client/office-ca.crt
restorecon -Rn -v /etc/openvpn/client

Y prawf sych yw’r un i ymddiried ynddo, oherwydd mae’n enwi pob ffeil y mae ei chyd-destun yn gwyro oddi wrth bolisi ac yn gadael y system yn gyfan. Os yw’r dystysgrif yn ymddangos yn y rhestr honno, rydych wedi dod o hyd i’r anghysondeb rhwng yr hyn y mae’r llwybr yn ei olygu a’r hyn y mae’r ffeil yn ei honni. Os nad yw’n ymddangos, mae’r label eisoes yr hyn y mae’r polisi’n ei eisiau ac mae eich amser yn perthyn yn rhywle arall.

Yna cydberthynwch y gwahaniaeth â gwrthodiad gwirioneddol. Mae anghydweddiad yn dystiolaeth o label anghywir, nid yn brawf bod y gwasanaeth wedi methu oherwydd hynny, ac mae cywiriad a gymhwyswyd heb wrthodiad cyfatebol yn y log yn ddyfaliad gyda chamau ychwanegol.

Adferwch y mapio yn hytrach na dyfeisio eithriad

Ar gyfer lleoliad safonol mae’r polisi eisoes yn mapio’r llwybr, felly mae restorecon yn ei gymhwyso ac mae’r gwaith drosodd. Cadwch y cwmpas i’r cyfeiriadur rydych yn ei atgyweirio; mae ailenwi’r system ffeiliau gyfan yn araf, yn amharu, ac mae’n claddu’r camgymeriad gwreiddiol o dan newid enfawr.

Ar gyfer cyfeiriadur arferol mae’r drefn yn bwysig, ac mae ei gwrthdroi’n cynhyrchu gorchymyn sy’n adrodd llwyddiant heb newid dim. Mae’r mapio’n perthyn i’r polisi, mae’r ailenwi’n perthyn ar y diwedd, ac mae’r prawf sych yn perthyn o flaen y ddau. Neidio’r rhan olaf honno yw’r ffordd y mae llwybr nad oedd erioed yn anghywir yn cael ei ailenwi beth bynnag.

semanage fcontext -a -t openvpn_etc_t '/etc/openvpn/custom(/.*)?'
restorecon -Rv /etc/openvpn/custom

Mae restorecon yn cymhwyso mapio; ni all ddyfeisio un. Os nad oes unrhyw reol yn disgrifio’r llwybr, nid oes dim i adfer ohono, a dyna pam mae’n rhaid i’r mapio parhaus fodoli cyn yr ailenwi. Cofnodwch pa ffurfweddiad sy’n berchen ar y mapio hwnnw, oherwydd fel arall mae symudiad diweddarach, diweddariad pecyn neu ailenwi’n ail-greu’r nam ac mae’r person nesaf yn dechrau o sero.

Pam nad chcon yw’r ateb

Mae chcon yn ysgrifennu cyd-destun yn uniongyrchol ar y ffeil. Mae’n dod i rym ar unwaith a dyma’r opsiwn lleiaf parhaus sydd ar gael, oherwydd mae ailenwi system ffeiliau’n ailgymhwyso polisi ac yn taflu newidiadau â llaw heb ofyn. Mae’r ffeil yn edrych wedi’i thrwsio ac mae gan y trwsiad ddyddiad dod i ben na ysgrifennodd neb. Yr hyn rydych ei eisiau yn lle hynny yw rheol sy’n disgrifio’r llwybr, fel bod pob ffeil sy’n cyrraedd yno’n cael yr un driniaeth yn awtomatig.

Yn waeth, mae’n dysgu’r wers anghywir: mae’r mapio sylfaenol yn dal ar goll, felly mae’r methiant yn dychwelyd wythnosau’n ddiweddarach heb unrhyw sbardun amlwg a heb gof am y gwaith o’i amgylch. Defnyddiwch chcon yn unig fel arbrawf dros dro i gadarnhau rhagdybiaeth, yna disodlwch ef â mapio sy’n goroesi’r ailenwi nesaf, a gwiriwch fod y disodliad mewn gwirionedd yn ei le.

Pan mae’r label yn iawn ac mae mynediad yn dal i fethu

Dechreuwch gyda’r cyfeiriaduron rhiant. Mae caniatâd tramwy’n cael ei wirio ar bob cydran o’r llwybr, felly mae tystysgrif wedi’i labelu’n gywir y tu mewn i gyfeiriadur na all y gwasanaeth fynd iddo yn dal yn annarllenadwy. Rhaid i SELinux a chaniatâd cyffredin ill dau ganiatáu pob cam, ac nid yw trwsio un yn trwsio’r llall.

Yna gwiriwch hunaniaeth y broses a blwch tywod y gwasanaeth ei hun. Gall uned â blwch tywod cyfyngol wrthod mynediad i ffeil y byddai’r polisi’n fodlon ei chaniatáu, ac o’r llinell log mae’r ddau achos yn edrych yn unfath. Cadarnhewch pa broses sy’n gofyn mewn gwirionedd, nid pa un rydych yn tybio sy’n gofyn.

Cofiwch y gall rheolau dontaudit atal negeseuon gwrthod, felly mae log archwilio gwag yn dystiolaeth wan yn hytrach na phrawf. Os yw’r polisi’n edrych yn iawn ac mae mynediad yn dal i fethu, ymchwiliwch cyn cynhyrchu modiwl caniatáu eang, a pheidiwch ag analluogi SELinux i wneud i’r symptom ddiflannu. Mae’r ddau lwybr byr yn cynhyrchu system sy’n ymddangos fel petai’n gweithio a safiad diogelwch na all neb ei ddisgrifio. Mae ymchwiliad byr yn well na’r naill na’r llall.

Erthyglau cysylltiedig