Taifeadann an daemon teip chroot agus breathnaíonn an phróifíl fhlaithiúil cheana féin, mar sin is é an deisiú mealltach riail chonair a leathnú agus atosú. Ní athraíonn sé sin aon rud de ghnáth, toisc go gcoisctear chroot le pribhléid nach bhféadfadh an phróifíl a thabhairt riamh. Chun a chinneadh cé acu ciseal le teagmháil, tá trí sheiceáil de dhíth, agus tá siad saor: cad a cheadaítear don phróiseas a shealbhú, cad a cheadaíonn an pholasaí, agus cad a bhain an lainseálaí sula raibh tábhacht le ceachtar den dá rud.

Dhá gheata ar leith, agus ní bhaineann ach ceann amháin le AppArmor

Teastaíonn CAP_SYS_CHROOT ó chroot sa spás ainmneacha úsáideora ina bhfuil an próiseas ag rith. Pribhléid Linuxghnách is ea í, agus seiceálann an t-eithne í sula ndéanann an ghlao aon rud le conairí. Ar leithligh, is féidir le próifíl AppArmor atá i mód forfheidhmithe an cumas a dhiúltú fiú nuair atá sé ag an bpróiseas, toisc go gcuirtear polasaí éigeantach san áireamh sa bhreis ar na dintiúirí, ní ina n-ionad. Tá tábhacht phraiticiúil leis an idirdhealú: maireann an dá chiseal i gcomhaid éagsúla agus is gnách gurbh iad daoine éagsúla a chothaíonn iad.

Teipeann an dá gheata leis an errno céanna. Táirgeann an dá cheann EPERM, agus tagann an dá cheann chun solais mar ghearán cead ghinearálta i log an daemon, agus is é sin an fáth a gcaitheann buille faoi thuairim faoi ábhar na próifíle an oiread sin ama. Rialaíonn an riail chonair a bhí ar tí agat a chur leo rochtain ar chomhaid tar éis chroot a éirí, ach ní bhíonn aon bhaint aici le cé acu atá an oibríocht ceadaithe ar chor ar bith.

Seasann tríú geata os cionn an dá cheann. Má sheol an bainisteoir seirbhíse nó fillteán an próiseas gan an cumas ina thacar teorann, ní féidir le haon athrú AppArmor é a chur ar ais, agus ní dhéanann cumais a chur leis an bpróifíl ach intinn a dhoiciméadú nach ngéillfidh an t-eithne di.

Léigh staid na pribhléide sula ndéanann tú an pholasaí a eagarthóireacht

Tosaigh ón bpróiseas atá ag rith seachas ón gcumraíocht a cheapann tú a bheith gníomhach. Nochtann an comhad staid cúig mhasc cumais agus an bhratach no-new-privileges, agus freagraíonn siad ceisteanna éagsúla:

grep -E '^(CapInh|CapPrm|CapEff|CapBnd|CapAmb|NoNewPrivs):' /proc/$(pidof openvpn)/status
sudo aa-status | grep -i openvpn

Is í CapEff an tacar atá tábhachtach don ghlao: cumas atá i láthair i CapBnd ach as láthair ó CapEff, ceadaítear é ag an uasteorainn agus ní shealbhaítear anois é. Bíonn CapAmb tábhachtach nuair nach bhfuil an dénártha pribhléideach sa chiall setuid is gnách, toisc gurb é cumais thimpeallacha an bealach a gcoimeádann seirbhís pribhléid trí exec gan cumais chomhaid. Coimeádann CapInh giotáin is féidir a oidhreachtú trí exec, ach amháin nuair a cheadaíonn tacar oidhreachta an chomhaid fhorghníomhaithe é sin, mar sin ní thugann giotán ansin aon rud ann féin.

Ansin dearbhaigh cé acu próifíl atá ceangailte i ndáiríre. Is féidir próiseas a shrianadh le hainm próifíle nach raibh súil agat leis, go háirithe nuair a sheolann dáileadh a chomhad aonaid agus a phróifíl le chéile, agus réitíonn léamh /proc/PID/attr/current é sin in aon líne amháin. Is é do chomhad eagarthóireachta a chur i gcomparáid leis an bpróifíl a thuairiscíonn an t-eithne an difríocht idir an chúis a shocrú agus comhad a eagarthóireacht nach lódálann aon duine.

Ná cuir an riail cumais leis ach amháin nuair a deir an rian iniúchóireachta é

Ainmníonn taifid an eithne agus na hiniúchóireachta an ciseal a dhiúltaíonn. Cuardaigh diúltú a iompraíonn an oibríocht capable agus an t-ainm sys_chroot, mar aon leis an bpróifíl a tháirg é. Má tá an taifead sin ann, bhí an cumas ag an bpróiseas cheana agus dhiúltaigh AppArmor dó, agus is riail cumais laistigh den fhíorphróifíl an t-athrú dírithe:

capability sys_chroot,

Coinnigh é mar mhíre sa phróifíl atá ceangailte i ndáiríre, agus seiceáil an eochairfhocal i gcoinne tagairt na bpróifíl apparmor.d seachas riail a chóipeáil ó theagasc gan bhaint. Má chuirtear i gcuimsitheoir comhroinnte é, tugtar do gach clár srianta a tharraingíonn an comhad sin é, agus ceilfidh próifílí a aistriú go mód gearáin an chéad diúltú eile seachas an ceann seo a réiteach. Baineann riail na próifíle diúltú polasaí; ní chruthaíonn sí pribhléid, mar sin teipfidh ar phróiseas nárbh é CAP_SYS_CHROOT riamh ina thacar éifeachtach fiú leis an riail i bhfeidhm.

Mura dtaispeánann an taifead iniúchóireachta aon diúltú AppArmor ar chor ar bith, stop ag eagarthóireacht na próifíle. Tá fadhb dhintiúirí os do chomhair, agus tá an obair atá fágtha sa chomhad aonaid nó sa phróiseas tuismitheora, ní i dteanga an pholasaí.

Coimeádann an bainisteoir seirbhíse a uasteorainn féin

Socraíonn systemd tacar teorann cumas do gach seirbhís, agus de réir réamhshocraithe tá an tacar sin cúng. Tá aon rud a eisiatar ansin neamh-immheánach don phróiseas is cuma cad a deir an phróifíl, agus is é sin an fáth a dteipeann ar aonaid chruaaithe ar oibríocht a d'oibrigh nuair a seoladh an daemon de láimh. Is furasta na treoracha ábhartha a léamh san aonad agus is furasta iad a fhágáil ar lár nuair a thuairiscíonn an feidhmchlár an teip. Is iad na drop-in a sheolann pacáiste dáileadh an fhoinse is gnách d'uasteorainn nach cuimhin le haon duine gur chumraigh sé í.

Is dhá athrú iad an uasteorainn a ardú agus an cumas a dheona, ní ceann amháin. Deir iontráil sa tacar teorann go bhféadfaidh an próiseas an cumas a shealbhú; ní chuireann sí leis an tacar éifeachtach é, agus is féidir le NoNewPrivs cosc a chur ar ardú níos déanaí éirí fiú nuair a thagann gach rud eile le chéile. Ná cuir leis ach an méid a theastaíonn don oibríocht, coinnigh an chuid eile den chruaú slán, agus seas in aghaidh an aicearra chun gach cumas a thabhairt chun go n-éireodh le haon ghlao amháin.

Tá tábhacht leis an ord anseo freisin. Athraigh uasteorainn an aonaid ar dtús, fíoraigh go bhfuil an giotán i CapEff anois, agus ansin amháin socraigh an ndiúltaíonn AppArmor fós. Má dhéanann tú an dá athrú le chéile, fágfar thú ag buille faoi thuairim arís má leanann an teip.

Nuair a ghlanann an diúltú, seiceáil an phríosún féin

Aistríonn chroot rathúil an fhréamh, mar sin réitítear gach conair a dteagmhaíonn an daemon léi ina dhiaidh sin laistigh den chrann nua. Beidh cumraíocht in easnamh, nód gléis as láthair nó comhadlann deimhnithe nár cóipeáladh le feiceáil anois mar earráid chomhaid, agus is fadhb leagan amach an earráid sin, ní fadhb cumais. Léigh an chéad imeacht eile seachas cead leathan eile a chur leis. Athraíonn an t-aistriú freisin cad a chiallaíonn conair choibhneasta, agus is é sin an fáth a ngeallann treoracha cruaaithe ar chonairí absalóideacha i gcumraíocht an daemon.

Cabhraíonn sé freisin cuimhneamh ar cad nach ndéanann chroot. Is teorainn chonair í, ní bosca gainimh: is féidir le próiseas a choimeádann an phribhléid éalú uaithi, agus is é sin an fáth a scaoiltear an cumas de ghnáth tar éis na glaonna agus gur chóir don srianadh fanacht timpeall an daemon. Má choinnítear próifíl AppArmor, an tacar teorann cumas agus srianta an chórais chomhad le chéile, is é sin croílár an chleachtaidh, ní iarsma é a bhaintear nuair a thosaíonn an tseirbhís.

Tá an riail chinnteoireachta gearr. Má ainmníonn an taifead iniúchóireachta AppArmor, cuir riail cumais amháin leis an bpróifíl cheangailte. Má tá an tacar éifeachtach folamh, socraigh uasteorainn an aonaid agus ord scaoileadh na pribhléide. Mur é an phróifíl an ceann a d'eagraigh tú, stop ag eagarthóireacht agus aimsigh an ceann fíor.

Ailt ghaolmhara