OpenVPN username-as-common-name: kwa nini ukaguzi wako wa CN uko tupu
Skript ya client-connect inayolinganisha common_name na username inaweza kulinganisha jina na lenyewe. Funga cheti kwa akaunti kabla ya uingizwaji kufanyika.
Unaongeza skript client-connect inayokataa kila muunganisho ambapo common_name ni tofauti na username, na inaonekana kama kiungo kati ya cheti na akaunti. Kwenye seva inayoendesha username-as-common-name, ulinganisho huo umeshapoteza maana yake wakati skript inaendeshwa. Thamani zote mbili ni mfuatano mmoja, kwa hiyo jaribio hupita kwa cheti kilichotolewa kwa mtu mwingine kabisa.
Ukaguzi si mbaya kwa sababu skript imeandikwa vibaya. Ni mbaya kwa sababu thamani inayoisoma ilibadilishwa mapema katika muunganisho huo huo.
Kile ulinganisho unaonekana kuthibitisha
Uthibitishaji kwa cheti na uthibitishaji kwa nenosiri ni ushahidi tofauti, na seva inaweza kuhitaji vyote bila kuhitaji kwamba vimilikiwe na mtu mmoja. Pengo ni la kweli: cheti halali cha kifaa pamoja na akaunti yoyote halali ni dai tofauti na cheti hicho pamoja na akaunti moja iliyotajwa. Skript inayolinganisha common_name na username inasomwa kama kiungo kinachokosekana kati ya hizo mbili. Ingekuwa hivyo, kama common_name bado ingemaanisha kile cheti kilichosema.
Ikiwa ni hivyo inategemea chaguo moja la seva, na chaguo hilo kawaida huwashwa kwa sababu isiyohusiana, kama kufanya faili za usanidi za kila mtumiaji ziwe rahisi kutajwa.
Kile username-as-common-name hufanya kwa jina
Wakati username-as-common-name imewashwa, OpenVPN hubadilisha jina la kawaida la cheti na jina la mtumiaji lililothibitishwa baada ya jina la mtumiaji na nenosiri kuthibitishwa. Ndoano ya uthibitishaji inayoendeshwa wakati wa ukaguzi huo bado inapokea jina la kawaida la cheti, kwa sababu uingizwaji bado haujafanyika. Kila kitu baadaye, ikiwa ni pamoja na client-connect, kinaona jina la mtumiaji. Kwa hiyo mwitikio wa baadaye hupokea utambulisho mmoja mara mbili na hauwezi kuulinganisha na cheti kilichowasilishwa.
| Stage | What common_name holds |
|---|---|
| Username and password verification hook | The certificate common name, for example bob-device |
| After the replacement | The authenticated account, alice |
| client-connect callback | The account again, alice |
Fuatilia muunganisho mmoja wa mfano: cheti kilichotolewa kwa bob-device, kuingia kwa mafanikio kwenye saraka kama alice, na chaguo limewashwa. Awamu ya uthibitishaji bado inaweza kuona mifuatano miwili tofauti. Awamu ya muunganisho inaona alice na alice.
Mfano huo unaonyesha kwa nini ulinganisho uko tupu. Hauonyeshi kwamba muunganisho ungekubaliwa vinginevyo, kwa kuwa uthibitishaji wa cheti na uthibitishaji wa nenosiri bado huendeshwa peke yao.
Weka kiungo mahali ambapo utambulisho wote wawili bado upo
Kanuni lazima itekelezwe katika awamu inayoona utambulisho wa cheti na akaunti kwa wakati mmoja, ambayo kwa vitendo inamaanisha ndoano ya uthibitishaji wa jina la mtumiaji na nenosiri au programu-jalizi iliyopakiwa hapo. Programu-jalizi inayoungwa mkono ambayo tayari hufanya uthibitishaji wa nenosiri kawaida ndiyo mahali sahihi pa kuongeza kanuni ya kuoanisha, kwa sababu kuibadilisha na ulinganisho wa majina kutaondoa kabisa ukaguzi wa nenosiri.
Bainisha ramani kabla ya kuandika msimbo, kwa kuwa usawa ni mara chache sera halisi. Cheti mara nyingi hutambulisha kifaa wakati kuingia hutambulisha mtu, na kifaa kimoja kinaweza kuhudumia watu kadhaa kwa njia halali. Hifadhi uhusiano katika umbo ambalo unasimamia utoaji wake, na uamue kinachotokea wakati wa kubadilisha jina, wa kutoa upya na kwa majina yenye sifa za kikoa. Kubadilisha kuwa herufi ndogo au kuondoa kiambishi cha kikoa bila kuelewa saraka kunaweza kuunganisha akaunti mbili ambazo zilipaswa kubaki tofauti.
Kumbuka kwamba chaguo pia hubadilisha ni usanidi upi wa kila mteja unaotumika, kwa kuwa client-config-dir imefungwa kwa jina la kawaida.
Jaribu kuoanisha kwa vyeti viwili halali vya kuingia
Anza na jozi ambalo sera yako inaruhusu na uthibitishe kwamba linaunganisha. Kisha wasilisha cheti kilekile halali pamoja na akaunti nyingine lakini halali: jaribio hilo lazima lishindikane, na lazima lishindikane kwa sababu ya kanuni ya kuoanisha na si kwa sababu ya nenosiri lililoandikwa vibaya. Nenosiri lisilo sahihi linathibitisha kwamba ukaguzi wa nenosiri unafanya kazi na halisemi chochote kuhusu kanuni kati ya cheti na akaunti.
Kagua pia njia za cheti kinachokosekana na cheti batili, na uthibitishe ni utambulisho upi seva inatumia kwa mipangilio ya kila mteja. Ikiwa njia pekee ya kufanya ulinganisho ufanye kazi ni kuzima username-as-common-name, kwanza pima gharama ya mabadiliko hayo, kwa sababu hurudisha utafutaji wa usanidi wa kila mteja kwenye jina la cheti.