Sísopọ RADIUS mọ́ OpenVPN: plugin tàbí ìkọ́kọ́ script?
Plugin RADIUS àtijọ́ so mọ́ build server tí a kópílẹ̀ fún. Ìkọ́kọ́ auth-user-pass-verify rọ́pò rẹ̀, ṣùgbọ́n ó ń gbé ìgbẹ́kẹ̀lé lọ sínú script rẹ.
A ṣì máa ń dá plugin ní ìmọ̀ràn nínú àwọn ìjíròrò tí ó dàgbà ju àwọn build lọ́wọ́lọ́wọ́, ó sì kùnà nígbà ìgbéwọlé lórí server tí a kópílẹ̀ nínú àná. Èyí kì í ṣe àṣìṣe ìṣètò tí a lè tún ṣe pẹ̀lú ipa ọ̀nà. Plugin àti ìkọ́kọ́ script yanjú ìṣòro kan náà ní àwọn ìpele ọ̀tọ̀ọ̀tọ̀, ìyípadà láti ọ̀kan sí èkejì sì máa ń yí ohun tí a gbọ́dọ̀ fi sórí iṣẹ́, ohun tí ó ń ṣiṣẹ́ pẹ̀lú ẹ̀tọ́ server, àti ohun tí ìwọlé tí ó kùnà ń sọ fún ọ ní tòótọ́.
Àlọ́: plugin ni ọ̀nà tí a ṣe àtìlẹ́yìn fún
Plugin jẹ́ ohun tí a pín tí a gbé wọ inú ìlànà OpenVPN, nítorí náà ó gbọ́dọ̀ bá interface tí ìlànà náà ń fi hàn mu. Àwọn build ń yípadà, ìpèsè àpòpọ̀ ń yípadà, ilé-ìkàwé tí a kópílẹ̀ fún interface àtijọ́ kò ní gbà láti gbéwọlé. Kò sí ohun kan nínú ìṣètò server tí ó lè dí àlàfo yẹn, nítorí náà ìmọ̀ràn "kàn fi radiusplugin sórí iṣẹ́" ń parí pẹ̀lú server tí kì í gbéra.
Ìkọ́kọ́ script dúró ní òde ìlànà. OpenVPN ń ṣe ètò kan, ó ń fún un ní ẹ̀rí ìwọlé, ó sì ń ka ìdájọ́ padà. Ìpínyà yẹn ni ó jẹ́ kí ó lè yè àwọn ìgbéga, ó sì tún jẹ́ kí ó di ojúṣe rẹ ní ọ̀nà tí plugin kò tíì rí.
Kò sí ọ̀nà tí ó túbọ̀ ní ààbò nípasẹ̀ ìkọ́ rẹ̀. Ọ̀kan ń ṣe kóòdù àjèjì nínú daemon; èkejì ń ṣe kóòdù rẹ lẹ́gbẹ̀ẹ́ rẹ̀ pẹ̀lú ẹ̀rí ìwọlé ní ọwọ́. Ìbéèrè tòótọ́ ni èwo nínú àwọn ewu méjì yìí ni o lè máa bójú tó ní tòótọ́.
Ohun tí plugin so pọ̀
Plugin ní fáìlì ìṣètò tirẹ̀ pẹ̀lú host RADIUS, àṣírí tí a pín, iye ìgbìyànjú àti àkókò ìparí, ìṣètò server sì ń tọ́ka sí i pẹ̀lú ìlà kan. Ìmójútó ẹ̀rí ìwọlé wà nínú ìlànà server, èyí sì túmọ̀ sí pé ọ̀rọ̀ ìpamọ́ kò tíì kọjá ààlà ìlànà tí alábòójútó gbọ́dọ̀ dáàbò bò.
Iye náà ni ìsopọ̀. Gbogbo ìgbéga OpenVPN ń fi interface tí kò bá mu wéwu, gbogbo ìpín tí ó tún àpòpọ̀ kọ́ ń fi ilé-ìkàwé tí kò bá mu mọ́ wéwu. Nígbà tí èyí bá ṣẹlẹ̀, ìkùnà máa ń pariwo ó sì máa ń yára, ìyẹn sì ni àánú kan ṣoṣo ti èrò náà.
Bí irú plugin bẹ́ẹ̀ ṣì ń gbéwọlé lórí build rẹ, ó lè jẹ́ ojú iṣẹ́ tí ó kéré jù. Jẹ́rìí sí interface tí a kọ́ ọ fún, fi í mọ́ build tí o ti dán wò, kí o sì ka gbogbo ìgbéga sí ìyípadà tí ó nílò àyẹ̀wò ìwọlé kíkún, kì í ṣe ìmúdójúìwọ̀n àpòpọ̀ déédéé.
Ohun tí ìkọ́kọ́ script gbẹ́kẹ̀ lé ní tòótọ́
A ń ṣètò ìkọ́kọ́ pẹ̀lú auth-user-pass-verify àti ẹ̀rọ ìfijíṣẹ́: àwọn oníyípadà àyíká tàbí fáìlì ìgbà díẹ̀. Nínú ọ̀nà àyíká, OpenVPN nílò script-security 3, ìpele tí a kọ sílẹ̀ tí ó gbà kí a fi ọ̀rọ̀ ìpamọ́ hàn fún àwọn script. Ìpele yẹn jẹ́ ìrẹ̀wẹ̀sí àfẹ́nu àti pé, a sì gbọ́dọ̀ kà á sí ìyọ̀ǹda pẹ̀lú ìdí tí a fi so mọ́.
Gbogbo ohun tí script fọwọ́ kàn máa ń jogún ìgbẹ́kẹ̀lé yẹn. Ó gbọ́dọ̀ jẹ́ ohun ìní root, kì í ṣe ohun tí ẹgbẹ́ tàbí àwọn mìíràn lè kọ, a gbọ́dọ̀ tọ́ka sí i pẹ̀lú ipa ọ̀nà kíkún, kò sì gbọ́dọ̀ ní ibi tí iye tí kò yẹ láti gbẹ́kẹ̀ lé ń dé shell. Fi gbogbo oníyípadà sínú àmì àsọtẹ́lẹ̀, kọ̀ àwọn lẹ́tà àìròtẹ́lẹ̀, kí o má sì kọ́ àṣẹ láti orúkọ olùṣàmúlò tí a fún ọ rárá. Script tí ó ń ṣiṣẹ́ gẹ́gẹ́ bí root ní gbogbo ìgbìyànjú ìwọlé yẹ àyẹ̀wò ẹ̀ẹ̀kan nítorí àwọn ànímọ́ mẹ́rin yẹn.
ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh
Ọ̀nà ìfijíṣẹ́ pẹ̀lú fáìlì ń yẹra fún ìṣòro ìjogún àyíká, ó sì ń fi ẹ̀rí ìwọlé fún script nípasẹ̀ fáìlì ìgbà díẹ̀ pẹ̀lú àwọn ẹ̀tọ́ tí a dín kù. Bí aláàbò rẹ bá ṣe àtìlẹ́yìn fún un, ó sábà jẹ́ àkọ́kọ́ tí ó dára jù, bí ó tilẹ̀ ń fi ohun kan sí i láti tún ṣe nígbà ìkùnà.
Àwọn kóòdù ìjáde ń pinnu bóyá o máa kùnà ní ṣíṣí
Ipò ìjáde script ni ìdájọ́: òdo gbà, tí kì í ṣe òdo kọ̀. Àwòṣe tí ó ń fa wàhálà ni script shell tí ó kàn gbà nígbà tí ìdáhùn RADIUS ní àmì ìgbàlá kan pàtó, tí ó sì ń dá ìkùnà padà fún gbogbo ohun mìíràn, nítorí pé ó ń dà àwọn ìṣẹ̀lẹ̀ mẹ́ta ọ̀tọ̀ọ̀tọ̀ pọ̀ sí ìdáhùn kan. Ọ̀rọ̀ ìpamọ́ tí kò tọ́, server tí kò lè dé, àti ìdáhùn tí ó díbàjẹ́ gbogbo wọn di ìkọ̀ kan náà.
Ya àwọn ọ̀ràn yẹn sọ́tọ̀ nínú script bí ìkọ́kọ́ tilẹ̀ lè dá ìgbà tàbí ìkọ̀ padà nìkan. Ṣàkọsílẹ̀ àbájáde backend lọ́tọ̀, ṣe ìkìlọ̀ nípa àkókò ìparí àti àwọn àṣìṣe ìgbékalẹ̀, kí o sì jẹ́ kí ó ṣe kedere nínú àbójútó nígbà tí ìjẹ́rìí ń kùnà nítorí pé iṣẹ́ ti dáwọ́ dúró kì í ṣe nítorí pé àwọn olùṣàmúlò ń tẹ̀ kò tọ́.
Àwọn àṣà méjì ń pa ìyókù mọ́ ní ìmọ̀. Bí RADIUS bá ni àṣẹ, ó gbọ́dọ̀ jẹ́ ibi kan ṣoṣo tí a ti ń yẹ̀wò ọ̀rọ̀ ìpamọ́, nítorí tábìlì òjìji ń dá ìdáhùn méjì fún ìbéèrè kan, èkejì sì jẹ́ ojú ìkọlù tí kò sí ẹni tí ń ṣọ́. Kí o sì rántí pé a ń pe ìkọ́kọ́ ní gbogbo ìgbìyànjú, nítorí náà script tí ó lọ́ra pẹ̀lú aláàbò tí kò ní sùúrù máa di olùmúgbára fún àfọ̀mọ́ ọ̀rọ̀ ìpamọ́ àyàfi bí o bá fi ìdádúró tàbí ìlànà kún ní ẹ̀gbẹ́ RADIUS.
Ohun tí o ń fi sílẹ̀ nígbà tí ẹ̀rí-ìjẹ́rìí bá lọ
Ọ̀pọ̀ ìgbékalẹ̀ irú yìí ń pa àyẹ̀wò ẹ̀rí-ìjẹ́rìí aláàbò dà, wọ́n sì ń fi orúkọ olùṣàmúlò àti ọ̀rọ̀ ìpamọ́ ṣe gbogbo ẹ̀tọ́ aláàbò. Ohun tí ó ń pòórá pẹ̀lú ìṣètò yẹn ni ìdánimọ̀ tí ó dá lórí ẹ̀rí-ìjẹ́rìí. Ọ̀nà náà ṣì wà ní ìpamọ́, ṣùgbọ́n ohun kan ṣoṣo tí ó ń dárúkọ aláàbò ni ìdájọ́ RADIUS. Ohunkóhun ní ìsàlẹ̀ tí ó ti gbẹ́kẹ̀ lé àkòrí ẹ̀rí-ìjẹ́rìí nígbà kan gbọ́dọ̀ gbẹ́kẹ̀ lé orúkọ olùṣàmúlò báyìí.
Pa ààbò ọ̀nà ìṣàkóso mọ́ sí ipò rẹ̀ kí ẹlẹgbẹ́ tí kò ní ìjẹ́rìí má lè ṣàyẹ̀wò tàbí ṣàgbáyé ìfọwọ́sowọ́pọ̀, kí o sì lo username-as-common-name nígbà tí ìṣètò fún olùṣàmúlò kọ̀ọ̀kan bá gbẹ́kẹ̀ lé orúkọ gbogbogbò. Àwọn ẹnubodè tí a ń bójú tó máa ń yanjú èyí lọ́nà mìíràn, wọ́n ń parí ìjẹ́rìí ẹ̀rí-ìjẹ́rìí ní ẹnubodè tí ó ń bá RADIUS sọ̀rọ̀ EAP-TLS, nígbà yẹn kò sí ìkankan nínú àwọn ìtọ́ni server wọ̀nyí tí ó wúlò. Ṣàdàkọ àwòṣe tí pẹpẹ rẹ fúnra rẹ̀ ṣàlàyé, kì í ṣe ti ọjà aládùúgbò. Àwọn ìtọ́ni pàtàkì yàtọ̀ síra tó bẹ́ẹ̀ tí dídà wọ́n pọ̀ yóò dá ìṣètò tí a máa ṣàyẹ̀wò tí kò sì ní jẹ́rìí ẹnikẹ́ni.