Wani tsari $_ENV mara komai a cikin rubutun bakon yana kama da hujja cewa OpenVPN bai wuce kome ba. Yawanci hujja ce ta wani abu daban: an saita PHP don kada ya cika wannan babban ma'auni, kuma ƙimomin suna nan a cikin muhallin tsari duk tsawon lokaci. Ƙarshen ƙarya na biyu ya fi sutura, domin ma'aunin adireshi biyu a cikin bakon haɗi suna nufin abubuwa daban kuma ana amfani da su a musanya. Duk kuskuren biyu suna cin rana ɗaya idan ka fara daga wanda bai dace ba.

Adireshi biyu, da'awa biyu daban

Babban ƙarshen waje shi ne abin da uwar garke ta gani lokacin da abokin ciniki ya haɗa, ana samunsa a matsayin trusted_ip don IPv4 da trusted_ip6 don IPv6. Adireshin kama-da-wane shi ne abin da tafkin ya ware wa wannan zama, ana samunsa a matsayin ifconfig_pool_remote_ip.

Suna amsa tambayoyi daban, kuma rikodin yawanci yana buƙatar ɗaya daga cikinsu maimakon duka biyu. Na farko shi ne inda haɗin ya fito, wanda zai iya zama adireshin NAT da ake rabawa wanda ɗaruruwan mutane ke amfani da shi. Na biyu shi ne inda wannan zama yake a cikin ramin, kuma ana iya sake ware shi ga wani zama daga baya. Haɗa su biyu yana samar da rikodi da suke kama da gaskiya amma ba daidai ba.

Karamin karatu yana kama da haka.

$outer4 = getenv('trusted_ip');
$outer6 = getenv('trusted_ip6');
$inner  = getenv('ifconfig_pool_remote_ip');
$outer  = $outer4 !== false ? $outer4 : $outer6;

Babu ɗaya daga cikin ƙimomin da ke gane mutum. Ɗaya lura ce ta hanyar sadarwa, ɗayan haya ne, kuma rikodin da ya ɗauki ɗayansu a matsayin na'urar ganowa mai tsayawa zai zama ba daidai ba a karon farko da abokin ciniki ya sake haɗawa daga wata hanyar sadarwa ko ya sami wani adireshin tafki. Zaɓi filin bisa tambayar da rikodin ya kamata ya amsa, sannan rubuta wannan tambayar a gefen ginshiƙi.

Duba yadda aka ƙaddamar da PHP, ba shell ɗinka ba

Bakon yana aiki a matsayin ɗa ga daemon ɗin VPN tare da muhallin da daemon ɗin ke ginawa. Shell ɗinka na mu'amala yana da wani daban, kuma gudanar da rubutun da hannu yana gwada muhallin shell ɗin maimakon na bakon.

Fara da tabbatar da cewa bakon ya tashi da gaske a matakin da kake tsammani. Rubutun da aka haɗa da kuskuren mataki, ko wanda bai taɓa gudana ba domin umarnin yana nuni ga wata hanya, yana ba da alama ɗaya da ma'aunin da ya ɓace. Ƙara layin alama da gangan a saman rubutun kuma tabbatar yana bayyana kafin ka duba wani abu. Layi ɗaya mai alamar lokaci a cikin log ɗin yana raba tsakanin bai taɓa gudana ba da ya gudana ba tare da ƙimar ba.

Sannan tabbatar da wane mai fassara da wace fayil ɗin tsari wannan kira yake amfani da su. Gyara tsarin PHP don uwar garken yanar gizo ba ya canza komai ga tsarin CLI da OpenVPN ya ƙaddamar, kuma duka biyu na iya loda fayilolin php.ini da suka bambanta gaba ɗaya.

Me ya sa $_ENV mara komai ba ya tabbatar da kome

Bayanin getenv na PHP yana bayyana karanta muhallin tsari kai tsaye, wanda ke mayar da false lokacin da sunan ba ya nan. Babban ma'aunin $_ENV ana cika shi daban, kuma umarnin variables_order shi ne ke yanke shawarar wane manyan ma'auni za a cika.

Idan wannan umarnin ya tsallake E, $_ENV zai kasance mara komai komai abin da muhallin ya ƙunsa. Lambar da ke yi masa index ɗin tana ba da rahoton ma'aunin da ya ɓace wanda a gaskiya yana nan, kuma binciken zai nufi OpenVPN alhali amsar tana cikin php.ini. Duba umarnin musamman don tsarin CLI, ba don uwar garken yanar gizo ba.

Karanta da getenv yana guje wa dukan wannan rukunin ruɗani, kuma rubutun nade da ke share muhalli kafin ya kira mai fassara yana dawo da shi a wata siffa.

Ajiye dangantaka, ba sabunta layi ba

Yanke shawara wace ƙima rikodin yake buƙata kafin ka rubuta shi. Idan manufar ita ce a lura inda zama ya fito, ajiye babban ƙarshen waje kuma yi masa lakabi a matsayin lura. Idan manufar ita ce a haɗa zama da adireshin rami tsawon haɗi, ajiye adireshin tafki kuma haɗa shi da zama.

Sabunta bisa ga shaidar da aka tabbatar da kuma zama na yanzu maimakon bisa ga kowane layin da ke raba adireshin rami, domin ana sake amfani da adireshin tafki kuma wani abin da ya faru na cirewa a makare zai iya shafe bayanan sabon haɗi. Yi maganin IPv6 a bayyane maimakon rubuta ƙimar IPv4 kawai a shiru. Layi mai NULL adireshin waje ya fi layi mai kuskure, domin na farko a bayyane yake bai cika ba.

Haɗa rubutun da alamar zama da OpenVPN ke bayarwa domin sake haɗawa ya samar da sabon rikodi maimakon gyara tsohon. Yi amfani da maganganun da aka tsara da kuma asusu mai izini kawai da aikin ke buƙata. Bakon yana aiki da ikon daemon, don haka tambaya marar kulawa babbar matsala ce fiye da kuskuren layin log.

Yi bincike ba tare da zubar da muhalli ba

Yi log ɗin waɗanne sunaye suke nan, wane mataki ya gudana da wane mai fassara aka yi amfani da shi. Kada ka buga dukan muhallin, domin tsarin bakon na iya gado ƙimomin da ba su da alaƙa waɗanda bai kamata su kasance cikin fayil ɗin log ba.

Tabbatar da haɗi ɗaya daga farko zuwa ƙarshe: karanta babban ƙarshen waje, karanta adireshin da aka ware, kuma tabbatar da duka biyu a kan ra'ayin uwar garke da kanta game da wannan zama. Da zarar an tabbatar da ma'auratan ga abokin ciniki ɗaya, ana iya amincewa da dangantakar a wani wuri.

Labarai masu alaƙa