vsftpd MD5 ile şifrelenmiş şifreleri kabul etmeyecektir


10

Sanal kullanıcıların alanlarına erişmesine izin vermek için vsftpd ile bir sunucu kuruyorum. Şimdi tamamen çalışıyor ama sadece CRYPT şifreleriyle. Yani

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

giriş yapmama izin vermiyor, ama

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

niyet.

/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

PHP'nin yanı sıra apache2.4.3'ü de kaynaktan yükledim.

Denediğim şeyler:

  • Google çok
  • Kriptoyu ayarla = 2
  • arkadaşlarına sor
  • SHA kullan (ikisi de çalışmıyor)
  • htpasswd ve vsftpd'yi güncelle

Bir haftadır bununla mücadele ediyorum, umarım sizler bana daha fazla yardımcı olabilirsiniz


1
Hangi işletim sistemini kullanıyorsunuz? Linux'ta varsayılan varsayılan, -d ile aynı olan crypt'dir.
user9517

tamlık uğruna, -mMD5 tabanlı apache tarzı karma ( $apr1$salt$hash)
bonsaiviking

Yanıtlar:


13

htpasswdbaşladıklarını görerek doğrulayabileceğiniz Apache biçiminde MD5 karmaları oluşturur $apr1$, ancak PAM yalnızca platformunuzun uyguladığı biçimleri destekler crypt(3). Glibc için, eşdeğer (MD5 tabanlı) olacaktır $1$. Sadece farklı bir araçla şifreleri oluşturmanız gerekir. İşte bir örnek:

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

Bu karmayı ftpd.passwddosya username:hashbiçiminde kopyalayabilirsiniz ve çalışması gerekir.


Bu konuda bana yardım ettiğin için çok teşekkür ederim! İşe yaradı! pam desteği apache'nin md5 sürümünü yapabilir miyim?
Marco

Pam_pwdfile koduna baktığınızda, desteği yazmanız ve yeniden derlemeniz gerekir. Hatta $1$MD5 cryptilkeline kadar MD5 şifre karmasının tam bir uygulamasını içerir , bu yüzden tam olarak farkında değildir .
bonsaiviking

6

@ Bonsaiviking'in cevabına genişleyerek, openssl md5 şifresini oluşturabilir ve htpasswd'nin toplu mod -b ve düz metin -p seçeneklerini kullanarak bir satırda ftpd.passwd dosyasına ekleyebilirsiniz:

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

Yukarıdaki örnek (Ubuntu), -c kullanılarak yoksa yeni bir ftpd.passwd dosyası da oluşturur.


htpasswd çıktıları: "Uyarı: şifreleri düz metin olarak saklamak bu platformda çalışmayabilir." Sanırım bunun bir plan metni olduğunu düşünüyor , ama aslında openssl tarafından üretilen karma. Vsftp ile çalışan şifreler oluşturmak için bu yaklaşımı kullanın.
Svetoslav Marinov

Doğru, htpasswd, MD5 karma değerini düz metin dizesi olarak geçirdiğiniz b / c uyarısını oluşturabilir.
jnolan517

Buna dayanarak bunu yapmak için senaryo hazırlandı
bshea

1

Gösterdiğiniz iki komut eşdeğerdir, çünkü -dseçenek htpasswd'ye çoğu işletim sistemi için varsayılan olan crypt'i kullanmasını söyler .

Eğer md5 ile şifreleri karma istiyorsanız o zaman kullanmalısınız -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.

Bu da testin şifresinin md5 kullanılarak şifrelenmiş olduğunu gösterir.


Htpasswd'nin farklı bir sürümünü kullanıyor olmalı, çünkü olsun ve olmasın farklı sonuçlar alıyor -d.
bonsaiviking

Belirtildiği gibi bu vsftp ile ÇALIŞMAZ - apache tarzı md5 üretir. yukarıdaki gibi ^ serverfault.com/a/450220/92023
bshea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.