Por que o vsftpd não me permite fazer login com uma conta de usuário virtual?

Por que o vsftpd não me permite fazer login com uma conta de usuário virtual?

Eu gostaria de usar o vsftpd com usuários virtuais e pam_pwdfile.so. Instalei o vsftpd e adicionei dois usuários (ramon e dragon) via htpasswd ao meu arquivo /etc/vsftpd.passwd. O /etc/pam.d/vsftpd está configurado para usar este arquivo.

auth  required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth    required pam_pwdfile.so pwdfile /etc/vsftpd.passwd
account required pam_permit.so

@include common-account
@include common-session

O usuário "ramon" também está disponível em /etc/passwd. Um login no FTP com o usuário "ramon" funciona conforme o esperado. Mas um login usando "dragon" não :/ O resultado é sempre

Login failed: 530 Login incorrect.

Como é possível que eu tenha cometido um erro, tentei exatamente da maneira documentada em /usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README. Ainda sem sorte. Consigo fazer login com o usuário “ramon”, mas não com o usuário “dragon”.

Alguma ideia?

Responder1

Eu tive o mesmo problema, maseste tópicoajudou.

Aparentemente, o vsftpd tem problemas com hashes MD5. Quando instruí o htpasswd a usar crypt() (a opção -d), de repente funcionou:

sudo htpasswd -c -d -b /etc/ftpd.passwd twilight sparkle

Responder2

Use abaixo para configurar.

http://en.gentoo-wiki.com/wiki/Vsftpd#b.29_pam_pwdfile

Eu tentei isso na minha configuração e está funcionando conforme o esperado.

Responder3

Adicionar a opção -d ao htpasswd funcionou na minha configuração do Rackspace/Ubuntu: htpasswd -c -d passwd username.

Responder4

Instalar:

apt install vsftpd libpam-pwdfile

Tornar usuário:

useradd -N -s /bin/false -d /home/vsftpd vsftpd

Editar/criar arquivos:

# /apt/pam.d/vsftpd
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so

# /etc/vsftpd.conf
listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
nopriv_user=vsftpd
chroot_local_user=YES
pam_service_name=vsftpd
utf8_filesystem=YES
hide_ids=YES
user_config_dir=/etc/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
guest_username=vsftpd

# /etc/vsftpd/ftpd.passwd
# user names without passwords
# user name 'upload' has a password.
# if real password is 'MyPassword' then hash created with command:
# openssl passwd MyPassword
programming:
videos:
documents:
furnitures:
sound:
engineer:
games:
programs:
shits:
upload:X7nyBRuyuJVyg

# /etc/vsftpd_user_conf/documents
local_root=/media/nas/Έγγραφα

# /etc/vsftpd_user_conf/engineer
local_root=/media/nas/Μηχανικός
hide_file={/_unsorted_,/personal}

# /etc/vsftpd_user_conf/upload
local_root=/media/nas/downloads/FTP upload
download_enable=NO
write_enable=YES
allow_writeable_chroot=YES

informação relacionada