Tosaíonn an tseirbhís, déanann an logán gearán nach féidir léi an gléas tun a oscailt, agus ní thagann na bealaí riamh. Rith capsh --print i do shell agus tá cap_net_admin díreach ann, rud a fhágann go bhfeictear an teip dodhéanta. Is é an t-aistriú pribhléide atá difriúil idir do shell agus an t-aonad, ní toilteanas an eithne an cumas a dheonú. Téigh trí na ceithre sheiceáil thíos in ord agus stop ag an gcéad cheann a mhíníonn an bhearna.

Cumas atá ar iarraidh a scaradh ó ghléas i bhfolach

Féachann dhá theip mar an gcéanna ón líne logáin. Ní féidir le próiseas gan CAP_NET_ADMIN an chomhéadan tolláin a chruthú ná a chumrú, agus ní féidir le próiseas a bhfuil a bhosca gaineamh ag folach /dev/net/tun é a oscailt ar chor ar bith. Ní dheiseoidh cumais bhreise an dara cás.

Seiceáil an bhfuil an gléas ann laistigh de spásainm na seirbhíse sula n-athraíonn tú rud ar bith. Is líne chruaite choitianta é PrivateDevices=yes a bhaineann an nód tun amach go hiomlán, agus is féidir le ProtectSystem sriantach an cosán cumraíochta a dhéanamh inléite amháin ar bhealach a léitear mar earráid cheada. Cruthaíonn an dá rud línte logáin a luann an tollán, agus is é sin an fáth a gcuirtear an milleán ar na cumais. Deimhnigh go bhfuil an nód ann agus gur féidir é a oscailt ar dtús, ansin téigh ar aghaidh.

Bíodh a fhios agat cén tsraith cumais a bhfuil tú ag féachaint uirthi

Coinníonn Linux sraitheanna ceadaithe, éifeachtacha, inoidhreachta, teorannacha agus timpeallachta, agus is í an tsraith timpeallachta an ceann a mhaireann exec ó úsáideoir nach root é. Is féidir le cumais chomhaid ar an dénár aistriú ceart ceadaithe agus éifeachtach ag exec, ach amháin fad nach gcuireann aon rud sa slabhra bac ar an aistriú sin.

Seo an áit a gcuireann sudo daoine amú. Tosaíonn ordú a ritear trí sudo -u aistriú pribhléide nua agus imíonn an tsraith timpeallachta, mar sin teipeann ansin ar an seiceáil chéanna a n-éiríonn léi mar root. Is aistriú eile fós é an bainisteoir seirbhíse, agus ní thugann sé aon rud timpeallachta mura ndeir an t-aonad é.

Tabhair an cumas san aonad, ní i bhfillteán

Seo a leanas an chuma a bhíonn ar rannán seirbhíse íosta do thollán a chaithfidh gléas a chruthú agus bealaí a shuiteáil.

[Unit]
Description=OpenVPN client, office profile
After=network-online.target

[Service]
Type=notify
User=openvpn
Group=openvpn
NoNewPrivileges=yes
AmbientCapabilities=CAP_NET_ADMIN
CapabilityBoundingSet=CAP_NET_ADMIN
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/office.conf

AmbientCapabilities cuireann an ceart sa tsraith timpeallachta sula dtosaíonn an próiseas, agus coisceann CapabilityBoundingSet an próiseas ó rud ar bith lasmuigh den liosta sin a shealbhú. Cuireann NoNewPrivileges=yes bac ar ghnóthú pribhléide trí setuid nó cumais chomhaid, agus tá feidhm fós ag an gcumas a dheonaíonn an t-aonad go sainráite. Ná cuir CAP_NET_BIND_SERVICE leis ach amháin nuair a chaithfidh an tseirbhís port íseal a cheangal, agus ná cuir CAP_SYS_ADMIN leis riamh díreach mar gheall gur dhein snáithe fóraim é.

Má fhilltear an dénár in sudo san aonad, bain an fillteán. Cuireann systemd User= i bhfeidhm cheana féin, agus is é an ciseal breise sin an chúis is dóichí go bhfuil an tsraith timpeallachta folamh.

Fíoraigh i gcoinne an phróisis bheo, ní i gcoinne chomhad an aonaid

Léigh a bhfuil curtha i bhfeidhm ag an mbainisteoir i ndáiríre, ansin léigh an próiseas a ghineann sé.

unit=openvpn-client@office
systemctl show -p User -p AmbientCapabilities "$unit"
systemctl show -p MainPID --value "$unit" | xargs -r getpcaps
grep -E '^Cap(Eff|Amb)' /proc/$(systemctl show -p MainPID --value "$unit")/status

Má liostaíonn an t-aonad an cumas agus mura bhfuil sé fós ag CapEff, tá drop-in ag sárú na socraithe nó tá céim ExecStartPre ag athrú na timpeallachta. Cuardaigh ainm an aonaid sna heolairí drop-in sula ngabhann tú leis gurb é an príomhchomhad an t-údarás, mar bíonn an lámh in uachtar ag comhad níos déanaí go ciúin. Má thaispeánann an t-aonad agus an próiseas araon an cumas agus má theipeann ar an tollán fós, fill ar na seiceálacha gléis agus cosáin seachas an tsraith theorannach a leathnú. Folaíonn leathnú na cúise fíor agus fágtar an tseirbhís níos pribhléidí ná mar a bhí.

Is fearr pribhléidí a scaoileadh tar éis an tosaithe

OpenVPN is féidir leis tosú go pribhléideach agus ansin dul síos go cuntas neamhphribhléideach trína roghanna user agus group féin, agus persist-key agus persist-tun ag coinneáil an tolláin inúsáidte ina dhiaidh sin. Cúngaíonn an socrú sin an fhuinneog ina bhfuil cearta ag an bpróiseas, agus is minic a oireann sé níos fearr ná an deamhan iomlán a thosú go neamhphribhléideach le cumais bhuan.

Cibé múnla a roghnaíonn tú, atosaigh an t-aonad agus déan na seiceálacha arís tar éis atosaithe, mar is iondúil gurb é difríocht i gcumas, i ngléas nó i gceadanna comhaid is cúis le seirbhís a oibríonn ó shell root idirghníomhach agus a theipeann ag am tosaithe. Taifead socruithe an aonaid in aice le haschur cumais an phróisis ionas go bhfeicfidh an chéad athbhreithneoir eile ar bhog nuashonrú pacáiste nó drop-in an teorainn.

Ailt ghaolmhara