vsftpd는 MD5로 암호화 된 비밀번호를 허용하지 않습니다


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

PHP와 소스에서 apache2.4.3을 설치했습니다.

내가 시도한 것 :

  • 구글 많이
  • crypt = 2로 설정
  • 친구에게 물어보세요
  • SHA 사용 (작동하지 않음)
  • htpasswd 및 vsftpd 업데이트

나는 지금 일주일 동안이 문제로 어려움을 겪고 있습니다.


1
어떤 OS를 사용하고 있습니까? Linux에서 가정 된 기본값은 crypt이며 -d를 사용하는 것과 같습니다.
user9517

완성도를 위해, -m생성 아파치 스타일의 해시 MD5 기반 ( $apr1$salt$hash)
bonsaiviking

답변:


13

htpasswd는 Apache 형식으로 MD5 해시를 생성합니다. Apache 형식은로 시작하여 확인할 수 $apr1$있지만 PAM은 플랫폼의 구현 구현 형식 만 지원합니다 crypt(3). Glibc의 경우 등가 (MD5 기반)는입니다 $1$. 다른 도구를 사용하여 비밀번호를 생성하면됩니다. 예를 들면 다음과 같습니다.

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

이 해시를 ftpd.passwd파일 username:hash형식 으로 복사하면 제대로 작동합니다.


도와 주셔서 감사합니다! 효과가 있었다! pam이 아파치의 md5 버전을 지원할 수 있습니까?
Marco

pam_pwdfile 코드를 살펴보면 지원을 작성하고 다시 컴파일 해야하는 것처럼 보입니다. $1$MD5 프리미티브까지 MD5 암호 해시 의 전체 구현을 포함하기 때문에 완전히 crypt인식 하지 못합니다 .
bonsaiviking

6

@bonsaiviking의 답변을 확장하면 다음과 같이 openssl md5 비밀번호를 생성하고 htpasswd의 배치 모드 -b 및 일반 텍스트 -p 옵션을 사용하여 한 줄로 ftpd.passwd 파일에 추가 할 수 있습니다.

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

위의 예제 (Ubuntu)는 또한 -c를 사용하여 존재하지 않는 경우 새 ftpd.passwd 파일을 만듭니다.


htpasswd 출력 : "경고 : 암호를 일반 텍스트로 저장하면이 플랫폼에서 작동하지 않을 수 있습니다." 그것은 실제로 계획 텍스트 라고 생각 하기 때문에 실제로는 openssl에 의해 생성 된 해시 라고 생각 합니다. 이 접근 방식을 사용하여 vsftp에서 작동하는 비밀번호를 생성했습니다.
Svetoslav Marinov

htpasswd는 MD5 해시를 일반 텍스트 문자열로 전달하여 경고를 생성 할 수 있습니다.
jnolan517

여기 잡아 - 제작 스크립트는이에 따라이 작업을 수행하는 gist.github.com/bmatthewshea/53ed5148f09dfed50cebd10650ca551b
bshea

1

-d옵션 이 대부분의 운영 체제에서 기본값 인 crypt를 사용하도록 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를 사용하거나 사용하지 않고 다른 결과를 얻으므로 다른 버전의 htpasswd를 사용해야합니다 -d.
bonsaiviking

언급했듯이 이것은 vsftp와 함께 작동하지 않습니다-아파치 스타일 md5를 생성합니다. 위의 ^ serverfault.com/a/450220/92023
bshea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.