Movendo uma configuração testada e comprovada do vsftpd para um novo servidor com o Fedora 16, encontrei um problema. Tudo parece correr como deveria, mas a autenticação do usuário falha. Não consigo encontrar nenhuma entrada em nenhum log que indique o que aconteceu.
Aqui está o arquivo de configuração 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
O FTP me desafia por um nome de usuário e senha, eu os forneço, Login incorreto. Eu verifiquei, este usuário pode fazer login no ssh. Algo está errado pam_service
.
Anônimo (se alterado para permitido) parece funcionar bem.
O SELinux está desativado.
Ftpsecure parece estar bem configurado ... Estou com uma perda total!
Aqui estão os arquivos de log que examinei sem sucesso:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Encontrou algo em /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'
Talvez eu devesse olhar para /var/log/wtf-is-wrong.help
:-)
Mais informações:
/etc/pam.d/vsftpd é assim:
#%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
fonte
/etc/pam.d/vsftpd
eu acho)?/var/log/syslog
oudmesg
.Respostas:
Ufa. Eu resolvi o problema. Isso equivale a uma configuração, mas dentro de /etc/pam.d/vsftpd
Como as sessões ssh tiveram êxito enquanto as sessões ftp falharam, fui para
/etc/pam.d/vsftpd, removeu tudo o que estava lá e colocou o conteúdo de ./sshd para corresponder às regras com precisão. Tudo funcionou!
Pelo método de eliminação, descobri que a linha incorreta era:
Removê-lo permite-me continuar.
Além disso, "pam_shells é um módulo PAM que somente permite acesso ao sistema se o shell do usuário estiver listado em / etc / shells." Eu olhei lá e com certeza, sem festança, sem nada. Este é um erro na configuração do vsftpd, na minha opinião, pois em nenhum lugar da documentação ele está editando o / etc / shells. Portanto, a instalação e as instruções padrão não funcionam como indicado.
Vou descobrir onde posso enviar o erro agora.
fonte
/etc/shells
me ajudou a encontrar o motivo dessa estranha mudança de comportamento. O usuário FTP foi criadoShell: /sbin/nologin
e/sbin/nologin
removido para/etc/shells
. Então eu adicionei as linhas/sbin/nologin
e o/usr/sbin/nologin
que deuauth required pam_shells.so
certo também.Estou usando o ubuntu e tive o mesmo problema
Solução:
Em seguida, comente e adicione linhas da seguinte maneira
fonte
Como você mencionou em sua própria resposta, o shell do usuário devem ser listados no
/etc/shells
. Você pode definir/sbin/nologin
como shell do usuário para proibir o ssh e permitir o ftp sem alterar a configuração do pam:fonte
Se o vsftpd falhar com um erro de
Outra possibilidade é verificar se
pasv_addr_resolve=YES
o/etc/vsftpd/vsftpd.conf
arquivo está definido . Isso faz com que o nome do host do servidor FTP seja resolvido via DNS. Se o DNS não resolver, como se você não puderping yourhostname.example.com
, será necessário corrigir o problema de resolução do DNS ou definirpasv_addr_resolve=NO
o/etc/vsftpd/vsftpd.conf
arquivo e deve pelo menos permitir que o vsftpd inicie sem o erro.fonte
Eu também tive o mesmo comportamento estranho em que um usuário de FTP configurado com
em um sistema é possível efetuar login e, por outro, não.
Em extensão à resposta de @KateYoak, o
/etc/shells
arquivo era diferente e não incluía o/sbin/nologin
shell. que fez a autenticação PAM em/etc/pam.d/vsftpd
falhou
Apenas adicionando ao
/etc/shells
arquivo as linhas ausenteso check-in
/etc/pam.d/vsftpd
funcionou.Portanto, um
/etc/shells
arquivo de trabalho deve ter:fonte
no meu caso, optei por comentar a linha de autenticação no arquivo de configuração /etc/pam.d/vsftpd
Aqui está o motivo. Se você adicionar / sbin / nologin como um sistema shell, provavelmente poderá abrir um backdoor indesejado no seu sistema. Em vez disso, alterar esse arquivo certamente afeta apenas o vsftpd .
Não sei se outro processo como o sshd procura por shells do sistema, mas acho que alterar o arquivo pam.d é uma solução melhor do que outros.
fonte
Faça backup do arquivo de configuração antes de fazer uma alteração;
e edite o vsftpd.conf (com vi ou nano)
Em seguida, faça a seguinte alteração
Salve suas alterações e reinicie o servidor ftp (se você usar nano, pressione CTRL + O e insira para salvar e CTRL + X para sair)
fonte