Por que o vsftpd não funciona quando pam_service_name = vsftpd?

5

Eu fiz uma configuração vsftpd no meu servidor doméstico. Recebi alguns erros de autenticação, então procurei neste fórum e obtive uma solução. Esta solução funcionou para mim

Como na solução. a configuração padrão

pam_service_name=vsftpd

não funciona e o servidor FTP não permite que eu faça o login.

e depois eu mudei para

pam_service_name=ftp

Funciona e eu posso logar como meu usuário local para o servidor FTP. Qual é a razão por trás disso? Por que o padrão não funciona? Estou aprendendo linux então sua boa explicação pode me ajudar muito

    
por Anbu 02.05.2015 / 18:39

3 respostas

3

Eu enfrentei o mesmo erro de autenticação com pam_service_name=vsftpd .

Seguindo o conselho on-line, não consegui descobrir por que configurar pam_service_name=ftp corrigiu o problema, então testei isso como pam_service_name=foobar e também resolvi o problema!

Aviso: Eu também sou novo no Linux, mas acredito que o conselho geralmente aceito para definir pam_service_name=ftp está errado .

pam_service_name=vsftpd seleciona o arquivo de configuração existente /etc/pam.d/vsftpd , porém pam_service_name=ftp procurará /etc/pam.d/ftp que não existe (pelo menos no meu sistema - Ubuntu 14.04.2 LTS). Eu suspeito que isso está realmente ignorando a autenticação PAM sem reclamar que não pode encontrar o arquivo.

Por não usar uma configuração válida do PAM, ela pode ser menos segura.

Solução final

Acabei mantendo pam_service_name=vsftpd e verifiquei se o shell do usuário existia no arquivo /etc/shells . link

Olhando para /etc/pam.d/vsftd

# Standard behaviour for ftpd(8).
auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required    pam_shells.so

Meu problema era que estava com falha na etapa auth required pam_shells.so . Eu fiz todos os meus usuários de FTP usarem o shell /usr/sbin/nologin que não existia no arquivo /etc/shells (não-ubuntu isso pode ser apenas /sbin/nologin ). Se você não tiver certeza, tente comentar o auth required pam_shells.so para ver se essa é a causa quando pam_service_name=vsftpd .

Nota: Outras leituras sugerem que é mais limpo criar usuários virtuais, mas isso requer uma configuração diferente do vsftpd e do PAM - link .

    
por Josef P. 02.05.2016 / 15:40
1

Para mim, o problema foi que criei a configuração do PAM ( /etc/pam.d/vsftpd ) em uma máquina Windows, resultando em \r\n finais de linha.

Depois de converter os finais de linha em estilo Linux (apenas \n ), a configuração do PAM começou a funcionar.

Eu também achei que o nome do serviço PAM estava errado, e tentei com pam_service_name=ftp em vez de pam_service_name=vsftpd , mas isso não ajudou em nada, e eu concordo com a avaliação de Josef P. de que esse não é o caminho para ir.

    
por Reto Höhener 07.02.2018 / 08:56
0

Em /etc/pam.d/vsftpd você pode especificar

auth required pam_nologin.so

para que os usuários cujo login seja desativado via / usr / sbin / nologin possam acessar apenas o sistema por meio do ftp.

Nota: Eu li que adicionar nologin a / etc / shells pode representar uma ameaça à segurança no Serverfault .

    
por dexin 13.12.2017 / 20:07