Whakaaetanga Kōnae i Linux

Kia ora katoa. Kei te kaha taatau ki te mahi, kei te whakareri kua maha nga whakarewanga kaha hei te Hanuere. I roto i etahi atu, kua panuitia te whakaurunga mo te rerenga hou o te akoranga tino pai a te katoa. "Kaiwhakahaere Linux". I mua i te whakarewatanga, ka tohatohahia e matou nga whakamaoritanga o nga rauemi whai hua.

Whakaaetanga Kōnae i Linux

Ka tukuna e nga whakaaetanga konae tetahi huarahi haumaru ki nga whakaurunga SUID, engari he ahua rangirua i te tuatahi.


E mohio ana tatou katoa ki taua rua SUID Ko te whakatau kino mai i te tirohanga haumaru. Waimarie, ki te hiahia to tono ki etahi painga iti, he huarahi pai ake te karanga whakaaetanga kōnae.

Ka whakaora ahau i a koe ki te hiahia koe ki te karo i te panui i nga korero i runga ake nei: Ko te mea nui, ka whakaaetia e nga whakaaetanga konae nga tikanga ka puta hei pakiaka, na reira ka whakaaetia ki te mahi i tetahi mea hei pupuri i etahi kaha, he iti noa. tenei rarangiina whakataka ana e ratou nga mana me te whakahaere e tetahi kaiwhakamahi kore. Ko te tikanga, mena ka taea e te kaitukino te whakararu i tetahi tikanga ma te whakamahi i te putunga putunga, i etahi atu mahi ranei, kare e taea e ia te whakamahi i tetahi mea ke atu i etahi painga iti e hiahiatia ana e te tukanga.

He tino pai nga whakaaetanga mo nga ratonga ka rere tonu hei pakiaka, engari me pehea nga taputapu raina whakahau? Waimarie, ka tautokohia ano tenei mena kua whakauruhia e koe nga taputapu tika. Mena kei te whakamahi koe i te Ubuntu, hei tauira ka hiahia koe ki te kete libcap2-bin. Ka hiahia hoki koe ki te whakahaere i te kakano kore-tawhito (mai i te putanga 2.6.24).

Ka taea e enei mahi te hono nga whakaaetanga ki nga konae ka taea te whakahaere, he rite ki te whakatakoto i te moka SUID, engari mo te huinga whakaaetanga motuhake anake. Whakamahinga setcap whakamahia hei taapiri me te tango whakaaetanga mai i tetahi konae.

Ko te mahi tuatahi ko te kowhiri i nga whakaaetanga e hiahia ana koe. Mo tenei tuhinga, kei te whakaaro ahau kei reira tetahi taputapu tātari whatunga e kiia nei tracewalk, me kaha ki te whakamahi nga turanga mata. Ko te tikanga tenei me whakahaere te tono hei pakiaka, engari ka tiro te raarangi ka puta ko te whakaaetanga anake e hiahiatia ana CAP_NET_RAW.

Ki te whakaaro kei roto koe i te whaiaronga kei reira te rua tracewalk, ka taea e koe te taapiri i tenei whakaaetanga penei:

sudo setcap cap_net_raw=eip tracewalk

Waiho te kumara mo naianei =eip mo te whakatau, ka korero ahau mo tera i roto i nga hēkona e rua. Kia mahara ko te ingoa whakaaetanga kei roto i te reta iti. Ka taea e koe te tirotiro mena kua tika to whirihora whakaaetanga me:

setcap -v cap_new_raw=eip tracewalk

Ka taea ranei e koe te whakararangi i nga whakaaetanga katoa kua whakaritea mo tetahi kaipahua:

getcap tracewalk

Hei tohutoro, ka taea hoki e koe te tango i nga whakaaetanga katoa mai i te whakahaere me:

setcap -r tracewalk

I tenei wa, me kaha koe ki te whakahaere i te kaikawe hei kaiwhakamahi kore whai mana, a me kaha ki te mahi me nga turanga mata, engari kaore he painga o te kaiwhakamahi pakiaka.

Na he aha te tikanga o tenei kumuri ke? =eip? Me mohio tenei ki te ahua o nga whakaaetanga. Kei ia tukanga e toru nga huinga whakaaetanga − whai hua, tuku iho me te whakaaetia:

  • Whai hua Ko nga whakaaetanga ko nga mea e whakaatu ana he aha te mahi ka taea e te tukanga. Hei tauira, kaore e taea te mahi ki nga turanga mata mena CAP_NET_RAW kaore i roto i te huinga whai hua.
  • Kei te waatea Ko nga whakaaetanga ko nga mea e whakaaetia ana ki tetahi tukanga mena ka tono ma te whakamahi i te waea tika. Ka aukatihia e ratou tetahi tukanga kia kore e mahi i tetahi mea mena kaore i tuhia motuhake ki te tono whakaaetanga. Ma tenei ka taea te tuhi i nga tukanga ki te taapiri i nga whakaaetanga whakahirahira ki te huinga whai hua mo te waa e hiahiatia ana.
  • Ka tuku iho Ko nga whakaaetanga ko nga mea ka taea te tuku iho i roto i te huinga whakaurunga o te tukanga tamaiti whanau. I te wa o te pokanga fork() ranei clone() Ko te tukanga tamaiti ka tukuna he kape o nga whakaaetanga a te tukanga matua i te mea kei te whakahaere tonu i taua wa ano. Ka whakamahia he huinga tuku iho ina exec() (he rite ranei) ka karangahia hei whakakapi i te konae kawe ki tetahi atu. I tenei wa, ka hunahia te huinga o te tukanga e te huinga tuku iho kia whiwhi ai i te huinga uru ka whakamahia mo te tukanga hou.

Na te whaipainga setcap ka taea e maatau te taapiri i nga whakaaetanga o enei huinga e toru mo tetahi ka taea te whakahaere. Kia mahara he rereke te whakamaoritanga o nga roopu mo nga whakaaetanga konae:

  • Wātea Ko nga whakaaetanga konae ko nga mea e waatea ana ki tetahi konae ka taea te whakahaere, ahakoa karekau i te tukanga matua nana i karanga. I kiia ratou i mua he whakaaetanga "kaha".
  • tuku iho Ka tautuhia e nga whakaaetanga konae he kanohi taapiri ka taea hoki te tango whakaaetanga mai i te huinga o te tukanga waea. Ka tono hei taapiri atu ki te huinga tuku iho o te tukanga waea, no reira ka whakawhiwhia te whakaaetanga mena kei roto i nga huinga e rua.
  • Whai hua Ko nga whakaaetanga konae he moka kotahi noa iho, ehara i te huinga, a ki te tautuhia, ko te tikanga ka kapehia te huinga katoa e waatea ana ki te huinga whai hua o te tukanga hou. Ka taea te whakamahi hei taapiri i nga whakaaetanga ki nga tukanga kaore i tuhia kia tonohia. I te mea he moka kotahi, mena ka whakatauhia e koe mo tetahi whakaaetanga, me whakarite mo nga whakaaetanga katoa. Ka taea e koe te whakaaro he moka tuku iho na te mea e whakamahia ana hei tuku whakaaetanga kia whakamahia e nga tono kaore i te tautoko.

I te wa e tohu ana i nga whakaaetanga ma te setcap e toru nga reta e, i и p pā ana ki whai hua, tuku iho me te waatea huinga ia. Na, ko te whakaritenga o mua:

sudo setcap cap_net_raw=eip tracewalk

...e tohu ana ko te whakatau CAP_NET_RAW me taapiri atu ki nga huinga e waatea ana me nga huinga tuku iho, me whakarite hoki te moka whai hua. Ma tenei ka whakakore i nga whakaaetanga kua whakaritea i mua i runga i te konae. Hei tautuhi i nga whakaaetanga maha i te wa kotahi, whakamahia he rarangi wehea piko:

sudo setcap cap_net_admin,cap_net_raw=eip tracewalk

Aratohu Whakaaetanga he korero mo enei mea katoa, engari ko te tumanako kua whakakorehia e tenei panui he aha nga mea kei te haere. He torutoru noa nga whakatupato me nga tinihanga e toe ana hei whakahua.

Tuatahi, karekau te kaha o te konae e mahi me nga hononga tohutoro - me tono e koe ki te konae rua ano (arā, ko te whainga o te symlink).

Tuarua, karekau e mahi me nga tuhinga whakamaori. Hei tauira, mena kei a koe he tuhinga Python e hiahia ana koe ki te tuku whakaaetanga, me tautapa koe ki te kaiwhakamaori Python ake. Ko te tikanga he take haumaru pea tenei na te mea ko nga tuhinga katoa i mahia me taua kaiwhakamaori ka whai whakaaetanga kua tohua, ahakoa he pai ake tenei ki te hanga SUID. Ko te mahi tino noa ko te tuhi i tetahi whakahaere motuhake ki te C, orite ranei ka taea te mahi i nga mahi e tika ana me te karanga mai i te tuhinga. He rite tenei ki te huarahi i whakamahia e Wireshark e whakamahi ana i te rua /usr/bin/dumpcap ki te mahi i nga mahi whaimana:

$ getcap /usr/bin/dumpcap 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

Tuatoru, ka whakakorehia nga whakaaetanga konae mena ka whakamahi koe i tetahi taurangi taiao LD_LIBRARY_PATH mo nga take haumarutanga marama(1). Ka pa ano ki LD_PRELOAD, ki taku mohio.

1. I te mea ka taea e te kaikoeke te whakakapi i tetahi o nga whare pukapuka paerewa me te whakamahi LD_LIBRARY_PATHki te akiaki i tana whare pukapuka kia karangahia kia pai ake ki te punaha kotahi, na reira ka mahia e ia tana ake waehere whai mana me te whai mana ki te tono waea.

Heoi ano. Ka kitea etahi atu korero mo te kaupapa akoranga i webinar, ka tu hei te Hanuere 24.

Source: will.com

Tāpiri i te kōrero