¿Por qué vsftpd no me permite iniciar sesión con una cuenta de usuario virtual?

¿Por qué vsftpd no me permite iniciar sesión con una cuenta de usuario virtual?

Me gustaría usar vsftpd con usuarios virtuales y pam_pwdfile.so. Instalé vsftpd y agregué dos usuarios (ramon y dragon) a través de htpasswd a mi archivo /etc/vsftpd.passwd. El /etc/pam.d/vsftpd está configurado para usar este archivo.

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

El usuario "ramon" también está disponible en formato /etc/passwd. Un inicio de sesión en ftp con el usuario "ramon" funciona como se esperaba. Pero iniciar sesión usando "dragon" no :/ El resultado siempre es

Login failed: 530 Login incorrect.

Como es posible que haya cometido un error, intenté exactamente la forma documentada en /usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README. Todavía no hubo suerte. Puedo iniciar sesión con el usuario "ramon", pero no con el usuario "dragon".

¿Algunas ideas?

Respuesta1

Tuve el mismo problema, peroeste hiloayudó.

Aparentemente vsftpd tiene problemas con los hashes MD5. Cuando le pedí a htpasswd que usara crypt() (la opción -d), de repente funcionó:

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

Respuesta2

Utilice a continuación para configurar.

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

Probé esto en mi configuración y funciona como se esperaba.

Respuesta3

Agregar la opción -d a htpasswd funcionó en mi configuración de Rackspace/Ubuntu: htpasswd -c -d passwd username.

Respuesta4

Instalar:

apt install vsftpd libpam-pwdfile

Hacer usuario:

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

Editar/Crear archivos:

# /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

información relacionada