शायद सटीक सवाल यह है कि पासवर्ड को अस्वीकार करने के लिए पैम को कैसे कॉन्फ़िगर किया जाए?
सही बात। आप पहले से ही इस तथ्य पर ठोकर खा चुके हैं कि सेटिंग UsePAM no
आमतौर पर बुरी सलाह है। न केवल यह PAM आधारित प्रमाणीकरण के किसी भी रूप को रोकता है, बल्कि यह निष्क्रिय account
और session
मॉड्यूल भी करता है । अभिगम नियंत्रण और सत्र विन्यास अच्छी चीजें हैं।
सबसे पहले, आवश्यकताओं की एक सूची बनाएँ:
- OTP के माध्यम से
pam_google_authenticator.so
। इसके लिए आवश्यक है UsePAM yes
और ChallengeResponseAuthentication yes
। आप उन्हें एक प्रमाणिकता के लिए प्रेरित कर रहे हैं, आखिर!
- PAM के माध्यम से पासवर्ड प्रमाणीकरण का कोई अन्य रूप नहीं। इसका मतलब है
auth
कि किसी भी मॉड्यूल को निष्क्रिय करना जो संभवतः पासवर्ड को keyboard-interactive
लॉगिन के माध्यम से प्रसारित करने की अनुमति दे सकता है । (जिसे हमें ओटीपी के लिए सक्षम छोड़ना होगा)
- कुंजी आधारित प्रमाणीकरण। हमें
publickey
प्रमाणीकरण की आवश्यकता है, और हो सकता है gssapi-with-mic
कि आपके पास केर्बरोस कॉन्फ़िगर हो।
आम तौर पर, एक मुख्य स्किम PAM आधारित प्रमाणीकरण के साथ पूरी तरह से प्रमाणीकरण। इसने हमें ओपनश के पुराने संस्करणों के साथ हमारे ट्रैक में रोक दिया होगा, लेकिन डेबियन 8 (जेसी) AuthenticationMethods
निर्देश का समर्थन करता है । यह हमें कई प्रमाणीकरण विधियों की आवश्यकता है, लेकिन केवल SSHv2 को लागू करने वाले ग्राहकों के साथ काम करता है।
sshd config
नीचे वे पंक्तियाँ हैं, जिनके लिए मैं सुझाव देता हूँ /etc/ssh/sshd_config
। सुनिश्चित करें कि आपके पास इस प्रणाली को एक्सेस करने का एक तरीका है, जब sshd
आप कुछ तोड़ते हैं तो इस प्रणाली को एक्सेस करने का कोई तरीका नहीं है!
# Require local root only
PermitRootLogin no
# Needed for OTP logins
ChallengeResponseAuthentication yes
UsePAM yes
# Not needed for OTP logins
PasswordAuthentication no
# Change to to "yes" if you need Kerberos. If you're unsure, this is a very safe "no".
GSSAPIAuthentication no
# Require an OTP be provided with key based logins
AuthenticationMethods publickey,keyboard-interactive
# Use this instead for Kerberos+pubkey, both with OTP
#
#AuthenticationMethods gssapi-with-mic,keyboard-interactive publickey,keyboard-interactive
sshd
एक बार इन परिवर्तनों को किए जाने के बाद पुनः लोड करना न भूलें ।
पैम विन्यास
हमें अभी भी PAM को कॉन्फ़िगर करना है। डेबियन 8 (आपके प्रश्न के अनुसार) की एक साफ स्थापना मानकर:
- टिप्पणी
@include common-auth
से /etc/pam.d/sshd
।
- समीक्षा करें
/etc/pam.d/sshd
और पुष्टि करें कि साथ शुरू होने वाली कोई रेखा auth
मौजूद नहीं है। यदि यह एक साफ स्थापित है, तो ऐसा नहीं होना चाहिए, लेकिन यह सुरक्षित होना सबसे अच्छा है।
- के
auth
लिए एक प्रविष्टि जोड़ें pam_google_authenticator.so
।
याद रखें कि स्थानीय पासवर्ड अभी भी काम करते हैं।
हमने कोई परिवर्तन नहीं किया जो स्थानीय कंसोल के माध्यम से लॉगिन को प्रभावित करेगा, या उपयोगकर्ताओं को पासवर्ड का उपयोग करने से रोकने के लिए अपने विशेषाधिकारों को अपग्रेड कर सकता है sudo.
। यह प्रश्न के दायरे से बाहर था। यदि आप चीजों को आगे ले जाने का निर्णय लेते हैं, तो याद रखें कि रूट को हमेशा पासवर्ड के माध्यम से स्थानीय रूप से लॉगिन करने की अनुमति दी जानी चाहिए। आप अपने आप को गलती से अन्यथा सिस्टम से बाहर रखने का जोखिम उठाते हैं।