OpenVPN username-as-common-name: మీ CN తనిఖీ ఎందుకు ఖాళీగా ఉంది
common_name ను username తో పోల్చే client-connect స్క్రిప్ట్ ఒక పేరును దానితోనే పోల్చవచ్చు. భర్తీ అమలయ్యే ముందు సర్టిఫికెట్ను ఖాతాకు కట్టుబాటు చేయండి.
మీరు client-connect స్క్రిప్ట్ను జోడిస్తారు, ఇది common_name username నుండి భిన్నంగా ఉన్న ప్రతి కనెక్షన్ను తిరస్కరిస్తుంది, మరియు ఇది సర్టిఫికెట్ మరియు ఖాతా మధ్య బంధం లాగా కనిపిస్తుంది. username-as-common-name అమలవుతున్న సర్వర్లో, స్క్రిప్ట్ అమలయ్యే సమయానికి ఆ పోలిక తన అర్థాన్ని కోల్పోయింది. రెండు విలువలు ఒకే స్ట్రింగ్, కాబట్టి పూర్తిగా మరొకరికి జారీ చేసిన సర్టిఫికెట్కూ పరీక్ష ఉత్తీర్ణమవుతుంది.
స్క్రిప్ట్ పేలవంగా రాయబడినందుకు తనిఖీ తప్పు కాదు. అది చదివే విలువ అదే కనెక్షన్లో ముందే భర్తీ చేయబడినందుకు అది తప్పు.
పోలిక ఏమి నిరూపిస్తున్నట్లు కనిపిస్తుంది
సర్టిఫికెట్ ప్రామాణీకరణ మరియు పాస్వర్డ్ ప్రామాణీకరణ వేర్వేరు రుజువులు, మరియు అవి ఒకే వ్యక్తివి అని కోరకుండానే సర్వర్ రెండింటినీ కోరవచ్చు. ఖాళీ నిజమైనది: చెల్లుబాటు అయ్యే పరికర సర్టిఫికెట్ మరియు ఏదైనా చెల్లుబాటు అయ్యే ఖాతా కలిపి, అదే సర్టిఫికెట్ మరియు ఒక పేరున్న ఖాతా కలిపిన దానికంటే భిన్నమైన వాదన. common_name ను username తో పోల్చే స్క్రిప్ట్ రెండింటి మధ్య లేని లింక్లా చదవబడుతుంది. common_name ఇంకా సర్టిఫికెట్ చెప్పిన అర్థాన్ని ఇస్తే అది అలాగే ఉండేది.
అది అలా ఉందా లేదా అనేది ఒక సర్వర్ ఎంపికపై ఆధారపడి ఉంటుంది, మరియు ఆ ఎంపిక సాధారణంగా సంబంధం లేని కారణంతో ఆన్ చేయబడుతుంది, ఉదాహరణకు ప్రతి వినియోగదారు కాన్ఫిగరేషన్ ఫైళ్లకు పేరు పెట్టడం సులభతరం చేయడం.
username-as-common-name పేరుతో ఏమి చేస్తుంది
username-as-common-name ప్రారంభించబడినప్పుడు, OpenVPN వినియోగదారు పేరు మరియు పాస్వర్డ్ ధృవీకరించబడిన తర్వాత సర్టిఫికెట్ సాధారణ పేరు స్థానంలో ప్రామాణీకరించిన వినియోగదారు పేరును ఉంచుతుంది. ఆ తనిఖీ సమయంలో అమలయ్యే ధృవీకరణ హుక్ ఇంకా సర్టిఫికెట్ సాధారణ పేరునే పొందుతుంది, ఎందుకంటే భర్తీ ఇంకా జరగలేదు. ఆ తర్వాత అన్నీ, client-connect తో సహా, వినియోగదారు పేరును చూస్తాయి. కాబట్టి తర్వాతి కాల్బ్యాక్ ఒకే గుర్తింపును రెండుసార్లు పొందుతుంది మరియు సమర్పించిన సర్టిఫికెట్తో పోల్చలేదు.
| 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 |
ఒక ఉదాహరణ కనెక్షన్ను అనుసరించండి: bob-device కోసం జారీ చేసిన సర్టిఫికెట్, alice గా విజయవంతమైన డైరెక్టరీ లాగిన్, మరియు ఎంపిక ఆన్లో ఉంది. ధృవీకరణ దశ ఇంకా రెండు వేర్వేరు స్ట్రింగులను చూడగలదు. కనెక్షన్ దశ alice మరియు alice లను చూస్తుంది.
ఆ ఉదాహరణ పోలిక ఎందుకు ఖాళీగా ఉందో చూపిస్తుంది. సర్టిఫికెట్ ధృవీకరణ మరియు పాస్వర్డ్ ధృవీకరణ ఇంకా స్వతంత్రంగా నడుస్తున్నందున, కనెక్షన్ మరొక విధంగా ఆమోదించబడి ఉండేదా అని అది చూపదు.
రెండు గుర్తింపులు ఇంకా ఉన్న చోట బంధాన్ని ఉంచండి
సర్టిఫికెట్ గుర్తింపును మరియు ఖాతాను ఒకేసారి చూసే దశలో నియమం అమలు చేయాలి, అంటే ఆచరణలో వినియోగదారు పేరు మరియు పాస్వర్డ్ ధృవీకరణ హుక్ లేదా అక్కడ లోడ్ చేయబడిన ప్లగిన్. ఇప్పటికే పాస్వర్డ్ ధృవీకరణ చేసే మద్దతు ఉన్న ప్లగిన్ సాధారణంగా జత నియమాన్ని జోడించడానికి సరైన స్థలం, ఎందుకంటే దాన్ని పేరు పోలికతో భర్తీ చేస్తే పాస్వర్డ్ తనిఖీ పూర్తిగా తొలగిపోతుంది.
కోడ్ రాయడానికి ముందు మ్యాపింగ్ను నిర్వచించండి, ఎందుకంటే సమానత్వం అరుదుగా నిజమైన విధానం. సర్టిఫికెట్ తరచుగా పరికరాన్ని గుర్తిస్తుంది, లాగిన్ వ్యక్తిని గుర్తిస్తుంది, ఒక పరికరం చట్టబద్ధంగా పలువురికి సేవ చేయగలదు. సంబంధాన్ని మీరు నియంత్రించే జారీ రూపంలో నిల్వ చేయండి, మరియు పేరు మార్పు, పునర్ జారీ మరియు డొమైన్ అర్హత పేర్లలో ఏమి జరుగుతుందో నిర్ణయించండి. డైరెక్టరీని అర్థం చేసుకోకుండా చిన్న అక్షరాలకు మార్చడం లేదా డొమైన్ ఉపసర్గను తీసివేయడం వేరుగా ఉండాల్సిన రెండు ఖాతాలను విలీనం చేయవచ్చు.
ఎంపిక ఏ ప్రతి క్లయింట్ కాన్ఫిగరేషన్ వర్తిస్తుందో కూడా మారుస్తుందని గుర్తుంచుకోండి, ఎందుకంటే client-config-dir సాధారణ పేరుతో నిర్ణయించబడుతుంది.
రెండు చెల్లుబాటు అయ్యే ఆధారాలతో జతను పరీక్షించండి
మీ విధానం అనుమతించే జతతో ప్రారంభించి అది కనెక్ట్ అవుతుందని నిర్ధారించండి. ఆ తర్వాత అదే చెల్లుబాటు అయ్యే సర్టిఫికెట్ను వేరే కానీ మరొక విధంగా చెల్లుబాటు అయ్యే ఖాతాతో సమర్పించండి: ఆ ప్రయత్నం విఫలం కావాలి, మరియు అది తప్పుగా టైప్ చేసిన పాస్వర్డ్ వల్ల కాదు, జత నియమం వల్ల విఫలం కావాలి. తప్పు పాస్వర్డ్ పాస్వర్డ్ తనిఖీ పనిచేస్తుందని నిరూపిస్తుంది మరియు సర్టిఫికెట్-ఖాతా నియమం గురించి ఏమీ చెప్పదు.
సర్టిఫికెట్ లేని మరియు చెల్లని సర్టిఫికెట్ ఉన్న మార్గాలను కూడా తనిఖీ చేయండి, మరియు ప్రతి క్లయింట్ సెట్టింగ్లకు సర్వర్ ఏ గుర్తింపును ఉపయోగిస్తుందో నిర్ధారించండి. పోలిక పనిచేయడానికి ఏకైక మార్గం username-as-common-name ను నిలిపివేయడం అయితే, ముందుగా ఆ మార్పు ఖర్చును అంచనా వేయండి, ఎందుకంటే అది ప్రతి క్లయింట్ కాన్ఫిగరేషన్ శోధనను సర్టిఫికెట్ పేరుకు తిరిగి తీసుకెళ్తుంది.