Ṣé script ìkọ́ OpenVPN lè lo ojú-ọ̀nà tí ó ṣẹ̀ṣẹ̀ kọ́?
OpenVPN ń ṣe àwọn ìkọ́ nínú ìbẹ̀rẹ̀ tirẹ̀, nítorí náà script tí ó nílò ojú-ọ̀nà ń dúró de ojú-ọ̀nà tí ń dúró dè é. Ya iṣẹ́ náà sọ́tọ̀ kí o sì yan ìkọ́ nípa ìṣẹ̀lẹ̀.
Bóyá script ìkọ́ yóò dé ẹ̀gbẹ́ kejì ojú-ọ̀nà dá lórí àwọn ipò mẹ́ta: irú ìṣẹ̀lẹ̀ tí ó so mọ́, bóyá OpenVPN ṣì wà nínú ìtẹ̀lẹ́sẹ̀ ìbẹ̀rẹ̀ rẹ̀ nígbà tí script ń ṣiṣẹ́, àti bóyá a ti ya iṣẹ́ náà kúrò nínú ìtẹ̀lẹ́sẹ̀ yẹn. Ọ̀pọ̀ script ni ó kùnà ní ẹ̀kẹta. Fífi oorun kún un ń wo ìṣòro ìgbésí-ayé bí ìṣòro àkókò, ó sì ń ṣiṣẹ́ kìkì ìgbà tó pọ̀ tó láti ṣi ọ̀nà kù.
Kọ́kọ́ pinnu ìṣẹ̀lẹ̀ náà, lẹ́yìn náà ọ̀nà fífi iṣẹ́ falẹ̀, lẹ́yìn náà ibi tí iṣẹ́ tí a fi falẹ̀ yóò máa ṣiṣẹ́. Àwọn ìpinnu mẹ́ta yìí yàtọ̀ sí ara wọn, àti dída wọ́n pọ̀ ni bí ìkọ́ ìlà méjì ṣe di ọ̀sán kan.
Kí ni ìdí tí ìkọ́ fi ń dúró de ojú-ọ̀nà tí ń dúró dè é
OpenVPN ń pe àwọn ìkọ́ rẹ̀ ní ọ̀nà kan náà, nínú ilana kan náà tí ń gbé àwọn pákẹ́tì. up ń bẹ̀rẹ̀ nígbà tí ẹ̀rọ tun tàbí tap wà ṣùgbọ́n kí a tó fi ọ̀nà kankan kún un, route-up sì ń bẹ̀rẹ̀ lẹ́yìn àwọn ọ̀nà; kò sí ọ̀kan nínú àwọn àkókò yẹn tí ó ṣèlérí pé ẹ̀gbẹ́ kejì yóò dáhùn. Nígbà tí script ìkọ́ kan ṣì ń ṣiṣẹ́, daemon kì í gbé e jáde, nítorí náà àṣẹ tí ń retí pé ìrìnàjò yóò kọjá ojú-ọ̀nà ń dúró de ojú-ọ̀nà tí ń dúró de àṣẹ náà. Ìdúró yíyípo yìí ni ìdí tí ìṣiṣẹ́ ọwọ́ fi ń kọjá tí ìkọ́ sì ń parí àkókò.
Àtúnṣe tí ó hàn gbangba, ìyẹn oorun fún ìṣẹ́jú àáyá mélòó kan, máa ń ṣiṣẹ́ nígbà mìíràn nítorí pé ẹ̀gbẹ́ jìnnà ti gbé ara rẹ̀ ró, kì í ṣe nítorí pé oorun náà tún ohun kan ṣe. Olùrànlọ́wọ́ tí ń béèrè nípa ìmúrasílẹ̀ ni ìdáhùn mìíràn: ìkọ́ náà padà, gbígbé jáde bẹ̀rẹ̀, olùrànlọ́wọ́ sì ń rí ohun tí ó nílò nígbà tí ó wà níbẹ̀ gan-an.
Yan ìkọ́ nípa ìṣẹ̀lẹ̀, kì í ṣe nípa ìrọ̀rùn
So up mọ́ iṣẹ́ tí ó nílò ẹ̀rọ nìkan, route-up mọ́ iṣẹ́ tí ó nílò àwọn ọ̀nà, kí o sì fi client-connect àti client-disconnect pamọ́ fún àwọn iṣẹ́ oníbàárà kọ̀ọ̀kan ní ẹ̀gbẹ́ olùpín. Ìmọ́tótó nígbà ìjáde gbọdọ̀ farada ṣíṣe lẹ́ẹ̀mejì, nítorí ìsopọ̀ àtúnṣe nípasẹ̀ ààlà àìyípadà kò tẹ̀lé ìtẹ̀lẹ́sẹ̀ kan náà bí ìbẹ̀rẹ̀ padà kíkún. Lórí olùpín, client-connect ń bẹ̀rẹ̀ nígbà tí oníbàárà bá fìdí rẹ̀ múlẹ̀, kì í ṣe nígbà tí daemon bá bẹ̀rẹ̀, èyí tí ó tọ́ láti jẹ́rìí sí kí a tó gbé ìmọ̀-ọ̀rọ̀ lọ síbẹ̀. Bí iṣẹ́ náà bá jẹ́ ti ìgbésí-ayé iṣẹ́ náà, kì í ṣe ti ìsopọ̀ kan, ẹ̀ka systemd ni ilé tí ó sàn ju ìkọ́ kankan lọ.
Àwọn àṣẹ ìkọ́ ni daemon ń ṣe tààrà, láìsí shell ní àárín, nítorí náà ifconfig_remote nínú ìlà up ń wá gẹ́gẹ́ bí ọ̀rọ̀ gẹ́gẹ́. Fi àṣẹ náà pa mọ́ nínú shell tí ó hàn gbangba, tàbí kí o pa ìmọ̀-ọ̀rọ̀ mọ́ nínú script tí ń ka àyíká. ipchange jẹ́ ìtọ́nisọ́nà kan tí ń fi àwọn àríyànjiyàn tirẹ̀ kún un: ó ń fi àdírẹ́sì àti ebute fún àṣẹ náà, nítorí náà script tí a kọ fún ẹnikẹ́ni ń rí méjì tí a kò retí.
Àwọn ọ̀nà mẹ́ta láti ya iṣẹ́ náà sọ́tọ̀
Àkọ́kọ́ yíyàn ni láti fi olùrànlọ́wọ́ lọ sí ẹ̀yìn láti inú ìkọ́: bẹ̀rẹ̀ rẹ̀ pẹ̀lú setsid tàbí systemd-run --scope, pa àwọn àpèjúwe tí a jogún mọ́, kí o sì jáde pẹ̀lú odo lẹ́sẹ̀kẹsẹ̀. Èkejì ni kí ìkọ́ kọ fáìlì ipò kékeré kí aago systemd tàbí ẹ̀ka ọ̀nà sì ṣiṣẹ́ lórí rẹ̀, èyí tí ń pa ìkọ́ mọ́ ní rírọrùn tí ó sì ń fi ìlànà àtúnṣe pamọ́ níbi tí àwọn àkọsílẹ̀ wà. Ẹ̀kẹta ni láti fi ìkọ́ sílẹ̀ pátápátá kí a sì gbé iṣẹ́ náà lọ sí ẹ̀ka tí a tò lẹ́yìn iṣẹ́ VPN, èyí tí ó jẹ́ ìdáhùn tí ó tọ́ nígbà tí iṣẹ́ náà kì í jẹ́ ti ìsopọ̀ kọ̀ọ̀kan rárá. Àwọn mẹ́tẹ̀ẹ̀ta pín ìlànà kan: ìkọ́ gbọdọ̀ padà kí ó tó nílò ojú-ọ̀nà.
Ohunkóhun tí o bá yàn, sọ olùrànlọ́wọ́ di aláìṣe-àṣejáde àti aláfojúsùn. Àwọn ìpè méjì tí ń wọ́ ara wọn kò gbọdọ̀ ṣe iṣẹ́ àìyẹ̀yí kan náà lẹ́ẹ̀mejì, olùrànlọ́wọ́ tí ó kùnà sì gbọdọ̀ fi ohun kan sílẹ̀ tí ènìyàn lè kà.
Ya àwọn ìkùnà sandbox sọ́tọ̀ kúrò nínú àwọn ìkùnà ìgbésí-ayé
Nígbà tí script bá ń ṣiṣẹ́ láti ojú-ìbẹ̀rẹ̀ root tí ó sì kùnà gẹ́gẹ́ bí iṣẹ́, ìdí máa ń jẹ́ sandbox kì í ṣe nẹ́tíwọ́ọ̀kì. ProtectHome tí ń dẹ̀wọ̀n, ProtectSystem kà-nìkan, tàbí àkójọpọ̀ iṣẹ́ tí kò sí lè mú kí script tàbí dátà rẹ̀ di aláìlèdé, àti lórí ẹ̀rọ SELinux fáìlì tún nílò àyíká tí ń yọ̀nda ìṣiṣẹ́. Ka ẹ̀ka náà pẹ̀lú systemctl cat openvpn-server@server àti ìwé-ìròyìn pẹ̀lú journalctl -u openvpn-server@server -n 80, lẹ́yìn náà wá àṣìṣe àṣẹ tàbí àyíká dípò àkókò ìsopọ̀. Pípa sandbox kúrò gbọdọ̀ jẹ́ ìgbésẹ̀ ìkẹyìn, kì í ṣe àkọ́kọ́.
Ìkùnà ìgbésí-ayé ń hàn yàtọ̀: ìkọ́ ń bẹ̀rẹ̀, olùrànlọ́wọ́ ń ṣiṣẹ́, sọ́kẹ́tì kò sì tíì wà níbẹ̀. Kọ ìlà tí ó ní àmì àkókò láti inú ìkọ́ fúnra rẹ̀, jáde kí o sì tún sopọ̀, kí o sì ka àwọn ìṣẹ̀lẹ̀ lẹ́sẹ̀ẹ̀sẹ̀. Nígbà tí olùrànlọ́wọ́ bá nílò ojú-ọ̀nà gan-an, jẹ́ kí ó béèrè nípa ìmúrasílẹ̀ dípò sísùn fún àkókò tí ó dúró ṣinṣin.
Àwọn pápá mẹ́ta ń mú ìròyìn tí ó tẹ̀lé di wíkí: ìkọ́ wo ni ó ṣiṣẹ́, àkọọ́lẹ̀ wo ni ó lò, àti ibi tí ó dúró. Láìsí wọn, ìwádìí kọ̀ọ̀kan tí ó tẹ̀lé yóò bẹ̀rẹ̀ láti ìbẹ̀rẹ̀.