Ìkìlọ̀ nípa àwọn script púpọ̀ dà bí ẹjọ́ nípa ìtòlẹ́sẹẹsẹ, nítorí náà ojútùú tí ó hàn gbangba ni láti tún àwọn ìlà náà ṣètò títí tí yóò fi parẹ́. Ṣùgbọ́n kì í ṣe ẹjọ́ ìtòlẹ́sẹẹsẹ. Ìtumọ̀ --up tí ó wá lẹ́yìn máa ń rọ́pò àṣẹ tí wọ́n ti tọ́jú fún ìpele yẹn, àti pé alàyẹ̀wò máa ń sọ bẹ́ẹ̀, èyí tí ó túmọ̀ sí pé nínú àwọn script méjì rẹ, ọ̀kan péré ni ó ti ṣiṣẹ́ rí. Èkejì kò dúró ní ìlà lẹ́yìn rẹ̀; ó ti lọ.

Ìdí ni pé ìkìlọ̀ náà yẹ fún àfiyèsí bí ó tilẹ̀ jẹ́ pé kò pániláyà: ohun tí ó ń sọ tẹ́lẹ̀ ni ìmúdójúìwọ̀n DNS tàbí ìyípadà ipa ọ̀nà tí ó ti dákẹ́ jẹ́ẹ́.

Ìkìlọ̀ náà kì í ṣe nípa ìtò

OpenVPN ń pa àṣẹ script olùlò kan ṣoṣo mọ́ fún ìpele up. Nígbà tí alàyẹ̀wò bá pàdé ìtumọ̀ mìíràn, láti inú profáìlì, fáìlì tí wọ́n kó mọ́ tàbí ìlà àṣẹ, ó máa ń rọ́pò ohun tí ó ti ń pa mọ́, ó sì gbé ìkìlọ̀ jáde. Kò sí ohun tí wọ́n so pọ̀, kò sí ohun tí ó ṣiṣẹ́ lẹ́ẹ̀méjì, kò sì sí ìbéèrè nípa ìtò. Àṣẹ tí ó kù ni èyí tí alàyẹ̀wò rí gbẹ̀yìn, nítorí náà gbígbé ìlà kan lè yí ẹni tí ó borí padà nígbà tí script kejì ṣì wà ní òkú.

Àwòkọ́ṣe kan náà wà fún àwọn ìpele script mìíràn: àṣẹ kan fún ọ̀kọ̀ọ̀kan. Bí iṣẹ́ méjì bá ní láti ṣẹlẹ̀ méjèèjì, wọ́n nílò ibi àbáwọlé kan ṣoṣo, kì í ṣe àwọn ìtọ́sọ́nà méjì tí ó dà bí àkọsílẹ̀.

Wá àwọn ìtumọ̀ méjèèjì nínú ìfilọ́lẹ̀ gidi

Bẹ̀rẹ̀ pẹ̀lú ohun tí daemon gbà gan-an, kì í ṣe profáìlì tí o ṣàtúnṣe. ps -ef àti ExecStart ẹ̀ka náà ń fi ìlà àṣẹ hàn, èyí tí ó lè fi --up kún láti ibi àbáwọlé kọ́ńtẹ́nà tàbí láti inú ìbòmu. systemctl cat openvpn-server@server ń fi ohun tí iṣẹ́ náà fúnra rẹ̀ ń kún hàn, àti grep àtúnṣe lórí àkójọpọ̀ ìṣètò ń wá àwọn ìtumọ̀ ní ìpele fáìlì. Àwọn ẹ̀dà máa ń wá láti oríṣiríṣi ìpele, ìdí ni pé ṣíṣàtúnṣe fáìlì kan kò yí ohunkóhun padà.

Dídà script sí àkójọpọ̀ mìíràn tàbí yíyí orúkọ rẹ̀ kò yọ ìtọ́sọ́nà kúrò. Alàyẹ̀wò ń ka àwọn ìtumọ̀, kì í ṣe àwọn fáìlì.

Jẹ́ kí hook kan ṣoṣo ni iṣẹ́ náà

Ojútùú tí ó dúró pẹ́ ni olùtọ́jú kan ṣoṣo tí ó ń ṣe àwọn ìgbésẹ̀ méjèèjì ní ìtò tí a mọ̀ọ́mọ̀ yàn. Script shell kúkúrú pẹ̀lú set -eu tí ó pe ìsopọ̀ tí ó yẹ kí ó wà, lẹ́yìn náà ìgbésẹ̀ àdúgbò, tí ó sì ń gbé "$@" kọjá kí àwọn ààlà àwọn àríyànjiyàn lè wà, ń pa ìhùwàsí mọ́ sí ibi kan tí a lè ṣàyẹ̀wò. Gbígbé àwọn àríyànjiyàn kọjá kì í ṣe ààbò wọn nìkan; kò fi hàn pé àwọn olùrànlọ́wọ́ méjèèjì ń retí interface kan náà, nítorí náà ka àdéhùn ọ̀kọ̀ọ̀kan. Pinnu ohun tí ìkùnà yẹ kí ó ṣe àti bóyá àwọn ìyípadà apá kan gbọdọ̀ yí padà.

Bí olùfilọ́lẹ̀ bá pèsè hook ìmúgbòòrò tí wọ́n ṣe àtìlẹ́yìn fún, fẹ́ràn rẹ̀ ju ìsopọ̀ tí a fi ọwọ́ ṣe. Àwòrán kọ́ńtẹ́nà tàbí àkópọ̀ olùpèsè máa ń ní ibi tí a kọ sílẹ̀ fún iṣẹ́ àfikún, àti lílo rẹ̀ máa ń dá àbáwọlé mọ́ra láti yí olùtọ́jú rẹ padà.

Ìsọ́di ìtọ́jú ni ti ìpele down tí ó bá a mu. Ìgbésẹ̀ up tí ó tún DNS kọ tàbí tí ó fi ipa ọ̀nà kún nílò ìdápadà tí a kọ sílẹ̀, àti olùtọ́jú tí ó ń tọ́jú ìbẹ̀rẹ̀ nìkan jẹ́ ìlàjì àwòrán.

Ìdákẹ́jẹ́ẹ́ kì í ṣe ohun kan ṣoṣo, ẹ jẹ́ kí ìsopọ̀ wà

Yíyọ ìkìlọ̀ ẹ̀dà kúrò ni apá tí ó rọrùn; ìsopọ̀ ṣì gbọdọ̀ ṣiṣẹ́. Ṣàyẹ̀wò ipò olùyẹn lẹ́yìn ìsopọ̀ pẹ̀lú resolvectl status tàbí nípa kíkà /etc/resolv.conf, kí o sì jẹ́rìí àwọn ipa ọ̀nà pẹ̀lú ip route. Lẹ́yìn náà já ìsopọ̀ kí o tún sopọ̀, nítorí hook tí a fi ìkánjú so máa ń fi nǹkan kan sílẹ̀ láti ìpàdé tí ó kọjá. journalctl -u openvpn-server@server -b ń fi hàn bóyá olùtọ́jú rẹ ṣiṣẹ́ àti ohun tí ó tẹ̀ jáde.

Pa àwọn ẹ̀tọ́ hook mọ́ ní ibi tí ó yẹ. Gbígbé script-security sókè tàbí ṣíṣe daemon pẹ̀lú ẹ̀tọ́ púpọ̀ kì í ṣe àtúnṣe fún hook tí a rọ́pò; ó ń gbòòrò ohun tí gbogbo script ọjọ́ iwájú lè ṣe, pẹ̀lú èyí tí ológun yóò dárúkọ.

Àmì pé àtúnṣe náà jẹ́ gidi kì í ṣe ìdákẹ́jẹ́ẹ́ nínú àkọsílẹ̀. Ìdáhùn DNS, àkọsílẹ̀ ipa ọ̀nà àti ìsọ́di ìtọ́jú ni, tí gbogbo wọn ń ṣiṣẹ́ dáadáa lẹ́yìn ìsopọ̀ méjì.

Àwọn àpilẹ̀kọ tó jọra