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 बंद करणे असेल, तर आधी त्या बदलाची किंमत मोजा, कारण तो प्रत्येक क्लायंटचा कॉन्फिगरेशन शोध प्रमाणपत्राच्या नावाकडे परत नेतो।