vsftpd एमडी 5 के साथ एन्क्रिप्टेड पासवर्ड स्वीकार नहीं करेगा


10

मैं वर्चुअल उपयोगकर्ताओं को उनके स्थान तक पहुंचने देने के लिए vsftpd के साथ एक सर्वर स्थापित कर रहा हूं। अब यह पूरी तरह से काम कर रहा है लेकिन केवल CRYPT पासवर्ड के साथ। इसलिए

sudo htpasswd -c /etc/vsftpd/ftpd.passwd phpmyadmin

मुझे लॉग इन करने की अनुमति नहीं देगा, लेकिन

sudo htpasswd -c -d /etc/vsftpd/ftpd.passwd phpmyadmin

मर्जी।

/etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/vhosts/$USER.universe.local
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd

/etc/pam.d/vsftpd

auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd crypt=2
account required pam_permit.so crypt=2

मैं apache2.4.3 स्रोत के साथ ही PHP से स्थापित किया।

चीजें जो मैंने कोशिश की हैं:

  • गूगल बहुत
  • क्रिप्ट = 2 सेट करें
  • दोस्तों से पूछो
  • SHA का उपयोग करें (या तो काम नहीं करता है)
  • htpasswd और vsftpd को अपडेट करें

मैं अब एक हफ्ते से इससे जूझ रहा हूं, मुझे उम्मीद है कि यू लोग आगे मेरी मदद कर सकते हैं


1
आप किस OS का उपयोग कर रहे हैं? लिनक्स में माना डिफ़ॉल्ट क्रिप्ट है, जो कि -d का उपयोग करने के समान है।
user9517

पूर्णता के लिए, -m$apr1$salt$hash
MD5-

जवाबों:


13

htpasswdअपाचे प्रारूप में एमडी 5 हैश उत्पन्न करता है, जिसे आप यह देखकर सत्यापित कर सकते हैं कि वे इसके साथ शुरू करते हैं $apr1$, लेकिन पीएएम केवल उन स्वरूपों का समर्थन करता है जो आपके प्लेटफॉर्म के कार्यान्वयन को crypt(3)लागू करते हैं। Glibc के लिए, समकक्ष (MD5- आधारित) होगा $1$। आपको बस एक अलग टूल के साथ पासवर्ड जेनरेट करना होगा। यहाँ एक उदाहरण है:

sh$ openssl passwd -1
Password: 
Verifying - Password: 
$1$vhzHvIYn$2Ro.R0WdLnxrWjHcs5RbA/

आप इस हैश को प्रारूप में अपनी ftpd.passwdफ़ाइल में कॉपी कर सकते हैं username:hash, और इसे काम करना चाहिए।


इसके लिए मेरी मदद करने के लिए बहुत बहुत धन्यवाद! इसने काम कर दिया! क्या मैं अपाचे के md5 संस्करण का समर्थन कर सकता हूं?
मार्को

Pam_pwdfile कोड को देखकर, ऐसा लगता है कि आपको समर्थन और recompile लिखना होगा। यहां तक ​​कि इसमें $1$MD5 पासवर्ड हैश का संपूर्ण क्रियान्वयन भी शामिल है, जो कि एमडी 5 आदिम के लिए नीचे है, इसलिए यह पूरी तरह से cryptसावधान नहीं है ।
बोन्साईवैकिंग

6

@ Bonsaiviking के उत्तर पर विस्तार से आप खुलता है md5 पासवर्ड उत्पन्न कर सकते हैं और इसे htpwd के बैच मोड -b का उपयोग करके एक पंक्ति में ftpd.passwd फ़ाइल में जोड़ सकते हैं, और इसके बाद प्लेनटेक्स्ट -p विकल्प चुन सकते हैं:

htpasswd -c -p -b ftpd.passwd *username* $(openssl passwd -1 -noverify *password*)

ऊपर उदाहरण (उबंटू) भी एक नया ftpd.passwd फ़ाइल बनाता है अगर यह -c का उपयोग करके मौजूद नहीं है


htpasswd आउटपुट: "चेतावनी: सादे पाठ के रूप में पासवर्ड संग्रहीत करना इस प्लेटफ़ॉर्म पर काम नहीं कर सकता है।" मुझे लगता है कि क्योंकि यह सोचता है कि यह वास्तव में एक योजना पाठ है, लेकिन वास्तव में यह ओपनशेल द्वारा उत्पन्न हैश है। पासवर्ड बनाने के लिए इस दृष्टिकोण का उपयोग करके vsftp के साथ काम किया।
स्वेतोस्लाव मारिनोव

राइट, htpasswd उस चेतावनी b / c को आपके एमडी 5 हैश को एक सादे टेक्स्ट स्ट्रिंग के रूप में जनरेट कर सकता है।
jnolan517

इसके आधार पर इसे करने के लिए स्क्रिप्ट बनाई गई है - यहाँ पकड़ो gist.github.com/bmatthewshea/53ed5148f09dfed50cebd10650ca551b
bshea

1

आपके द्वारा दिखाए जाने वाले दो आदेश समतुल्य हैं क्योंकि -dविकल्प क्रिप्ट का उपयोग करने के लिए htpasswd को बताता है जो अधिकांश ऑपरेटिंग सिस्टम के लिए डिफ़ॉल्ट है।

यदि आप पासवर्ड को md5 के साथ हैशड करना चाहते हैं तो आपको उपयोग करना चाहिए -m

sudo htpasswd -m /etc/vsftpd/vsftpd.passwd test
New password:
Re-type new password:
Adding password for user test
grep test /etc/vsftpd/vsftpd.passwd
test:$apr1$GTYtpKS1$Jyfgu42kDspxdJTPPzSOY.

जो दिखाता है कि md5 का उपयोग करके परीक्षण का पासवर्ड एन्क्रिप्ट किया गया है।


वह htpasswd के किसी भिन्न संस्करण का उपयोग कर रहा होगा, क्योंकि उसे अलग-अलग परिणाम मिलते हैं और उसके बिना -d
20

जैसा कि यह उल्लेख नहीं है vsftp के साथ काम नहीं करता है - यह अपाचे शैली md5 के उत्पन्न करता है। प्रति ऊपर ^ serverfault.com/a/450220/92023
bshea
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.