Ìwádìí ìwọlé méjì kì í ṣe àwọn kókó méjì: VPN àti RADIUS
Ìwádìí àpamọ́ àdúgbò pẹ̀lú RADIUS jẹ́ ìjẹ́rìí méjì, kì í ṣe oríṣi kókó méjì. Fi àwọn ìlànà AND, OR àti àbò ṣe àfiwé, kí o sì dán àpapọ̀ wò.
Fífi backend ìjẹ́rìí kejì kún ẹnubodè VPN dà bí fífi kókó kejì kún. Ní gbogbo ìgbà ó ń fi ìwádìí kejì kún, èyí tí ó jẹ́ ohun mìíràn pẹ̀lú àwọn ọ̀nà ìkùdẹ́ mìíràn. Bóyá àwọn méjèèjì gbọdọ̀ ṣàṣeyọrí, ohun tí ọ̀kọ̀ọ̀kan ń fi hàn àti ohun tí ó ṣẹlẹ̀ nígbà tí ọ̀kan kò sí ni àwọn ìpinnu mẹ́ta ọ̀tọ̀ọ̀tọ̀. Tí o bá ṣe àṣìṣe, ẹnubodè yóò le kíkún ní àfihàn yóò sì rẹ̀wẹ̀sì ní àkókò ìdádúró.
Ohun tí backend kejì ń fi hàn ní ti gidi
Ìwádìí àpamọ́ àdúgbò ń fi hàn pé orúkọ wà nínú ibi-ìpamọ́ àti pé ọ̀rọ̀ aṣínà kan bá a mu. Pàṣípààrọ̀ RADIUS ń fi hàn pé sáfà RADIUS dá Access-Accept padà fún àwọn àbùdá tí ó gbà. Kò sí ọ̀kan nínú àwọn gbólóhùn tí ó mẹ́nu kan oríṣi kókó, nítorí pé àwọn méjèèjì ń jẹ́rìí ìmọ̀. Àti ìtọ́sọ́nà NIST nípa ìdánimọ̀ oníka ń ka oríṣi kókó ọ̀tọ̀ọ̀tọ̀ àti àwọn olùjẹ́rìí wọn, kì í ṣe sáfà tàbí ìtọ́ni.
Ẹ̀rọ ìdàpọ̀ tó yẹ wà nínú èyí tí àwọn ẹ̀rọ méjèèjì ń kópa. Iṣẹ́ àárín gbùngbùn lè jẹ́rìí ènìyàn nígbà tí ẹnubodè ń ṣàyẹ̀wò lọ́nà òmìnira bóyá àpamọ́ yẹn ní ẹ̀tọ́ sí ọ̀nà yìí. Ìyẹn ni àṣẹ lẹ́gbẹ̀ẹ́ ìjẹ́rìí, àti pípè é ní kókó méjì ń da ìwádìí ìlànà pọ̀ mọ́ ẹ̀rí nínì.
RADIUS lè gbé kókó kejì gidi nígbà tí ó bá dúró níwájú ohun tí ń jẹ́rìí ọ̀kan, bí ìfọwọ́sí títì tàbí tọ́kẹ̀n ohun èlò. Àpòòwé kò sọ irú àwọn olùjẹ́rìí tí olùlò fi hàn, nítorí náà ka ìlànà backend, kì í ṣe àmì ẹnubodè.
AND, OR àti àbò jẹ́ àwọn ọjà ọ̀tọ̀ọ̀tọ̀
Kí o tó fi àwọn ìmúṣẹ ṣe àfiwé, pinnu ohun tí méjèèjì túmọ̀ sí nínú ìbéèrè rẹ. Ìlànà AND ń béèrè pé kí gbogbo ìwádìí tí a dárúkọ kọjá, ìlànà OR ń gba èyí tí ó ṣàṣeyọrí, àbò sì ń dán èkejì wò ní àwọn ipò ìkùdẹ́ tí a sọ nìkan. Àwọn mẹ́tẹ̀ẹ̀ta wọ̀nyí ń hùwà òdìkejì ní àkókò ìdádúró, ní gbogbo ìgbà ọ̀kan nínú wọn ni ohun tí àyẹ̀wò ní lọ́kàn.
Fífi àwọn àkọsílẹ̀ backend méjì kún ojú-ìkójọpọ̀ kò ṣàfihàn ìlànà tí ọjà ń mú ṣiṣẹ́. Àwọn ẹnubodè kan ń so àwọn ohun-ìfikún pọ̀ lẹ́sẹẹsẹ, wọ́n sì dúró ní ìkọ̀kọ̀ àkọ́kọ́, èyí tí ó jẹ́ AND nígbà tí gbogbo ohun-ìfikún bá jẹ́ dandan nìkan. Àwọn mìíràn ka àpamọ́ àdúgbò sí àtúnṣe, èyí tí ó yí ìdádúró àárín padà sí ọ̀nà àbáyọ. Ìdáhùn tí ó ṣe é gbẹ́kẹ̀lé ni ìdánwò òdì tí a kọ sílẹ̀ fún gbogbo ọ̀nà, tí a ṣe lórí build tí o ń fi sílẹ̀.
Àbò tọ́ sí àìnídájú jù, nítorí pé ó wà kí iṣẹ́ lè tẹ̀síwájú nígbà tí nnkan bá bàjẹ́. Àbò tí ń gba ọ̀rọ̀ aṣínà àdúgbò nígbàkigbà tí RADIUS kò bá dé ti yí ìlànà àárín padà sí ilẹ̀kùn kejì tí ó rẹ̀wẹ̀sì jù.
Ìwádìí ìlọ́po méjì OpenVPN jẹ́ ọ̀ràn pàtó
OpenVPN àdúgbò 2.6 ń béèrè fún ẹ̀rí ẹ̀rọ àti auth-user-pass-verify script tí a ṣètò nígbà tí àwọn méjèèjì bá ṣiṣẹ́. Ìyẹn ni AND tí a kọ sílẹ̀ láàárín ìjẹ́rìí ẹ̀rí àti script ẹ̀rí ìdánimọ̀, ó sì jẹ́ ìwádìí méjì ní ti gidi. Ṣíbẹ̀ kò jẹ́ oríṣi kókó méjì lọ́nà àdáṣe, nítorí pé script lè jẹ́rìí ọ̀rọ̀ aṣínà nìkan.
Àpapọ̀ náà ń fi ìbéèrè ìsopọ̀ sílẹ̀ ní ṣíṣí. Ẹ̀rí ń dánimọ̀ ẹ̀rọ ní gbogbo ìgbà nígbà tí ẹ̀rí ìdánimọ̀ ń dánimọ̀ ènìyàn, kò sì sí nnkan nínú ìṣàn àdáṣe tí ń béèrè pé kí àwọn méjèèjì tọ́ka sí olórí kan náà. Pinnu àwọn tọ́pọ̀ tí a gbà, kí o sì fi àwòrán yẹn mú ṣiṣẹ́ nínú script ìjẹ́rìí tàbí ní ìgbésẹ̀ àṣẹ tí ó tẹ̀lé.
Ipò ẹ̀rí nìkan jẹ́ ìwádìí kan, tí ó dúró lórí kọ́kọ́rọ́ tí PIN lè dábòbò tàbí kò lè dábòbò. PIN ń yí ẹ̀rí ìdánimọ̀ kan náà padà sí ìmọ̀ àti nínì nígbà tí a kò lè lò kọ́kọ́rọ́ láìsí rẹ̀ nìkan. Fífi kọ́kọ́rọ́ yẹn sílẹ̀ láìṣe ìkọ̀kọ̀ lórí disiki ń dín apá kejì kù sí àṣẹ fáìlì.
Àwọn olùdá ohun èlò ń kọ́ pípọ̀ tiwọn, ní ọ̀pọ̀ ìgbà PAM module tàbí RADIUS plugin lẹ́yìn console wẹ́ẹ̀bù. Ìhùwàsí àdúgbò jẹ́ ìtọ́kasí fún bí ìwádìí ìlọ́po méjì ṣe rí, kì í ṣe àpèjúwe bí ohun èlò ṣe ń dà wọ́n pọ̀.
Ṣàyẹ̀wò àpapọ̀ náà lórí ẹnubodè rẹ
Ka ìṣètò náà kí o tó gbẹ́kẹ̀lé àkópọ̀ console. Àwọn ìlà tí ń pinnu ìlànà ni ipò ẹ̀rí, script ẹ̀rí ìdánimọ̀ àti lẹ́sẹẹsẹ ohun-ìfikún.
grep -E 'verify-client-cert|auth-user-pass-verify|plugin' /etc/openvpn/server.conf
openssl x509 -in /etc/openvpn/pki/issued/client01.crt -noout -subject -serial
radtest alice 'wrong-password' 127.0.0.1 0 testing123
grep ń fi hàn bóyá ẹ̀rí nílò àti script wo ló ń ṣiṣẹ́ lẹ́yìn rẹ̀, lẹ́sẹẹsẹ sì ṣe pàtàkì ju bí àwọn orúkọ ṣe dábàá. Ìtújáde ẹ̀rí ń fúnni ní ìdánimọ̀ tí ẹnubodè yóò rí, pẹ̀lú CN àti nọ́mbà tẹ̀lẹ̀tẹ̀lẹ̀ tí ó nílò fún àwòrán ìsopọ̀. Ìdánwò RADIUS jẹ́ ọ̀ràn òdì: ọ̀rọ̀ aṣínà tí kò tọ́ gbọdọ̀ fúnni ní Access-Reject, tí ó tọ́ sì ní Access-Accept. Tí ẹ̀rí tí a kọ̀ bá ṣì fúnni ní ìpàdé, script kò sí lórí ọ̀nà ìjẹ́rìí rárá.
Lẹ́yìn náà ṣe ọ̀ràn ìdádúró lórí àpẹẹrẹ yàrá ìdánwò: dá backend dandan dúró kí o sì so mọ́ pẹ̀lú ẹ̀rí tí ó tọ́. Èsì tí a retí ni ìkọ̀kọ̀, ohunkóhun mìíràn ni ìlànà àbò tí ẹnìkan kò kọ sílẹ̀.
Kọ ìbéèrè náà gẹ́gẹ́ bí àwọn ọ̀ràn òdì
Ìbéèrè tí ó wúlò ń dárúkọ àwọn ẹ̀rí, àwọn àpamọ́ tí a gbà láyè láti gbé wọn jáde àti èsì nígbà tí olùjẹ́rìí kò sí. Ó tún sọ ìsopọ̀ tí a gbà láàárín ìdánimọ̀ ẹ̀rọ àti ìdánimọ̀ ènìyàn. Ìyẹn tọ́ ju orúkọ ọjà lórí àṣẹ ìràwọ̀, a sì lè dán an wò.
Ìgbàwọlé gbọdọ̀ ní ìkọ̀kọ̀ mẹ́rin: àpamọ́ àdúgbò tí kò yẹ, ẹ̀rí dandan tí ó sọnù, kókó kejì tí kò tọ́ àti backend dandan tí a kò lè dé. Ìkọ̀kọ̀ kọ̀ọ̀kan nílò ìlà àkọsílẹ̀ tí ń yà á sótọ̀ láti àwọn mìíràn, bí bẹ́ẹ̀ kọ́ ìṣẹ̀lẹ̀ tó tẹ̀lé yóò bẹ̀rẹ̀ pẹ̀lú àròsọ. Ṣàkọsílẹ̀ irú ẹ̀yà tí ó ṣe ìpinnu kọ̀ọ̀kan, nítorí ẹnubodè, sáfà RADIUS àti ìwé-ìtọ́kasi yóò fi ẹ̀bi lé ara wọn.
Tún àwọn ìkọ̀kọ̀ mẹ́rin ṣe lẹ́yìn ìyípadà ohun-ìfikún tàbí firmware kọ̀ọ̀kan. Wọ́n pọ̀ ní owó, ìlànà tí wọ́n ń dáàbò bò ni apá tí olùkọlu ń kọ́kọ́ ṣàyẹ̀wò.