नेटवर्क प्रमाणीकरण + रोमिंग होम डायरेक्टरी - मुझे किस तकनीक का उपयोग करना चाहिए?


9

मैं सॉफ्टवेयर में देख रहा हूं जो एक उपयोगकर्ता को कई कंप्यूटरों में एकल पहचान प्रदान करता है। अर्थात, प्रत्येक कंप्यूटर पर एक उपयोगकर्ता की एक ही अनुमतियाँ होनी चाहिए, और प्रत्येक कंप्यूटर पर उपयोगकर्ता को उसकी सभी फ़ाइलों (रोमिंग होम डायरेक्ट्री) तक पहुंच होनी चाहिए। इस सामान्य विचार के लिए कई समाधान प्रतीत होते हैं, लेकिन मैं मेरे लिए सबसे अच्छा एक निर्धारित करने की कोशिश कर रहा हूं। आवश्यकताओं के साथ यहां कुछ विवरण दिए गए हैं:

  1. मशीनों के नेटवर्क अमेज़न ईसी 2 उदाहरण हैं जो उबंटू चल रहे हैं।
    • हम एसएसएच के साथ मशीनों का उपयोग करते हैं।
    • इस LAN की कुछ मशीनों के अलग-अलग उपयोग हो सकते हैं, लेकिन मैं केवल एक निश्चित उपयोग के लिए मशीनों पर चर्चा कर रहा हूं (बहु-टेनेंसी प्लेटफ़ॉर्म चला रहा है)।
  2. सिस्टम में आवश्यक रूप से मशीनों की निरंतर मात्रा नहीं होगी।
    • हमें चल रही मशीनों की मात्रा को स्थायी या अस्थायी रूप से बदलना पड़ सकता है। यही कारण है कि मैं केंद्रीकृत प्रमाणीकरण / भंडारण में देख रहा हूं।
  3. इस आशय का कार्यान्वयन एक सुरक्षित होना चाहिए।
    • हम अनिश्चित हैं यदि उपयोगकर्ताओं के पास सीधे शेल एक्सेस होगा, लेकिन हमारे सिस्टम पर संभवतः उनका सॉफ़्टवेयर चल रहा होगा (प्रतिबंधित लिनक्स उपयोगकर्ता नामों के तहत), जो कि सीधे शेल एक्सेस के लिए अच्छा है।
    • मान लेते हैं कि सुरक्षा के लिए उनका सॉफ़्टवेयर संभावित रूप से दुर्भावनापूर्ण हो सकता है।

मैंने अपने लक्ष्य को प्राप्त करने के लिए कई तकनीकों / संयोजनों के बारे में सुना है, लेकिन मैं प्रत्येक के प्रभावों के बारे में अनिश्चित हूं।

  • एक पुराने सर्वरफॉल्ट पोस्ट ने एनएफएस एंड एनआईएस की सिफारिश की, हालांकि इस पुराने लेख के अनुसार सिमेंटेक द्वारा संयोजन में सुरक्षा समस्याएं हैं । लेख एनआईएस + पर जाने का सुझाव देता है, लेकिन, जैसा कि यह पुराना है, इस विकिपीडिया लेख में बयान दिया गया है कि यह सूर्य से एनआईएस + से दूर होने का सुझाव देता है। अनुशंसित प्रतिस्थापन एक और चीज है जिसे मैंने सुना है ...
  • एलडीएपी। ऐसा लगता है कि एक नेटवर्क पर केंद्रीकृत स्थान में उपयोगकर्ता जानकारी को बचाने के लिए LDAP का उपयोग किया जा सकता है। एनएफएस को अभी भी 'रोमिंग होम फोल्डर' की आवश्यकता को पूरा करने के लिए उपयोग करने की आवश्यकता होगी, लेकिन मैं उन्हें एक साथ उपयोग किए जाने के संदर्भ देखता हूं। चूंकि सिमेंटेक लेख ने एनआईएस और एनएफएस दोनों में सुरक्षा समस्याओं को इंगित किया है, क्या एनएफएस को बदलने के लिए सॉफ्टवेयर है, या क्या मुझे उस लेख के सुझावों को इसे बंद करने के लिए ध्यान देना चाहिए? मैं LDAP की ओर रुझान कर रहा हूं क्योंकि हमारी वास्तुकला का एक और मौलिक टुकड़ा, RabbitMQ, LDAP के लिए एक प्रमाणीकरण / प्राधिकरण प्लगइन है। RabbitMQ सिस्टम पर उपयोगकर्ताओं के लिए प्रतिबंधित तरीके से सुलभ होगा, इसलिए यदि संभव हो तो मैं सुरक्षा प्रणालियों को एक साथ जोड़ना चाहूंगा।
  • केर्बरोस एक और सुरक्षित प्रमाणीकरण प्रोटोकॉल है जिसके बारे में मैंने सुना है। मैंने इसके बारे में कुछ साल पहले एक क्रिप्टोग्राफी क्लास में सीखा था लेकिन इसके बारे में ज्यादा याद नहीं है। मैंने सुझावों को ऑनलाइन देखा है कि इसे एलडीएपी के साथ कई तरीकों से जोड़ा जा सकता है। क्या यह आवश्यक है? Kerberos के बिना LDAP के सुरक्षा जोखिम क्या हैं? मुझे यह भी याद है कि कार्नेगी मेलनॉन यूनिवर्सिटी द्वारा विकसित सॉफ्टवेयर के एक और टुकड़े में इस्तेमाल किया जा रहा है ...
  • एंड्रयू फाइल सिस्टम, या एएफएस। OpenAFS उपयोग के लिए उपलब्ध है, हालांकि इसका सेटअप थोड़ा जटिल है। मेरे विश्वविद्यालय में, AFS दोनों आवश्यकताओं को प्रदान करता है ... मैं किसी भी मशीन में लॉग इन कर सकता हूं, और मेरा "AFS फ़ोल्डर" हमेशा उपलब्ध है (कम से कम जब मैं AFS टोकन प्राप्त करता हूं)।

सुझाव के लिए कि मुझे किस मार्ग पर ध्यान देना चाहिए, क्या किसी के पास कोई गाइड है जो विशेष रूप से सहायक थे? जैसा कि बोल्ड टेक्स्ट ने बताया है, LDAP सबसे अच्छा विकल्प है, लेकिन मैं सुरक्षा के संबंध में कार्यान्वयन विवरण (केबर? एनएफएस?) में विशेष रूप से दिलचस्पी रखता हूं।

जवाबों:


7

प्रमाणीकरण, प्राधिकरण और निर्देशिका जानकारी

यह आपके प्रश्न का पूर्ण उत्तर नहीं है, लेकिन मुझे लगा कि इससे एनआईएस बनाम एलडीएपी बनाम केर्बरोस के बारे में आपके सवालों का समाधान हो सकता है।

इसके साथ शुरू करें , जो प्रमाणीकरण और प्राधिकरण के बीच अंतर का एक अच्छा अवलोकन प्रदान करता है , जिसे इस तरह की चर्चा के लिए समझना महत्वपूर्ण है।

केर्बरोस, जैसा कि आप कहते हैं, बस एक प्रमाणीकरण प्रोटोकॉल है। क्रेडेंशियल के एक सेट को देखते हुए - जैसे, एक उपयोगकर्ता नाम और पासवर्ड - यह आपको बताएगा कि वे मान्य हैं या नहीं। यह सब करता है।

इसके विपरीत, एनआईएस और एलडीएपी दोनों निर्देशिका सेवाएं हैं। वे ग्राहकों को उपयोगकर्ताओं के बारे में जानकारी के लिए उन्हें क्वेरी करने की अनुमति देते हैं (आपकी होम निर्देशिका क्या है? आपकी उपयोगकर्ता आईडी क्या है?)। दोनों समस्याओं के अलग-अलग पतन के साथ प्रमाणीकरण स्रोतों के रूप में उपयोग किया जा सकता है।

एनआईएस वास्तव में अपने दम पर आपके लिए कोई प्रमाणीकरण नहीं करता है। इसके बजाय, यह क्लाइंट मशीनों के लिए एक पासवर्ड हैश को उजागर करता है, और आपका स्थानीय सिस्टम उसी तरह से वास्तविक प्रमाणीकरण कदम उठाता है जैसे वह स्थानीय खातों के लिए होता है। यहाँ समस्या यह है कि आपके एनआईएस ग्राहकों में से किसी एक के खाते वाले व्यक्ति आपके सभी पासवर्ड हैश को पकड़ सकते हैं, और फिर अपने अवकाश पर उन पर एक क्रूर बल हमला कर सकते हैं।

LDAP कुछ अधिक सुरक्षित है, क्योंकि प्रमाणीकरण कदम वास्तव में सर्वर पर किया जाता है। आपको यह सुनिश्चित करना होगा कि आप अपने LDAP सत्रों को SSL या TLS के साथ एन्क्रिप्ट कर रहे हैं, अन्यथा पासवर्ड वायर पर क्लीयरटेक्स्ट में उजागर होता है, जहाँ यह पैकेट सूँघने के लिए असुरक्षित है।

प्रमाणीकरण के लिए Kerberos का उपयोग करना और फिर प्राधिकरण के लिए NIS या LDAP (आमतौर पर इसका अर्थ "समूह सदस्यता") और निर्देशिका जानकारी के लिए बहुत आम है। मेरा तर्क है कि एनआईएस, एक बार आपने पासवर्ड हैश को हटा दिया है (आपके प्रमाणीकरण को केर्बोरस में स्थानांतरित करके) एलडीएपी की तुलना में वास्तव में कम सुरक्षित नहीं है, और किसी भी आधुनिक लिनक्स वितरण पर "आउट ऑफ द बॉक्स" उपलब्ध होने का लाभ है।

दूसरी ओर, LDAP, आम तौर पर कहीं अधिक एक्स्टेंसिबल है, यदि आपके पास बड़ी संख्या में उपयोगकर्ता (या अन्य निर्देशिका ऑब्जेक्ट) हैं, तो समृद्ध प्रश्न प्रदान करता है, और आमतौर पर अधिक प्रबंधनीय है। एलडीएपी को विभिन्न प्रकार के अनुप्रयोगों में भी मूल रूप से समर्थित किया जाता है, जबकि एनआईएस का कोर ऑपरेटिंग सिस्टम के साथ एक अजीब संबंध है जो अवांछनीय हो सकता है।

यदि आप स्क्रैच से चीजों का निर्माण कर रहे हैं, तो मैं आपकी निर्देशिका सेवा के लिए प्रमाणीकरण और LDAP के लिए Kerberos का सुझाव दूंगा।

फ़ाइल सिस्टम

एनएफएस का एक बड़ा फायदा है: आपके पास पहले से ही है, यह व्यापक रूप से तैनात है, और यह आमतौर पर स्थिर है। NFS के लिए दो प्राथमिक डाउनसाइड हैं:

  • यह समानांतर i / o के लिए अच्छा नहीं है। यदि आपको एक ही फाइल सिस्टम से टकराने वाली बड़ी संख्या में मशीनें मिली हैं, तो आपके एकल एनएफएस सर्वर को बनाए रखने में कठिन समय हो सकता है। यही कारण है कि बड़े क्लस्टर आमतौर पर क्लस्टर फाइल सिस्टम (जैसे कि चमक, चमक, जीपीएफएस, जीएफएस, आदि) का उपयोग करते हैं जो समानांतर i / o को समर्थित करने के लिए डिज़ाइन किया गया है।

  • इसका सुरक्षा मॉडल खराब है। आम तौर पर, एनएफएस सुरक्षा निर्णय पूरी तरह से आपके संख्यात्मक उपयोगकर्ता आईडी पर आधारित होते हैं। यदि आपके पास एक ऐसी प्रणाली है जो एनएफएस फाइल सिस्टम को माउंट कर सकती है, तो आपके पास सभी फाइलों तक पहुंच है - क्योंकि आप हमेशा उपयुक्त उपयोगकर्ता आईडी के साथ एक स्थानीय उपयोगकर्ता बना सकते हैं। यह कड़ाई से सच नहीं है, क्योंकि एनएफआरवी 3 और एनएफएसवी 4 दोनों में केर्बरोस प्रमाणीकरण के लिए समर्थन के विभिन्न स्तर हैं, लेकिन मुझे अभी तक इसका उपयोग करने वाले किसी से भी मिलना नहीं है ... इसलिए आपका मिलन भिन्न हो सकता है।

छोटी तैनाती के लिए, ज्यादातर लोग अपनी सीमाओं के बावजूद एनएफएस का उपयोग करते हैं।

विभिन्न प्रकार के अन्य समाधान हैं - जिन क्लस्टर फ़ाइल सिस्टमों का मैंने ऊपर उल्लेख किया है, साथ ही एएफएस और अन्य - लेकिन इनमें से अधिकांश को आपके द्वारा वितरित किए गए कुछ वितरण पर चलने के लिए आपके हिस्से पर कुछ काम करने की आवश्यकता होगी। मैंने हाल ही में GlusterFS के बारे में अच्छी बातें सुनी हैं, इसलिए यदि मैं एक NFS विकल्प की तलाश कर रहा था, जो कि मैं पहली बार देखूं।


उन चीजों को साफ करने के लिए धन्यवाद। मेरे पास वास्तव में प्राधिकरण बनाम प्रमाणीकरण में एक अच्छी नींव है; मैं सॉफ्टवेयर के प्रत्येक टुकड़े की क्षमताओं के बारे में अनिश्चित हूं। भंडारण भाग भी महत्वपूर्ण है; क्या आप जानते हैं कि Kerberos / LDAP का सुरक्षा मॉडल NFS में कैसे जुड़ा है?
ब्रायन

मैंने NFS के बारे में कुछ जानकारी के साथ उत्तर को अपडेट किया है।
लार्क्स

इस मामले में मुझे कोई कारण नहीं दिखता है कि मैं एक एकल एनएफएस सर्वर तक सीमित रहूं, हालांकि एक पर्याप्त हो सकता है, और बाद में और जोड़ा जा सकता है। help.ubuntu.com/community/AutofsLDAP
84104

मैंने उस ऑटोफैडएलएपी गाइड के साथ-साथ अन्य के माध्यम से जाने की कोशिश की है। यह या तो खराब लिखा गया है या पुराना है, क्योंकि मेरे परिणाम अलग हैं, और मैं एक निश्चित बिंदु से आगे नहीं बढ़ सकता। :(
ब्रायन

आप उपयुक्त विवरण के साथ एक नया प्रश्न खोल सकते हैं।
लार्क्स

0

यह आंशिक उत्तर है।

एनआईएस / एनआईएस +
एनआईएस का उपयोग न करें। Nis स्कीमा के साथ LDAP का उपयोग करें।

OpenLDAP (उबंटू पर उर्फ ​​थप्पड़)
उचित ACLs और SSF (सुरक्षा शक्ति कारक) सेटअप करना सुनिश्चित करें।
यदि आप सावधान नहीं हैं तो स्पष्ट में पासवर्ड भेजना बहुत आसान है।
http://www.openldap.org/doc/

एनएफएस
एनएफएस एनक्रिप्टेड नहीं है।
इसे कुछ छल के साथ ssl में लपेटा जा सकता है।
बिना Kerberos ऑर्ट के लिए ip_addr पर निर्भर है।
करबरोस के साथ यह संभव है कि सब कुछ एन्क्रिप्ट करने के लिए एसएएसएल का उपयोग किया जाए।

Kerberos
को LDLD प्रमाणीकरण के लिए SASL पास-थ्रू प्रमाणीकरण के लिए OpenLDAP की आवश्यकता होती है। (मुश्किल नहीं है।)
डीएनएस प्रविष्टियों का उपयोग करना चाहिए। (आवश्यक नहीं है, लेकिन बहुत उपयोगी है)।
SSS- की के बजाय GSSAPI का उपयोग किया जा सकता है। (सह-अस्तित्व में हो सकता है।)
केडीसी मशीनें आपके ग्राहक मशीनों से अलग होनी चाहिए।

OpenAFS
डेस के साथ एन्क्रिप्टेड। (सुरक्षित नहीं माना जाता है।)
या तो केर्बरोस की आवश्यकता है या यह स्वयं की विरासत पर्यवेक्षक है।
क्या यह फ़ाइल सिस्टम ACL है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.