could not read Auth username from stdin ó dàbí ìṣòro ìjẹ́rìí ṣùgbọ́n kì í ṣe bẹ́ẹ̀. OpenVPN gbìyànjú láti béèrè orúkọ olùmúlò lórí stdin, kò rí ohunkóhun tí ó ṣeé kà, ó sì dúró kí ó tó bá olùpín sọ̀rọ̀ rárá. Àkáwò náà lè wà ní àṣepé; kò sí ẹnìkan tí ìlànà náà lè béèrè lọ́wọ́.

Nítorí náà ìgbésẹ̀ àkọ́kọ́ tí ó wúlò ni láti jẹ́rìí ohun tí ẹrọ-ìbánisọ̀rọ̀ ń kà, kì í ṣe gbígbìyànjú ìsopọ̀ mọ́ ẹ̀ lẹ́ẹ̀kan sí i tàbí yíyí àwọn ètò ẹ̀gbẹ́ olùpín. Ṣe àwọn àyẹ̀wò tí ó wà nísàlẹ̀ ní ìtẹ̀lẹ́sẹ̀, kí o sì dúró ní èyí tí ó kùnà ní àkọ́kọ́.

Ka àṣìṣe náà bí ìkùnà ìwọlé àdúgbò

Nígbà tí auth-user-pass bá farahàn láìsí àríyànjiyàn fáìlì, ẹrọ-ìbánisọ̀rọ̀ retí láti béèrè. Nínú shell ìbáraẹnisọ̀rọ̀, ìbéèrè yẹn ń ṣiṣẹ́ nítorí ìlànà náà ni ó ni tẹ́mínààlì. Lábẹ́ systemd, iṣẹ́ cron tàbí kọ́ńtéínà, stdin sábà máa ń ṣófo, kíka náà sì ń padà kíákíá pẹ̀lú àṣìṣe tí o ń rí.

Ìfiránṣẹ́ náà tún dárúkọ pápá tí ó kùnà, orúkọ olùmúlò tàbí ọ̀rọ̀-ìkọ̀kọ̀, èyí tí ó fi hàn bí kíkà náà ti lọ jìnnà tó. Àìsí orúkọ olùmúlò túmọ̀ sí pé ìlànà náà kò lè ka ohunkóhun rárá. Àìsí ọ̀rọ̀-ìkọ̀kọ̀ lẹ́yìn orúkọ olùmúlò tí ó ṣàṣeyọrí túmọ̀ sí pé ṣíṣàn ìwọlé parí láàrín kíkà méjèèjì, èyí tí ó wọ́pọ̀ fún fáìlì tí a kọ ní ìdajì tàbí páìpù tí a ti pa.

Jẹ́rìí ojú-ìwòye ẹrọ-ìbánisọ̀rọ̀ fúnra rẹ̀ kí o tó yí ohunkóhun mìíràn. Ṣiṣẹ́ rẹ̀ ní iwájú pẹ̀lú ìṣètò kannáà àti olùmúlò kannáà, kí o sì wò bóyá ìbéèrè náà farahàn. Bí ó bá farahàn nínú shell rẹ ṣùgbọ́n kì í ṣe lábẹ́ olùṣàkóso iṣẹ́, ìyàtọ̀ náà wà nínú orísun ìwọlé, kì í ṣe nínú ẹ̀rí-ìdánilójú. Ìfiwéra kíákíá fáìlì unit àti àyíká shell rẹ sábà máa ń fi hàn èyí tí ó ń pèsè tẹ́mínààlì.

Fún iṣẹ́ náà ní orísun ẹ̀rí-ìdánilójú tí a ṣe àtìlẹ́yìn fún

Orísun tí a ṣe àtìlẹ́yìn fún iṣẹ́ láìsí àbójútó ni fáìlì ẹ̀rí-ìdánilójú tí a fi gẹ́gẹ́ bí àríyànjiyàn fún auth-user-pass. A ka fáìlì náà gẹ́gẹ́ bí àkọsílẹ̀ tààrà: ìlà àkọ́kọ́ ni orúkọ olùmúlò, ìlà kejì ni ọ̀rọ̀-ìkọ̀kọ̀. Tọ́ka sí i pẹ̀lú ọ̀nà pípé bí /etc/openvpn/client/creds , kí àkójọ iṣẹ́ àkáwò iṣẹ́ náà má lè yí ìtumọ̀ ìtọ́nisọ́nà náà padà.

Àwọn ẹ̀tọ́ ṣe pàtàkì bí ọ̀nà náà. Fáìlì náà gbọ́dọ̀ jẹ́ èyí tí àkáwò tí ó ń ṣiṣẹ́ ẹrọ-ìbánisọ̀rọ̀ lè kà, kì í ṣe ti gbogbo ènìyàn mìíràn, ó sì yẹ kí ó jẹ́ ohun-ìní àkáwò iṣẹ́ tàbí root pẹ̀lú ẹgbẹ́ tí ó ní iṣẹ́ náà nínú. Ṣàyẹ̀wò ìkàwé gẹ́gẹ́ bí àkáwò yẹn, láìtẹ̀ àkóónú náà.

Ọ̀nà ìbátan ni ọ̀nà ìkùnà ṣíṣe ní ìdákẹ́jẹ́. Profáìlì lè wà nínú àkójọ kan nígbà tí systemd ń bẹ̀rẹ̀ ìlànà náà ní ibòmíì, nítorí náà fáìlì tí ó yanjú nínú shell rẹ kì í yanjú fún iṣẹ́ náà. Gbé ẹ̀rí-ìdánilójú lọ sí ibi tí ó dúró, kí o sì tọ́ka sí wọn ní pípé. Lẹ́yìn náà bẹ̀rẹ̀ iṣẹ́ náà lẹ́ẹ̀kan kí o sì jẹ́rìí pé ọ̀nà kannáà ni a ń lò, dípò gbígbẹ́kẹ̀lé ojú-ìwòye olóòtú profáìlì.

Bí ìmúṣẹ náà bá nílò kóòdù ìgbà kan tàbí ìpèníjà ìbáraẹnisọ̀rọ̀ mìíràn, pinnu bóyá ṣíṣàn iṣẹ́ ẹrọ-ìbánisọ̀rọ̀ náà ń ṣe àtìlẹ́yìn rẹ̀ láìsí àbójútó ní tòótọ́. Fáìlì pẹ̀lú ọ̀rọ̀-ìkọ̀kọ̀ ìdúró kò lè dá kóòdù tí ó ń yí padà lóhùn, àti gbígbìyànjú ìbéèrè tí a kò lè dá lóhùn lẹ́ẹ̀kan sí i kò ń fi àlàyé kún.

Ìdí tí script-security kò fi ní rànwọ́

script-security ń ṣàkóso bóyá ẹrọ-ìbánisọ̀rọ̀ lè ṣiṣẹ́ àwọn skripti àti iye tí ó lè fi fún wọn, pẹ̀lú bóyá a lè fi ọ̀rọ̀-ìkọ̀kọ̀ fún skripti nípasẹ̀ àyípadà àyíká. Kò sọ ohunkóhun nípa ibi tí orúkọ olùmúlò àti ọ̀rọ̀-ìkọ̀kọ̀ ti wá ní àkọ́kọ́.

Gbígbé e sókè sí ipò gíga jẹ́ ìfaradà tí ó wọ́pọ̀ nítorí ìfiránṣẹ́ náà mẹ́nu kan Auth, ṣùgbọ́n ó ń yí àwọn ẹ̀tọ́ skripti padà dípò orísun ìwọlé, ó sì ń gbòòrò ohun tí ẹrọ-ìbánisọ̀rọ̀ lè ṣe. Bí skripti olùrànlọ́wọ́ bá jẹ́ apá kan ṣíṣe àpẹẹrẹ náà, kọ́kọ́ tún orísun ìwọlé ṣe kí o sì pa ìpele ààbò mọ́ ní iye tí ó kéré jùlọ tí ìmúṣẹ náà nílò.

Ìfarakanra ìṣàkóso jẹ́ àyọrísí mìíràn tí ó bófin mu. Frontend lè so mọ́ ọn, gba ìbéèrè ẹ̀rí-ìdánilójú kí ó sì dáhùn pẹ̀lú orúkọ olùmúlò àti ọ̀rọ̀-ìkọ̀kọ̀, bẹ́ẹ̀ ni àwọn GUI kan ń ṣiṣẹ́. Bí o bá lò ó, so mọ́ àdírẹ́sì àdúgbò, dáàbò bò ó pẹ̀lú fáìlì ọ̀rọ̀-ìkọ̀kọ̀ ìṣàkóso kí o sì fi ààlà sí ẹni tí ó lè sopọ̀, nítorí ó jẹ́ ọ̀nà ìṣàkóso fún ẹrọ-ìbánisọ̀rọ̀.

Jẹ́rìí ìpele tí ó tẹ̀le lẹ́yìn tí ẹrọ-ìbánisọ̀rọ̀ bá ka fáìlì náà

Ní kété tí ẹrọ-ìbánisọ̀rọ̀ bá lè ka ẹ̀rí-ìdánilójú, ìkùnà tí ó tẹ̀le ni pàṣípààrọ̀ gidi pẹ̀lú olùpín, ìtumọ̀ ìfiránṣẹ́ rẹ̀ sì yàtọ̀. Ìkùnà ìjẹ́rìí ní ìpele yẹn túmọ̀ sí pé olùpín kọ àkáwò náà, ìdáhùn ìpèníjà túmọ̀ sí pé olùpín fẹ́ kókó mìíràn. Wo wọn bí ìṣòro tuntun kì í ṣe àtúnṣe ìṣòro kannáà.

Dan gbogbo ọ̀nà náà wò gẹ́gẹ́ bí iṣẹ́ náà yóò ṣe ṣiṣẹ́ rẹ̀: àkáwò kannáà, àkójọ iṣẹ́ kannáà, àyíká unit kannáà. Ìsopọ̀ tí ó ń ṣiṣẹ́ nìkan nígbà tí a bá bẹ̀rẹ̀ rẹ̀ láti shell rẹ jẹ́ àmì pé àyípadà àyíká tàbí tẹ́mínààlì ṣì jẹ́ apá kan ṣíṣàn náà.

Lẹ́yìn náà pa àwọn àṣírí mọ́ ní ibi tí ó yẹ. Àwọn ọ̀rọ̀-ìkọ̀kọ̀ nínú àwọn àríyànjiyàn ìlà pàṣẹ ń farahàn nínú tábìlì àwọn ìlànà, àwọn ọ̀rọ̀-ìkọ̀kọ̀ nínú àbájáde àṣìṣe-ṣíṣe sì ń parí nínú àwọn tíkẹ́ẹ̀tì. Lo fáìlì tí a dáàbò bò tàbí ìfarakanra ìṣàkóso, pa àwọn àkọsílẹ̀ mọ́ ní ìpele tí kì í tún ẹ̀rí-ìdánilójú ṣe, kí o sì yí fáìlì padà nígbà tí ẹnikẹ́ni tí ó ní àǹfààní bá kúrò.

Àkójọ àyẹ̀wò: ọ̀nà ẹ̀rí-ìdánilójú pípé, ó ṣeé kà gẹ́gẹ́ bí àkáwò iṣẹ́, kò nílò tẹ́mínààlì, script-security wà ní kéré jùlọ, ìfarakanra ìṣàkóso nìkan bí ó bá so mọ́ ẹ̀ tí a sì jẹ́rìí rẹ̀, àti ìdáhùn olùpín tí ó yọrí sí ni a kà bí ìṣẹ̀lẹ̀ ọ̀tọ̀.

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