Báwo ni a ṣe lè díwọ̀n àkókò iṣẹ́ OpenVPN client pẹ̀lú àwọn ìkọ́ up àti down
OpenVPN kò ní olùka àkókò iṣẹ́. Fi epoch èdìdì pamọ́ láti ìkọ́ up, pa á rẹ́ ní down, yọ ọ́ kúrò, kí o sì jẹ́ olóòótọ́ láàrin àtúnbẹ̀rẹ̀ àti àwọn àpẹẹrẹ.
Pátákó ìṣàkóso ń béèrè fún nọ́mbà bí ìsopọ̀ ti wà lójú fún ìgbà tó pẹ́, àti OpenVPN kò fi í pèsè. Ẹrọ ìbánisọ̀rọ̀ mọ ìgbà tí ọ̀nà rẹ̀ gòkè, ṣùgbọ́n kìkì bí ẹnìkan bá kọ ọ́ sílẹ̀ kí ipò ìpàdé tó sọnù. Ibùdó tí a ti ṣe àtìlẹ́yìn ni ìkọ́ up, ìye tó yẹ kí a fi pamọ́ ni ìṣẹ́jú-àáyá epoch àìdá, kì í ṣe okùn tí a ti ṣe àtúntò. Ohun gbogbo tó tẹ̀lé ni ìṣirò, pẹ̀lú àwọn òfin ìtòlẹ́sẹẹsẹ mélòó kan tí wọ́n ń pinnu bóyá nọ́mbà náà yóò dúró lójú.
Ìjẹ́rìí pé àwọn ìkọ́ náà ń ṣiṣẹ́ gan-an
Fi hàn pé ìkọ́ náà ń gbóná kí o tó ṣe àpẹẹrẹ ohunkóhun yíká rẹ̀. Ìṣètò ẹrọ ìbánisọ̀rọ̀ tí ó kéré jù nílò script-security 2 pẹ̀lú àwọn ipa-ọ̀nà tí ó ṣe kedere up àti down; láìsí ìlà ààbò OpenVPN kọ̀ láti ṣiṣẹ́ script náà ó sì sọ ọ́ ní gbangba. Fi up-restart àti down-pre kún ní àkókò kan náà kí àwọn ipa-ọ̀nà àtúnbẹ̀rẹ̀ àti ìtúká lè hùwà ní ọ̀nà tí a lè sọ tẹ́lẹ̀.
Jẹ́ kí ẹ̀dà àkọ́kọ́ ti ìkọ́ náà fi àyíká rẹ̀ kún faili, kí ó má ṣe ohunkóhun mìíràn. Ìyẹn sọ fún ọ ní àwọn orúkọ àyípadà tí ìkọ́lẹ̀ rẹ ń gbé jáde gan-an, bíi dev àti script_type, dípò àwọn tí o rántí láti ẹ̀dà mìíràn. Ṣiṣẹ́ ìsopọ̀ kan àti ìpínyà kan, lẹ́yìn náà ka faili náà. Bí ohunkóhun kò bá farahàn, dúró níbí, nítorí àpẹẹrẹ èdìdì àkókò lórí ìkọ́ tí kò ṣiṣẹ́ rárá yóò dàbí ìkùnà àbójútó fún ọ̀pọ̀ ọ̀sẹ̀.
Yẹ̀wò irú olùmúlò tí ìkọ́ náà ń ṣiṣẹ́ gẹ́gẹ́. Pẹ̀lú user àti group tí a ṣètò, OpenVPN ń fi àwọn ẹ̀tọ́ sílẹ̀ kí ó tó ṣiṣẹ́ àwọn script, nítorí náà àpótí tí root lè kọ́ sínú lè jẹ́ títì fún ìkọ́ náà. Yan ipa-ọ̀nà náà láti ojú ìwòye iṣẹ́ náà, kì í ṣe ti shell rẹ.
Ṣàkọsílẹ̀ ìye epoch kan kí o sì pa á rẹ́ pẹ̀lú ìmọ̀
Ìkọ́ up nílò ìlà kan, date +%s > /run/openvpn-client.started, pẹ̀lú ipa-ọ̀nà tí a ṣàtúnṣe fún àpẹẹrẹ kọ̀ọ̀kan. Ìye epoch ń yẹra fún àwọn ìbéèrè èdè, agbègbè àkókò àti ọ̀nà ní ìgbà tó ń bọ̀, ó sì jẹ́ nọ́mbà kan náà tí aṣojú àbójútó lè fi wé aago tirẹ̀.
Pípa rẹ́ ṣe pàtàkì bí kíkọ. Ìkọ́ down yẹ kí ó sọ faili náà di òfìfo tàbí kí ó yọ ọ́ kúrò, àti down-pre ń jẹ́ kí ìyẹn ṣẹlẹ̀ kí ó tó dí interface, èyí tí ó yọ fèrèsé náà kúrò níbi tí faili ń ṣàpèjúwe ọ̀nà tí ó ti lọ. up-restart lẹ́yìn náà ń sọ èdìdì náà di tuntun ní àtúnbẹ̀rẹ̀ inú, dípò fí fi ìye àkọ́kọ́ sílẹ̀ ní ibùdó rẹ̀. Láìsí tọkọtaya yẹn àtúnbẹ̀rẹ̀ lẹ́yìn àkókò ping tí ó ti parí ń mú nọ́mbà jáde tí ó ń gòkè lọ nígbà tí a ń tún ọ̀nà náà kọ́.
Yan ibi tí ó ní ìwàláàyè tó yẹ. Faili lábẹ́ /run ń pòórá nígbà àtúnbẹ̀rẹ̀, èyí tí ó bá òtítọ́ mu, nígbà tí faili lábẹ́ /tmp lè di mímọ́ ní ọ̀nà àìròtẹ́lẹ̀ àti èyí tí ó wà nínú àpótí ìṣètò ń wà ní ọ̀nà tí ń tannijẹ. Ṣètò àwọn ẹ̀tọ́ kí olùmúlò iṣẹ́ àti olùkàwé àbójútó nìkan lè kà á.
Ṣírò àkókò iṣẹ́ láìní ìgbẹ́kẹ̀lé lórí àwọn ìlà ìwé-ìṣẹ́
Ka ìṣẹ́jú-àáyá tí a fi pamọ́, ka ìṣẹ́jú-àáyá ìsinsìnyí, yọ ọ́ kúrò. Nígbà tí faili kò sí tàbí tí ó ṣófo, ìdáhùn olóòótọ́ ni pé kò sí ọ̀nà tí ń ṣiṣẹ́, kì í ṣe pé àkókò iṣẹ́ jẹ́ òdo, nítorí àwọn ipò méjì yẹn gbọdọ̀ gbé ìkìlọ̀ ọ̀tọ̀ọ̀tọ̀. Fi àwọn ìṣẹ́jú-àáyá àìdá pamọ́ nínú ẹrù àbójútó kí o sì ṣe àtúntò àwọn ọjọ́ àti wákàtí ní ìpele ìfihàn. Olùṣe àtúntò tí ń yípo nínú olùgbé jáde ń sọnù àìṣedéédéé tí ẹnìkan yóò fẹ́ ní àkókò ìṣẹ̀lẹ̀.
Ṣíṣàyẹ̀wò àwọn èdìdì àkókò ìwé-ìṣẹ́ jẹ́ ọ̀nà kúkúrú tí ń fani mọ́ra, ó sì kùnà ní ọ̀nà mẹ́ta: àtúntò ń tẹ̀lé àwọn àṣàyàn tí a bá ṣètò, yíyí ń yọ ìtàn kúrò, àti àwọn àtúnsopọ̀ ń farahàn gẹ́gẹ́ bí ìpàdé ọ̀tọ̀ọ̀tọ̀ dípò ọ̀nà kan tí ń tẹ̀síwájú. Ìkọ́ náà ń ṣàkọsílẹ̀ ìṣẹ̀lẹ̀ náà lẹ́ẹ̀kan, ní àkókò tí ó ṣẹlẹ̀.
Nígbà tí àyẹ̀wò náà ń ṣiṣẹ́ lórí ẹrọ mìíràn, fi èdìdì àkókò ránṣẹ́ dípò ìgbà tí ó gbà, kí olùkàwé lè lo aago tirẹ̀. Nígbà náà àbájáde òdì tí ó kéré ni a ka gẹ́gẹ́ bí ìyàtọ̀ aago dípò ìkọ́ tí ó ti bàjẹ́.
Bo àwọn àtúnsopọ̀, àtúnbẹ̀rẹ̀ àti ọ̀pọ̀lọpọ̀ àpẹẹrẹ
Ọ̀nà méjì lórí ẹrọ kan nílò faili méjì, pẹ̀lú kọ́kọ́rọ́ lórí orúkọ àpẹẹrẹ tí iṣẹ́ náà ti ń lò. Ipa-ọ̀nà tí a pín ń túmọ̀ sí pé ìsopọ̀ tuntun jùlọ ń kọ àkókò ìbẹ̀rẹ̀ gbogbo àkọsílẹ̀, àmì náà sì ni nọ́mbà tí ń fò sẹ́yìn nígbà tí ọ̀nà kejì bá bẹ̀rẹ̀.
Ìhùwà àtúnsopọ̀ yẹ fún àyẹ̀wò tirẹ̀, nítorí níbẹ̀ ni àpẹẹrẹ tí ó dàbí ojúlówó ń sọ ohun tí kò tọ́ ní ìdákẹ́jẹ́. Fi ipá mú àtúnbẹ̀rẹ̀ nípa jíjù ẹlẹgbẹ́ sílẹ̀ tàbí fífi àmì ránṣẹ́ sí ìlànà, lẹ́yìn náà fi ipò interface wé faili náà. Èdìdì àkókò yẹ kí ó tẹ̀síwájú ní àkókò tí ọ̀nà náà bá padà.
Ní ẹ̀gbẹ́ server, faili ipò ń gbé ìye connected-since fún olùmúlò kọ̀ọ̀kan, èyí tí ó ń dáhùn ìbéèrè mìíràn: ìgbà tí server rí ẹlẹgbẹ́ yẹn kẹ́yìn. Lò ó fún àyẹ̀wò àgbélébù dípò àrọ́wọ́tó, nítorí ó ń pòórá pẹ̀lú ìpàdé tí ó ń ṣàpèjúwe. Kò sí ìdíwọ̀n kan nínú àwọn méjèèjì tí ń sọ ohunkóhun nípa ìlera ohun èlò tí ó wà lẹ́yìn ọ̀nà náà.
Ṣiṣẹ́ àwọn àyẹ̀wò mẹ́ta tí ń mú àwọn àṣìṣe ìtòlẹ́sẹẹsẹ
Dán ìsopọ̀ deede, àtúnsopọ̀ tí a fipá mú àti ìdúró mímọ́ wò, kí o ka àkójọ interface àti faili papọ̀ lẹ́yìn ọ̀kọ̀ọ̀kan. Èdìdì tí ó ṣì wà lẹ́yìn ìdúró mímọ́, tàbí faili tí ó sọ pé ọ̀nà wà tí kò sí nínú àkójọ interface, ń tọ́ka tààrà sí ìtòlẹ́sẹẹsẹ àwọn ìkọ́. Ṣiṣẹ́ àwọn àyẹ̀wò náà gẹ́gẹ́ bí olùmúlò iṣẹ́ àti pẹ̀lú àwọn ipa-ọ̀nà iṣẹ́, nítorí shell root lè rí faili mìíràn kí ó sì fún ìdáhùn tí kò tọ́ pẹ̀lú ìgbọ́kànlé. Lẹ́yìn náà fi olùwádìí tí ó lọ́ra láti ka faili náà kí o sì jẹ́rìí pé kò kọ sínú rẹ̀ rárá.
Ìwádìí ní gbogbo ọgọ́ta ìṣẹ́jú-àáyá ń bo ìkìlọ̀, kò sì sí ìkọ́ kankan tí ó yẹ kí ó gbẹ́kẹ̀lé pé olùwádìí yẹn wà láàyè. Ya àwọn ojúṣe méjì yẹn sọ́tọ̀, nọ́mbà náà yóò sì dúró gẹ́gẹ́ bí ohun tí a lè gbẹ́kẹ̀lé nígbà tí a bá tún ẹ̀gbẹ́kankan gbé kalẹ̀.