Me ya sa ƙugiyar OpenVPN ba ta iya samun fayil ɗin da ke gefen rubutunta
Hanyoyin dangi a cikin ƙugiya ana warware su ne bisa tsarin da ake gudanarwa, ba bisa rubutun ba. Ka ɗora su da __file__, sannan ka duba sararin suna da asali kafin izini.
Ƙugiyoyin da ke gudana ba tare da kuskure ba amma suna ba da rahoton fayil da ya ɓace yawanci suna duba wuri marar kyau ne, ba wai suna kasawa a aikinsu ba. Hanyoyin dangi a cikin rubutu ana warware su bisa babban fayil ɗin aiki na tsarin da ake gudanarwa, kuma sabis yana farawa da babban fayil ɗin aiki da ba ka zaɓa ba. Fayil ɗin da ke gefen rubutun da fayil ɗin da tsarin ke buɗewa abu ɗaya ne kawai idan wani abu ya ɗora su. Wannan giɓin yana bayanin kaso mai yawa na gazawar ƙugiya da ake karantawa kuskure a matsayin matsalar izini.
Ka duba hanyar kafin izini, domin kuskuren izini a kan fayil marar kyau har yanzu shi ne fayil marar kyau.
Hanya ta dangi ana warware ta bisa tsari, ba bisa fayil ba
Lokacin da rubutu ya kira open("policy.json"), kernel yana warware sunan bisa babban fayil ɗin aiki na yanzu na tsarin. Babu wani abu daga wurin rubutun kansa da ke shiga wannan binciken. OpenVPN yana fara ƙugiyoyi daga babban fayil da ya zaɓa da kansa, kuma zaɓin cd na iya canza shi, don haka rubutun da aka gwada da hannu daga babban fayil ɗinsa yana yin daban da zarar daemon ya gudanar da shi. Gwajin hannu yana wucewa, gudanar da sabis yana kasawa, kuma layin log ɗin yana ambaton sunan da ya ɓace kawai.
Python yana bayyana wurin rubutun a matsayin __file__, kuma wannan ne ke sa ɗorawa ya yiwu. Path(__file__).resolve().parent / "policy.json" yana gina hanya daga fayil ɗin maimakon daga tsarin. Wannan layi ɗaya yana cire dogaro ga babban fayil ɗin aiki ba tare da canza kome a kan dama ba.
Ka ɗora hanyar da gangan, sannan ka duba abin da resolve ke yi
resolve() yana bin hanyoyin haɗi na alama, don haka shigarwa da ta haɗa ƙugiya a wurinta tana ɗorawa a kan manufar haɗin, ba a babban fayil ɗin da ke riƙe da haɗin ba. Wannan yawanci shine abin da kake so ga turawar da ke da siga, kuma ba daidai ba ne ga tsari da ke tsammanin bayanai kusa da haɗin alama. Ka yanke shawarar abin da turawar ke nufi, kuma ka rubuta lambar don dacewa maimakon gano bambancin a samarwa. Path(__file__).parent ba tare da resolve() yana kiyaye babban fayil ɗin haɗin kansa.
Idan bayanan na misali ne ba na shirin ba, ka ɗauki hanya cikakkiya daga saitin. Yin coding wuri da ƙarfi yana ɗaure ƙugiya ga tsarin mai masauki ɗaya.
Ka ratsa iyakoki huɗu a jere
Ka fara da babban fayil ɗin aiki: ka kwatanta WorkingDirectory, zaɓin cd na OpenVPN da duk wani nade da ke canza babban fayil kafin exec. Sannan ka tabbatar da wurin da aka warware, domin fayil mai kama da suna a wata turawa na iya amsa binciken kuma ya ɓoye kuskuren. Na gaba akwai ra'ayin tsarin fayil: chroot ko sararin suna na mount na sabis na iya sa hanyar mai masauki cikakkiya ta zama babu. Na ƙarshe shine asalin shiga, wanda tambaya ce daban daga ganuwa.
ProtectHome da PrivateTmp suna ɓoye wurare daban-daban, kuma babu ɗayansu da ke bayyana a lissafin babban fayil da aka ɗauka daga mai masauki. Hanyar da ta wanzu ga root a cikin harsashi na iya zama ganuwa a cikin sararin suna na naúrar, kuma shi ya sa gwada wannan umarni a wajen sabis yana tabbatar da kaɗan.
Ka gyara binciken ba tare da faɗaɗa sabis ba
Ɗorawa hanyar yana warware iyakar farko kawai. Ba ya fallasa babban fayil da sabis ke ɓoyewa, kuma ba ya ba da damar shiga fayil na root kawai ga asusu mara dama. Ɗaga script-security yana canza waɗanne rubutun OpenVPN zai gudanar; ba shi da wani tasiri a kan inda ake warware sunan dangi. Canza babban fayil ɗin aiki ga dukan sabis ya fi matsalar faɗi, domin kowace hanya ta dangi ta takardar shaida, log ko mataimaki tana ƙaura tare da ita.
Ka fifita gyaran kunkuntar: hanya tabbatacciya a cikin rubutun, ƙimar saiti bayyananna ga bayanan misali, da mallakar fayil da ta dace da asusun da ƙugiya ke gudana a ƙarƙashinsa.
Ka rubuta shaidar da ke ambaton iyakar
Rahoton gazawa mai amfani yana ɗauke da abubuwa uku: ainihin hanyar da ƙugiya ta gwada, yanayin da ya haifar da ita, da wace iyaka ta ƙi. Ka buga hanyar da aka warware da keɓancewar ba tare da zubar da abin da ke cikin fayil ɗin ba. Wannan ukun yana raba ɗorawa marar kyau daga mount ɓoye da kuma ƙin izini, waɗannan kuma gyare-gyare uku ne daban-daban.
Da'awar cewa root na iya karanta fayil ɗin daga tashar umarni tana amsa ɗaya daga cikin waɗannan tambayoyin kuma ba ɗaya daga cikin sauran ba. A maimakon haka ka gwada daga mahallin sabis ɗin kansa.