Iṣẹ́ náà kùnà, àwọn àkọsílẹ̀ mẹ́nu kan spawn àti àpò kan, èrò àkọ́kọ́ sì ni láti yẹ ìṣètò VPN wò. Kò sí nǹkan tí a ti kà nínú fáìlì yẹn. systemd kùnà nígbà tí ó ń múra ilana náà sílẹ̀, kí fáìlì ìṣe tó ṣiṣẹ́, nítorí náà kò sí parser, kò sí ìwé-ẹ̀rí àti kò sí olùgbàlejò tó jìnnà tí a gbà ní ìmọ̀ràn. Kíka kóòdù ipò gẹ́gẹ́ bí ọ̀rọ̀ nípa systemd kì í ṣe nípa OpenVPN ni ó sọ èyí di ìwádìí kúkúrú.

Ka kóòdù ipò kí o tó ka ohun-èlò náà

Kóòdù nọ́mbà tó wà lẹ́yìn orúkọ iṣẹ́ náà dárúkọ ìpele tó kùnà. Ìkùnà àpò ni a ń ròyìn gẹ́gẹ́ bí ipò CHDIR, nígbà tí fáìlì ìṣe tí kò lè ṣiṣẹ́ jẹ́ kóòdù mìíràn pátápátá. Àwọn méjèèjì dàbí ara wọn nínú ìlà àkópọ̀ kan, wọn kò sì ní ohunkóhun tó jọra nínú àwọn ohun tó fà á.

Ìyàtọ̀ yẹn ṣe pàtàkì nítorí pé àwọn àtúnṣe wà nínú àwọn fáìlì ọ̀tọ̀ọ̀tọ̀. Ìkùnà CHDIR kan ní í ṣe pẹ̀lú ọ̀nà kan àti bí iṣẹ́ náà ṣe rí i. Ìkùnà exec kan ní í ṣe pẹ̀lú bínárì náà, olùtumọ̀ rẹ̀ tàbí mount tí kò ní í ṣe pẹ̀lú rẹ̀. Yíyí remote VPN, àkójọ sifer tàbí ọ̀nà ìwé-ẹ̀rí kò lè yanjú èyíkéyìí nínú àwọn méjèèjì.

Jẹ́rìí sí i pé ìkùnà náà wà ní ìbẹ̀rẹ̀ kì í ṣe lẹ́yìn ìṣiṣẹ́ tó yọrísí. Bí iṣẹ́ náà bá ṣiṣẹ́ lánàá tí ó sì ń kùnà ní báyìí ní ìpele kan náà, nǹkan kan ti yí padà nípa àpò náà, àwọn ẹ̀tọ́ rẹ̀ tàbí unit náà fúnra rẹ̀, ìyípadà yẹn sì ni ẹ̀rí tí o yẹ kí o wá.

Bèèrè lọ́wọ́ unit ibi tí ó fẹ́ wà

Ka unit tó ń ṣiṣẹ́ gan-an dípò fáìlì tí o ro pé ó ti gbé jáde, nítorí pé àwọn drop-in lè borí àpò iṣẹ́ láìjẹ́ pé o ti ṣàtúnṣe unit pàtàkì rí. Ìjáde show dáhùn ìbéèrè náà ní tààràtà:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

Fún àpẹẹrẹ sáàbà upstream, àpò iṣẹ́ ni àpò ìṣètò sáàbà náà, orúkọ instance sì ń yan profaili tó wà nínú rẹ̀. Instance tí a ń pè ní branch nígbà náà ń retí fáìlì tirẹ̀ nínú àpò kan náà, profaili tí a gbé sí ibòmíràn kò sì ní ìtẹ́lọ́rùn ohunkóhun fún ohun tí àpò iṣẹ́ béèrè.

Fi ohun tí unit náà béèrè wé ohun tó wà. Ọ̀nà tí ó ti wà tẹ́lẹ̀, ìsopọ̀ àpẹẹrẹ tí ó ń tọ́ka sí ibòmíràn báyìí, tàbí orúkọ instance tí kò bá àpò mu mọ́, gbogbo wọ́n jẹ́ ìyípadà ojoojúmọ́ tí ó ń mú ìkùnà yìí wá gan-an.

Yẹ ọ̀nà náà wò bí iṣẹ́ náà ṣe rí i

Shell rẹ àti iṣẹ́ náà kò ní ojú-ìwòye kan náà lórí ètò fáìlì. Àpò gbòǹgbò tàbí àwòrán gbòǹgbò tí a ṣètò ń yí ohun tí ọ̀nà pípé túmọ̀ sí nínú unit náà padà, ọ̀nà tí ó sì hàn kedere lórí olùgbàlejò lè má wà nínú orúkọ-ààyè yẹn. Ka àwọn ètò unit náà kí o tó gbẹ́kẹ̀lé àdánwò afọwọ́ṣe.

Àwọn ẹ̀tọ́ ń mú ìṣòro náà pọ̀ sí i. Iṣẹ́ náà ń ṣiṣẹ́ gẹ́gẹ́ bí olùmúlò pàtó kan, olùmúlò yẹn sì gbọ́dọ̀ lè gba inú gbogbo àpò òbí kọjá láti dé ibi àfojúsùn, kì í ṣe kí ó kàn ka ibi àfojúsùn fúnra rẹ̀. Àpò tí root lè kà tí olùmúlò iṣẹ́ náà kò lè gbà kọjá ń mú ìkùnà tí ó dàbí ọ̀nà tó ti sọnù wá.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

Àwọn ètò ìgbónáni náà tún jẹ́ apá kan àwòrán yìí. Unit tí ó fi àwọn àpò ilé pamọ́ tàbí tí ó sọ apá kan ètò fáìlì di kíkà nìkan ń ṣe gan-an ohun tí a ṣètò rẹ̀ fún, àpò iṣẹ́ sì gbọ́dọ̀ gbé ibì kan tí sandbox ṣì ń fi hàn.

Tún olóhun ṣe, lẹ́yìn náà retí àṣìṣe mìíràn

Tún ìtòlẹ́sẹẹsẹ tàbí unit náà ṣe nípasẹ̀ ẹni tí ó ní ìṣètò yẹn. Gbígbé profaili sínú àpò tí a retí jẹ́ àtúnṣe tó tọ́ nígbà tí ìtòlẹ́sẹẹsẹ bá yí padà, ṣùgbọ́n kò ṣàlàyé àpò tí a kò lè wọ inú rẹ̀, nítorí náà má ṣe kà á sí ìdáhùn gbogboogbò.

Kọ̀ ojú-ọ̀nà kúkúrú láti gbòòrò ẹ̀tọ́ lórí igi ìṣètò tàbí yọ sandbox kúrò. Àwọn méjèèjì ń mú àmì àìsàn náà kúrò nígbà tí wọ́n ń yọ àwọn ààbò tí a gbé síbẹ̀ pẹ̀lú ìmọ̀ ọ̀nà kúrò, ìkùnà tó kàn sì ni yóò ṣòro láti túmọ̀.

Tún instance náà bẹ̀rẹ̀ kí o sì ka ìṣẹ̀lẹ̀ tó kàn dípò kí o rò pé ó ti yọrísí. Àṣìṣe tó kàn tí ó ṣeé ṣe ni pé OpenVPN kò lè ṣí fáìlì ìṣètò rẹ̀, èyí tí í ṣe ìtẹ̀síwájú: a ti wọ inú àpò iṣẹ́, parser sì ń ṣiṣẹ́ báyìí. Tẹ̀lé ìtòpinpin fáìlì gidi unit náà láti ibẹ̀ dípò kí o padà sí àtúnṣe ìṣòro nẹ́tíwọ́kì.

Ìtọ́kasi ìṣiṣẹ́ systemd ń ṣàlàyé bí a ṣe ń túmọ̀ àpò iṣẹ́ pẹ̀lú àwọn àpò gbòǹgbò àti sandbox. Àpẹẹrẹ tí o yẹ kí o rántí rọrùn: kóòdù ipò kọ̀ọ̀kan dárúkọ ìpele ọ̀tọ̀ọ̀tọ̀, àwọn àṣìṣe ohun-èlò náà fúnra rẹ̀ nìkan sì ń ṣàpèjúwe ohun-èlò náà.

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