Spostando una configurazione vsftpd collaudata su un nuovo server con Fedora 16, ho riscontrato un problema. Tutto sembra andare come dovrebbe, ma l'autenticazione dell'utente non riesce. Non riesco a trovare alcuna voce in nessun registro che indichi cosa è successo.
Ecco il file di configurazione 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 mi sfida per un nome utente e una password, li fornisco, Accesso errato. Ho verificato, questo utente è in grado di accedere da ssh. Qualcosa non ha funzionato con pam_service
.
Anonimo (se modificato in consentito) sembra funzionare bene.
SELinux è disabilitato.
Ftpsecure sembra essere configurato correttamente... Sono completamente perso!
Ecco i file di registro che ho esaminato senza successo:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Trovato qualcosa in /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'
Forse dovrei guardare /var/log/wtf-is-wrong.help
🙂
Ulteriori informazioni:
/etc/pam.d/vsftpd si presenta così:
#%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
Risposta accettata:
Accidenti. Ho risolto il problema. Si tratta di una configurazione ma all'interno di /etc/pam.d/vsftpd
Poiché le sessioni ssh sono riuscite mentre le sessioni ftp non sono riuscite, sono andato a
/etc/pam.d/vsftpd, ha rimosso tutto ciò che c'era e ha invece posizionato il contenuto di ./sshd in modo che corrisponda esattamente alle regole. Tutto ha funzionato!
Per metodo di eliminazione, ho scoperto che la linea incriminata era:
auth required pam_shells.so
La rimozione mi consente di procedere.
Si scopre che "pam_shells è un modulo PAM che consente l'accesso al sistema solo se la shell degli utenti è elencata in /etc/shells". Ho guardato lì e abbastanza sicuro, niente bash, niente di niente. Questo è un bug nella configurazione di vsftpd secondo me poiché da nessuna parte nella documentazione è necessario modificare /etc/shells. Pertanto, l'installazione e le istruzioni predefinite non funzionano come indicato.
Andrò a cercare dove posso inviare il bug ora.