O problema foi vários:
- Eu não tinha instalado
libpam0g-dev
antes de compilar o vsftpd. - No arquivo pam, não coloca a extensão do arquivo db.
Agora está resolvido.
Ubuntu 10.04 32 bits
vsftpd 2.3.4 instalado a partir de fontes
# cat vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
connect_from_port_20=YES
nopriv_user=ftp
chroot_local_user=YES
secure_chroot_dir=/usr/share/empty
ls_recurse_enable=YES
listen_port=1031
log_ftp_protocol=YES
syslog_enable=NO
vsftpd_log_file=/var/log/vsftpd.log
delete_failed_uploads=YES
user_config_dir=/etc/vsftpd/user_conf
anon_world_readable_only=NO
anon_other_write_enable=NO
no_anon_password=YES
force_dot_files=NO
guest_enable=YES
pam_service_name=vsftpd.virtual
virtual_use_local_privs=YES
# cat /etc/pam.d/vsftpd.virtual
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users.db
account required /lib/secutiry/pam_userdb.so db=/etc/vsftpd/virtual_users.db
Eu uso o db_load para criar um banco de dados simples com o seguinte comando:
db4.8_load -T -t hash -f logins /etc/vsftpd/virtual_users.db
Bem, eu posso entrar com o usuário do meu sistema e ele entra na pasta FTP.
Mas quando tento entrar com usuário virtual sempre aparece: 530 Login incorrect.
Eu testei com outro tutorial ( link ) que usa htpasswd
e libpam-pwdfile
, mas também não funciona.
Eu tentei ver os arquivos de log, mas não mostra nada. Fiz várias pesquisas com grep -i vsftpd /var/log/*
e grep -i pam /var/log/*
, mas não encontrei nenhuma pista.
O problema foi vários:
libpam0g-dev
antes de compilar o vsftpd. Agora está resolvido.