Skript ɗin OpenVPN auth-user-pass-verify: daidaita lambar fita
Matsayin fitar hook ɗin ita ce shawara, ba layin log ɗinsa ba. Ka daidaita sakamakon mai tabbatarwa zuwa 0, 1 ko jinkirta, ka karanta fayil ɗin shaidu a matsayin bayanai, kuma ka kasa a rufe.
OpenVPN yana aiki ne kan fitarwa ɗaya kacal daga skript ɗin shiga: matsayin fita. Duk abin da skript ɗin ya yi bayan haka ado ne kawai. Hook na iya isa ga mai tabbatarwa daidai, ya nazarci amsa, ya buga layi mai daɗi, amma ya mayar da matsayi wanda ke nufin kishiyar abin da marubucin ya yi niyya. Ka karanta yarjejeniyar da farko ka rubuta adaftan a kewaye da ita, sannan duk wannan nau’in kuskure zai ɓace.
Yarjejeniyar ƙarama ce: gano asusun da aka tura, tambayi mai tabbatarwa da aka amince da shi tambayar da aka yi niyya, kuma karɓi sakamakon tabbatacce da aka rubuta na wannan mai tabbatarwa kawai don wannan buƙata. Duk sauran kayan aiki ne.
Matsayi uku da hook ɗin zai iya mayarwa
Ga auth-user-pass-verify, littafin jagora na OpenVPN 2.6 ya bayyana lambar fita 0 a matsayin karɓa, 1 a matsayin ƙin amincewa, da 2 a matsayin tabbatarwa da aka jinkirta. Waɗannan ne kawai amsoshi uku da uwar garken ke fahimta, kuma kowanne yana da sakamako daban ga haɗin. Skript ɗin da ya fita da matsayin umarninsa na ƙarshe ya bar kiran log ko matakin tsaftacewa ya jefa ƙuri’a. Rubuta matsayin a fili a kowace reshe, har da reshen da bai taɓa isa ga mai tabbatarwa ba.
Nasarar HTTP da nasarar tabbatarwa daban-daban ne, kuma haɗa su shi ne hanyar da ta fi yawa da wannan hook ɗin ke yin kuskure. Amsa 202 tana nufin an karɓi buƙatar don aiki, ba cewa an tabbatar da kalmar sirri ba. Bayyana matsayin da ake tsammani, siffar amsa da hukuncin ƙarshe daga yarjejeniyar API da aka ba ka, kuma kada ka ƙirƙira sunan fili saboda yana da alama mai ma’ana.
Idan amsar da gaske ta zo daga baya, wannan ita ce hanyar jinkirta kuma dole a gina ta haka. Ƙoƙarin jinkiri da ba a taɓa kammalawa yana riƙe albarkatu har lokacin ƙarewa ya ƙare.
Karanta fayil ɗin shaidu daidai yadda aka rubuta shi
A cikin hanyar fayil ɗin da aka rubuta, uwar garken tana rubuta sunan mai amfani da kalmar sirri a matsayin layi biyu na farko na fayil na wucin gadi, tana ba da wannan hanyar ga skript ɗin, kuma tana cire fayil ɗin lokacin da skript ɗin ya dawo. Karanta waɗannan layi biyu a matsayin bayanai: kada ka taɓa yin source ga fayil ɗin, kada ka taɓa kimanta shi, kuma kada ka liƙa abin da ke ciki a cikin layin umarni inda teburin tafiyar aiki zai iya ganinsa. Ka adana kalmar sirri ta byte da byte, domin daidaita ta kamar yadda za ka daidaita sunan mai amfani yana canza shaidar a ɓoye. Wurin ajiya na wannan fayil ɗin wucin gadi shawara ce ta turawa, don haka tabbatar yana wanzu kuma ba kowa a kan mai masaukin zai iya karanta shi ba.
Ka ware shaidar mai tabbatarwa da kansa daga ta mai amfani: tana cikin haɗin ƙofar shiga, tana zaune a ajiyar sirri na dandamali, kuma tana buƙatar izinin tabbatarwa kawai, don haka ba hujja ba ce cewa wani mutum ya tabbatar. Kada ka bar hook ɗin ya zama na biyu mai tabbatar da kalmar sirri. Sake rubuta kwatancen hash da hannu ba ya zama amintacce ta hanyar inganta madauki, kuma mai tabbatarwa da ake kula da shi ya riga ya fahimci tsarin gishiri da tsada na ajiyar asusu.
Yanke shawara game da ma’anar amsar da ba za a iya rarrabawa ba
Lokutan ƙarewa, kurakuran jigilar kaya, amsoshi marasa tsari da backend da ba ya samuwa suna raba sifa ɗaya: babu ɗayansu da ya zama tabbataccen tabbatarwa. Hook ɗin ya kamata ya kasa a rufe ga kowannensu kuma ya rubuta dalilin da ma’aikaci zai iya aiki da shi. Wannan dalilin yana cikin log ɗin da aka kare, ba cikin saƙon da ake mayarwa ga mutumin da ke ƙoƙarin haɗawa ba.
Ka yi taka tsantsan daidai da haka ga hanyoyin da ba su taɓa isa ga mai tabbatarwa ba kwata-kwata. Ƙimar saitin da ta ɓace, sirri da ba a iya karantawa ko dogaro da ba a shigar da shi ya kamata su haifar da ƙin yarda da alama ta aiki daban maimakon karɓa bisa kuskure. Gwada waɗannan reshe ta hanyar cire dogaron a cikin dakin gwaji maimakon yin tunani a kai. Inda gazawar yin log zai iya canza matsayin fita, log ɗin ya zama ɓangare na shawarar kuma dole a mai da shi marar lahani.
Saitin uwar garken yana da muhimmanci a nan ma: ana girmama skript ɗin da mai amfani ya bayyana ne kawai lokacin da saitin da ke gudana ya yarda da su a matakin tsaro da ake buƙata, kuma wannan saitin zaɓi ne da gangan ba tsohuwar ƙima da za a ɗaga ba.
Tabbatar da hukunci, ba layin da aka buga ba
Gina gwaji da ke duba matsayin fita kai tsaye. Rubuta samfurin fayil ɗin shaidu, gudanar da hook ɗin a kansa da asusu sanannen mai kyau da sanannen mara kyau, kuma karanta matsayin da harsashi ya bayar maimakon rubutun da skript ɗin ya buga. Wannan gwajin ɗaya yana kama yawancin kuskuren yarjejeniya kafin abokin ciniki ya taɓa haɗawa.
Sa’an nan ka gudanar da waɗannan al’amuran ta hanyar abokin ciniki na gaske a kan mai saurara wanda ba na samarwa ba kuma ka tabbatar da abin da uwar garken ta rubuta: an karɓa, an ƙi, ko an jinkirta. Ka rufe asusun da aka kashe, kalmar sirri mara kyau, amsar mai tabbatarwa mara tsari, lokacin ƙarewa da mai tabbatarwa da ba a iya samu. Idan wani al’amari ya faɗa cikin yanayin da ba za ka iya ambatonsa ba, adaftan bai gama ba.
Ka riƙe taswirar sakamakon mai tabbatarwa zuwa matsayin fita kusa da skript ɗin a cikin ajiya, domin injiniya na gaba ya karanta yarjejeniyar ba tare da juya injiniyan lambar ba.