Al mover una configuración vsftpd probada y verdadera a un nuevo servidor con Fedora 16, me encontré con un problema. Todo parece ir como debería, pero la autenticación del usuario falla. No puedo encontrar ninguna entrada en ningún registro que indique lo que sucedió.
Aquí está el archivo de configuración completo:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=0
data_connection_timeout=0
nopriv_user=ftpsecure
connect_from_port_20=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
FTP me desafía por un nombre de usuario y contraseña, los proporciono, Inicio de sesión incorrecto. He verificado que este usuario puede iniciar sesión desde ssh. Algo está mal con pam_service
.
Anónimo (si se cambia a permitido) parece funcionar bien.
SELinux está deshabilitado.
Ftpsecure parece estar bien configurado... ¡Estoy completamente perdido!
Aquí están los archivos de registro que examiné sin éxito:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Encontré algo en /var/log/audit/audit.log
:
type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed'
Tal vez debería mirar /var/log/wtf-is-wrong.help
🙂
Más información:
/etc/pam.d/vsftpd se ve así:
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
Respuesta aceptada:
Uf. Resolví el problema. Equivale a una configuración pero dentro de /etc/pam.d/vsftpd
Debido a que las sesiones ssh tuvieron éxito mientras que las sesiones ftp fallaron, fui a
/etc/pam.d/vsftpd, eliminó todo lo que estaba allí y en su lugar colocó el contenido de ./sshd para que coincida con las reglas de forma precisa. ¡Todo funcionó!
Por método de eliminación, descubrí que la línea ofensiva era:
auth required pam_shells.so
Eliminarlo me permite continuar.
Resulta que "pam_shells es un módulo PAM que solo permite el acceso al sistema si el shell del usuario aparece en /etc/shells". Miré allí y efectivamente, sin bash, sin nada. En mi opinión, este es un error en la configuración de vsftpd, ya que en ninguna parte de la documentación aparece editando /etc/shells. Por lo tanto, la instalación y las instrucciones predeterminadas no funcionan como se indica.
Buscaré dónde puedo enviar el error ahora.