Pam_krb5 में kerberos के माध्यम से विकलांग AD खातों तक पहुंच से कैसे इनकार करें?


10

मेरे पास एक छोटी समस्या के साथ एक काम करने वाला विज्ञापन / लिनक्स / एलडीएपी / केआरबी 5 निर्देशिका और प्रमाणीकरण सेटअप है। जब कोई खाता अक्षम किया जाता है, तो SSH publickey प्रमाणीकरण अभी भी उपयोगकर्ता लॉगिन की अनुमति देता है।

यह स्पष्ट है कि kerberos क्लाइंट एक अक्षम खाते की पहचान कर सकते हैं, क्योंकि kinit और kpasswd रिटर्न "ग्राहक क्रेडेंशियल्स को निरस्त कर दिया गया है" बिना किसी पासवर्ड / इंटरैक्शन के।

क्या PAM को कॉन्फ़िगर किया जा सकता है ("UsePAM Yes" sshd_config में) अक्षम खातों के लिए लॉगिन को हटाने के लिए, जहां प्रमाणीकरण publickey द्वारा किया जाता है? यह काम नहीं लगता है:

account     [default=bad success=ok user_unknown=ignore] pam_krb5.so

कृपया अपने उत्तर में winbind का परिचय न दें - हम इसका उपयोग नहीं करते हैं।

जवाबों:


4

मैंने अन्य लोगों से SSH के लिए "निश्चित" होने के लिए कहा है, ताकि लॉक किए गए खातों को SSH के माध्यम से लॉग इन नहीं किया जा सके। (देखें डेबियन बग 219377) यह अनुरोध एक पैच के रूप में खारिज कर दिया गया "क्योंकि यह उपयोगकर्ताओं से कुछ अपेक्षाओं को तोड़ता है [जो थे] पासवार्ड को लॉक करने के लिए इस्तेमाल किए गए थे।" (देखें डेबियन बग 389183) जैसे कुछ लोग पासवर्ड लॉगिन से खातों को लॉक करने में सक्षम होना चाहते हैं, लेकिन फिर भी SSH कुंजी का उपयोग करने की अनुमति देते हैं।

PAM उन खातों के लिए SSH कुंजी प्रमाणीकरण से इनकार नहीं करेगा, जो केवल लॉक किए गए हैं (उदाहरण के लिए अमान्य पासवर्ड प्रयासों के कारण, क्योंकि SSH कुंजी प्रमाणीकरण को पासवर्ड फ़ील्ड पर कोई ध्यान नहीं देने के लिए डिज़ाइन किया गया है, जहां आमतौर पर खातों को लॉक किया जाता है।)

मैं समझता हूं कि पासवर्ड हैश प्रविष्टि को pam_authenicate () समय पर जांचा जाता है, pam_acct_mgmt () समय पर नहीं। pam_unix.so pam_sm_acct_mgmt () पासवर्ड हैश की बिल्कुल भी जांच नहीं करता है, और pam_authenticate () सार्वजनिक कुंजी प्रमाणीकरण के दौरान नहीं कहा जाता है।

यदि आपका इरादा लॉग-इन करने से खातों को केंद्रीय रूप से अक्षम करने में सक्षम है, तो अन्य संभावित वर्कअराउंड शामिल हैं:

लॉगिन शेल को बदलना।

(re) उनकी अधिकृत_की फ़ाइल को स्थानांतरित करना।

एक्सेस से इनकार करने का एक और विकल्प sshd_config में DenyGroups या AllowGroups का कुछ उपयोग हो सकता है। (फिर उपयोगकर्ता को एक "sshdeny" समूह में जोड़ने, या उन्हें लॉग इन करने से अक्षम करने के लिए एक "sshlogin" समूह से निकाल दिया जाता है।) (यहां पढ़ें: https://help.ubuntu.com/8.04/serverguide/user-management .html )

Http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL I से मैंने पढ़ा: "समस्या pam_unix है जो छाया प्रवेश की केवल समाप्ति तिथियों की जांच करती है, पासवर्ड हैश फ़ील्ड सामग्री की नहीं।" यदि यह सही है, तो खाते को लॉक करने के बजाय उसे समाप्त करना होगा जो आपको चाहिए?

आपके प्रश्न का उत्तर संभवतः "हाँ, यदि आप उन्हें पासवर्ड क्षेत्र के अलावा कहीं और अक्षम कर रहे हैं"


4

कुछ और होमवर्क किया, और मेरे ही सवाल का जवाब दे रहा हूं।

RedHat के pam_krb5 ( pam_krb5-2.3.14-1/src/acct.c) में, जब तक कि मॉड्यूल ने प्रमाणीकरण चरण में भाग नहीं लिया, pam_sm_acct_mgmt () फ़ंक्शन या तो PAM_IGNORE या PAM_USER_UNKBOWN मॉड्यूल कॉन्फ़िगरेशन पर निर्भर करता है। इसलिए मुझे pam_krb5 कोड में बदलाव की आवश्यकता होगी जो मुझे चाहिए।

जॉनगह का जवाब एक अच्छा समाधान है; "प्रॉक्सी" विशेषताओं का उपयोग उसी अर्थ को व्यक्त करने के लिए किया जाता है, जैसे कि शेल को तोड़ना या "अक्षम-उपयोगकर्ता" समूह में जोड़ना।

एक अन्य वर्कअराउंड (आंशिक रूप से परीक्षण किया गया) अतीत में एक खाता समाप्ति की तारीख निर्धारित करने के लिए है, और खाता जांच विफल करने के लिए pam_unix जैसे एक मॉड्यूल का उपयोग करें। यह KRB5 के बजाय LDAP का उपयोग करता है, लेकिन समान रूप से प्रबंधित उपयोगकर्ता निर्देशिका के खिलाफ क्वेरी करता है।


2

SSH कुंजी आधारित प्रमाणीकरण PAM से स्वतंत्र है। आपके पास निम्नलिखित उपाय हैं:

  • sshd_config में कीबेड प्रमाणीकरण अक्षम करें
  • परिवर्तन करें और sshd को recompile करें और एक हुक जोड़ें ताकि कीबेड ऑर्ट भी चेक करेगा कि क्या खाता pam के माध्यम से मान्य है।

यदि आप kerberos के माध्यम से पासवर्ड रहित लॉगिन का उपयोग करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि:

  • आप sshd के लिए pam का उपयोग नहीं कर रहे हैं
  • आपके पास kerberos ठीक से कॉन्फ़िगर किया गया है। जैसे आप कर सकते हैंkinit -k host/server1.example.com@DOMAIN
  • आप sshd को gssapi का उपयोग करने के लिए कॉन्फ़िगर किया गया है:

    कर्बरोसेंथेनेशन हाँ जीएसएसएपीयूथेंटिकेशन हाँ

  • आप PuTTY v0.61 या नए जैसे kerberized ssh क्लाइंट का उपयोग करते हैं।


1
मैं असहमत हूं कि एसएसएच पब्लिक की कुंजी PAM से स्वतंत्र है। account optional pam_echo.so file=/etc/redhat-release/Etc/pam.d/sshd में जोड़ने से फ़ाइल की सामग्री के आधार पर कुंजीशब्द आधारित लॉगिन (इसे आज़माएं) का उपयोग करते हुए प्रिंट किया जा सकता है।
फिल

मुझे लगता है कि pam का उपयोग केवल खाते के लिए किया जाता है (उदाहरण के लिए होम फोल्डर बनाने के लिए) और नहीं। मैं अब इस मामले की जाँच कर रहा हूँ।
मिर्चे वुटकोविसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.