समूह के लिए PAM मॉड्यूल अक्षम करें


10

मैंने हाल ही में अपने SSH सर्वर पर Google-प्रमाणक का उपयोग करके दो-कारक-प्रमाणीकरण सक्षम किया है। हालाँकि मैं अब एक समस्या का सामना कर रहा हूँ:

मेरे सर्वर पर उपयोगकर्ताओं का एक अलग समूह है जिसे मैं SFTP के लिए उपयोग कर रहा हूं, लेकिन वह समूह अब लॉगिन करने में सक्षम नहीं है क्योंकि समूह में उपयोगकर्ताओं के लिए 2FA सेट नहीं है। क्या उस समूह के लिए Google-प्रमाणक मॉड्यूल को अक्षम करना संभव है? समूह में उपयोगकर्ताओं के लिए इसे सक्षम करना एक विकल्प नहीं है क्योंकि कई उपयोगकर्ता इस खाते का उपयोग करेंगे।

पुनश्च: मैं का उपयोग करें openssh-server


इस टिप्पणी में उत्तर दिया गया- आशा है कि यह askubuntu.com/a/1051973/846342
अभिमन्यु गर्ग

जवाबों:


13

अपने समूह के लिए इस भाग को छोड़ने pam_succeed_ifसे पहले आप मॉड्यूल (मैनुअल पेज देखें) का उपयोग कर सकते हैं pam_google_authenticator:

# the other authentication methods, such as @include common-auth
auth [success=1 default=ignore] pam_succeed_if.so user ingroup group
auth required pam_google_authenticator ...

2
इसकी [success=1 default=ignore]जगह शायद होना चाहिए required। अभी, उपयोगकर्ता समूह में नहीं है, जिससे प्रमाणीकरण विफल हो जाएगा, मुझे लगता है। success=1यह अगली विधि को छोड़ default=ignoreदेगा , इसका मतलब यह होगा कि समूह में उपयोगकर्ता केवल अगली विधि पर नहीं जाएंगे।
मुरु

@ मूरू हाँ, आप स्पष्ट रूप से सही हैं। अभी भी विवरण और PAM स्टैक के सभी जादू को
सीखना

क्या यह इस बात पर निर्भर है कि आपके पास / etc / ssh / sshd_config में कई "AuthenticationMethods" हैं? उपरोक्त पंक्ति के साथ, मुझे अभी भी 'अनुमति अस्वीकृत (कीबोर्ड-इंटरैक्टिव)' मिलता है
अरज

@ इसका अर्थ है कि आपके पास अलग-अलग कॉन्फ़िगरेशन है, इसलिए यह विशिष्ट उत्तर आपके लिए लागू नहीं होता है।
जकूजी

1

कुछ SFTP क्लाइंट 2FA संभाल सकते हैं। उदाहरण के लिए, मैं FileZilla और WinSCP के साथ 2FA का उपयोग कर रहा हूं और वे काम करते हैं। इसके अलावा मेरे पास सेटअप ssh- कुंजी प्रमाणीकरण है और यह 2FA के साथ काम करता है।

हालाँकि आपका प्रश्न दिलचस्प है और मैंने एक छोटा सर्वेक्षण किया। मुझे यह उत्तर मिला ।

इसलिए, अलग ssh इंस्टेंस चलाना संभव (और आसान) है। मैं पहले ही इसका परीक्षण कर चुका हूं।

  1. sshd_configफ़ाइल की अलग-अलग प्रतियां बनाएं ।

    $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_pwd
    $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_2fa
    
  2. इन नई configफ़ाइलों को संपादित करें । जिन चीजों में आपको बदलाव करना चाहिए उनमें से एक है shh port। उदाहरण के अनुसार:

    2. एक) sshd_config_pwdविशिष्ट लाइनें हैं:

    Port 1022
    ...
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    UsePAM no
    

    2. बी) sshd_config_2faविशिष्ट लाइनें हैं:

    Port 2022
    ...
    PasswordAuthentication no
    ChallengeResponseAuthentication yes
    UsePAM yes
    
  3. फ़ायरवॉल में आवश्यक पोर्ट खोलें। उदाहरण के अनुसार:

    $ sudo ufw limit 1022
    $ sudo ufw limit 2022
    
  4. नए ssh इंस्टेंस चलाएं:

    $ sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_pwd
    $ sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_2fa
    

बस।


यह सवाल का जवाब कैसे दे रहा है? आप sshd_configविभिन्न PAM स्टैक का उपयोग करने के लिए क्या संशोधित करते हैं और 2FA का उपयोग नहीं करते हैं?
जकूज़ी

@Jakuje मैंने अपना उत्तर अपडेट कर दिया है।
पा ४० --०

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

हां, यह सिर्फ एक संभव समाधान है, जो अभी भी अधूरा है, क्योंकि मुझे सिस्टम स्टार्टअप पर इन अलग ssh उदाहरणों को शुरू करने का सुरुचिपूर्ण तरीका नहीं पता है।
पा ०४०80०

0

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

फ़ाइल: /etc/pam.d/sshd

auth required pam_google_authenticator.so nullok
auth optional pam_succeed_if.so user ingroup sudo
auth optional pam_succeed_if.so user ingroup admin

फ़ाइल: /etc/ssh/sshd_config

AuthenticationMethods publickey,keyboard-interactive
UsePAM yes
ChallengeResponseAuthentication yes

परिणाम:

          |  Belongs to sudo or  |  Has 2FA Already Setup      |  Authentication Result
          |  admin group         |  in ~/.google_authenticator | 
----------+----------------------+-----------------------------+------------------------
User A    |          NO          |       NO                    | DENIED LOGIN UNTIL 2FA IS SETUP
User B    |          YES         |       NO                    | CAN LOGIN (PRIVATE/PUBLIC KEY USED)

User C    |          NO          |       YES                   | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)

User D    |          YES         |       YES                   | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)

Google प्रमाणक की README.md प्रलेखन के अनुसार :

nullok

PAM को मॉड्यूल से कम से कम एक SUCCESS उत्तर की आवश्यकता होती है, और nullok इस मॉड्यूल को IGNORE कहता है। इसका मतलब यह है कि यदि इस विकल्प का उपयोग कम से कम एक अन्य मॉड्यूल के लिए किया गया है तो SUCCESS ने कहा होगा। इसका एक तरीका यह है कि PAM कॉन्‍फ़िगरेशन के अंत में कई ज़रूरी pam_permit.so जोड़े जाएं।

इससे यहां का उपयोग nullokसुरक्षित हो जाता है।

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