vsftpd pam प्रमाणीकरण विफल रहता है


13

फेडोरा 16 के साथ एक नए सर्वर पर ट्रू-एंड-सच vsftpd कॉन्फ़िगरेशन को स्थानांतरित करना, मैं एक समस्या में भाग गया। ऐसा लगता है जैसे सभी को जाना चाहिए, लेकिन उपयोगकर्ता प्रमाणीकरण विफल रहता है। मुझे किसी भी लॉग में कोई प्रविष्टि नहीं मिल सकती है जो इंगित करता है कि क्या हुआ।

यहाँ पूर्ण विन्यास फाइल है:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=0
data_connection_timeout=0
nopriv_user=ftpsecure
connect_from_port_20=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

एफ़टीपी मुझे एक उपयोगकर्ता नाम और पासवर्ड के लिए चुनौती देता है, मैं उन्हें प्रदान करता हूं, लॉगिन गलत। मैंने सत्यापित किया है, यह उपयोगकर्ता ssh से लॉगिन करने में सक्षम है। कुछ के साथ खराब कर दिया है pam_service

बेनामी (अगर अनुमति के लिए बदल दिया गया है) अच्छी तरह से काम करने लगता है।

SELinux अक्षम है।

Ftpsecure ठीक से कॉन्फ़िगर होना प्रतीत होता है ... मैं पूरी तरह से नुकसान में हूं!

यहां वे लॉग फाइलें हैं जिनकी मैंने बिना किसी सफलता के जांच की:

/var/log/messages
/var/log/xferlog      #empty
/var/log/vsftpd.log   #empty
/var/log/secure

इसमें कुछ मिला /var/log/audit/audit.log:

type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed'

शायद मुझे /var/log/wtf-is-wrong.help :-) देखना चाहिए

आगे की जानकारी:

/etc/pam.d/vsftpd इस तरह दिखता है:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

1
PAM कॉन्फ़िगरेशन क्या है ( /etc/pam.d/vsftpd, मुझे लगता है)?
गाइल्स का SO- बुराई होना बंद '

कोशिश करो /var/log/syslogया dmesg
हेल्लो 71

pam config: सत्र वैकल्पिक pam_keyinit.so बल निरस्त करना आवश्यक आवश्यक pam_listfile.so आइटम = उपयोगकर्ता का अर्थ = इनकार फ़ाइल = / etc / vsftpd / ftpusers onerr = सफल सामान्य आवश्यक pam_shells.so नीति में पासवर्ड-नीति खाता शामिल हैं पासवर्ड-नियम सत्र आवश्यक pam_loginuidu शामिल हैं .so सेशन में पासवर्ड-
ऑर्टिकल

जवाबों:


24

वाह। मैंने समस्या हल कर दी। यह एक कॉन्फिगर की मात्रा पर /etc/pam.d/vsftpd के भीतर है

क्योंकि ssh सत्र सफल रहा जबकि ftp सत्र विफल रहा, मैं गया

/etc/pam.d/vsftpd, वहां मौजूद सभी चीजों को हटा दिया और इसके बजाय नियमों को ठीक से मिलान करने के लिए ./sshd की सामग्री को रखा। सभी ने काम किया!

उन्मूलन की विधि से, मैंने पाया कि अपमानजनक रेखा थी:

    auth       required     pam_shells.so

इसे हटाने से मुझे आगे बढ़ने की अनुमति मिलती है।

ट्यून्स आउट, "pam_shells एक PAM मॉड्यूल है जो केवल सिस्टम तक पहुंच की अनुमति देता है यदि उपयोगकर्ता शेल / etc / गोले में सूचीबद्ध है।" मैंने वहां देखा और निश्चित रूप से पर्याप्त, कोई बैश नहीं, कुछ भी नहीं। यह मेरी राय में vsftpd विन्यास में एक बग है क्योंकि प्रलेखन में कहीं भी यह आपके पास संपादन / आदि / गोले नहीं है। इस प्रकार डिफ़ॉल्ट स्थापना और निर्देश के अनुसार काम नहीं करता है।

मैं ढूंढता हूँ कि मैं अब बग को कहाँ प्रस्तुत कर सकता हूँ।


/ etc / गोले में आमतौर पर स्वीकार्य गोले की सूची शामिल होती है। यह कुछ अलग उप-प्रणालियों द्वारा उपयोग किया जाता है और सही होने की उम्मीद है। यह फ़ाइल vsftpd द्वारा बनाई या बनाए नहीं रखी गई है, बल्कि आपके distro के कोर सेटअप द्वारा बनाई गई है। तो यह एक vsftpd बग नहीं है, यह आपके कंप्यूटर के सेटअप के साथ एक बग है।
टायलरल

भगवान का शुक्रिया! मुझे यह देखना चाहिए कि उपयोगकर्ता लॉग इन करने में असमर्थ / उपयोगकर्ता शेल के रूप में sbin / nologin ...
mveroone

आपको बहुत - बहुत धन्यवाद! /etc/shellsइस विचित्र व्यवहार परिवर्तन का कारण खोजने में आपकी टिप्पणी ने मेरी मदद की। एफ़टीपी-उपयोगकर्ता के साथ बनाया गया था Shell: /sbin/nologinऔर /sbin/nologinइसे हटा दिया गया था /etc/shells। इसलिए मैंने लाइनें जोड़ीं /sbin/nologinऔर /usr/sbin/nologinजिससे auth required pam_shells.soकाम भी बना ।
बोडो ह्यूगो बारविच

4

मैं ubuntu का उपयोग कर रहा हूँ और एक ही मुद्दा था

उपाय:

add-shell /sbin/nologin
sudo usermod -s /sbin/nologin ftpme
sudo vi /etc/pam.d/vsftpd

फिर टिप्पणी करें और निम्नानुसार लाइनें जोड़ें

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/ftpusers  onerr=succeed
auth       required     pam_shells.so
#auth       include      password-auth
#account    include      password-auth
#session    required     pam_loginuid.so
#session    include      password-auth
@include common-auth
@include common-account
@include common-password
@include common-session

0

जैसा कि आपने अपने स्वयं के उत्तर में उल्लेख किया है, उपयोगकर्ता शेल को सूचीबद्ध किया जाना चाहिए /etc/shells। आप /sbin/nologinउपयोगकर्ता शेल के रूप में ssh को मना कर सकते हैं और pam कॉन्फ़िगरेशन को बदले बिना ftp की अनुमति दे सकते हैं:

usermod -s /sbin/nologin restricted_ftp_user

0

अगर vsftpd की एक त्रुटि के साथ विफल रहता है

vsftpd.service: नियंत्रण प्रक्रिया से बाहर, कोड = बाहर की स्थिति = 2

फिर एक और संभावना यह जांचने के लिए है कि pasv_addr_resolve=YESक्या /etc/vsftpd/vsftpd.confफ़ाइल में सेट है । यह DNS सर्वर के होस्टनाम को DNS के माध्यम से हल करने का कारण बनता है। यदि DNS हल नहीं करेगा, जैसे यदि आप नहीं कर सकते हैं ping yourhostname.example.com, तो आपको उस DNS रिज़ॉल्यूशन समस्या को ठीक करना होगा या उसमें सेट करना pasv_addr_resolve=NOहोगा /etc/vsftpd/vsftpd.confऔर इसे कम से कम vsftpd को बिना त्रुटि के शुरू करने देना चाहिए।


0

मैं भी उसी अजीब व्यवहार में भाग गया, जहां एफ़टीपी-उपयोगकर्ता के साथ कॉन्फ़िगर किया गया था

# finger <user>
Login: <user>                   Name: 
Directory: /home/user-dir           Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.

एक सिस्टम पर लॉग इन करने में सक्षम है और दूसरे पर नहीं।

@KateYoak के उत्तर के संदर्भ में यह पता चला कि /etc/shellsफ़ाइल अलग थी और इसमें /sbin/nologinशेल शामिल नहीं था । जिसमें PAM प्रमाणीकरण किया गया/etc/pam.d/vsftpd

auth       required     pam_shells.so

विफल

/etc/shellsफ़ाइल को गायब लाइनों में जोड़कर

/sbin/nologin
/usr/sbin/nologin

/etc/pam.d/vsftpdकाम में जाँच करें ।

तो एक कार्यशील /etc/shellsफ़ाइल होनी चाहिए:

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

0

मेरे मामले में मैंने /etc/pam.d/vsftpd config फाइल में ऑर्टिकल लाइन को टिप्पणी के लिए चुना

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/f$
#auth       required    pam_shells.so
auth       include  password-auth
account    include  password-auth
session    required     pam_loginuid.so
session    include  password-auth

यहाँ आप कारण हैं। यदि आप शेल सिस्टम के रूप में / sbin / nologin जोड़ते हैं , तो आप संभवतः अपने सिस्टम में अवांछित पिछले दरवाजे खोल सकते हैं। इसके बजाय, इस फ़ाइल को बदलना निश्चित रूप से आप केवल vsftpd को प्रभावित करता है ।

मुझे नहीं पता कि sshd जैसी कोई अन्य प्रक्रिया सिस्टम शेल के लिए दिखती है, लेकिन मुझे लगता है कि pam.d फ़ाइल बदलना दूसरों की तुलना में बेहतर समाधान है।


-2

परिवर्तन करने से पहले कॉन्फ़िगरेशन फ़ाइल का बैकअप लें;

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back

और फिर vsftpd.conf (vi या नैनो के साथ) संपादित करें

nano /etc/vsftpd.conf

फिर निम्नलिखित परिवर्तन करें

pam_service_name=ftp

अपना परिवर्तन सहेजें और FTP सर्वर को पुनरारंभ करें (यदि आप नैनो हिट CTRL + O का उपयोग करते हैं और सहेजने के लिए दर्ज करें तो बाहर निकलने के लिए CTRL + X)

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