Eu tenho um servidor Ubuntu 14.04 com vsftpd e pam_script instalado usando o apt-get. Eu configurei o vsftpd para usar pam_script para autenticação de usuário virtual e meu arquivo /etc/pam.d/vsftpd
tem esta aparência:
auth sufficient pam_script.so
account required pam_permit.so
O script pam_script_auth
é muito simples:
#!/bin/bash
echo "$PAM_USER" >> /home/me/pam_script.log
if [ "$PAM_USER" == "asdf" ]; then
exit 0
fi
exit 1
Confirmei que esse script é usado corretamente (ele registra o nome de usuário sempre que eu tento efetuar login no vsftpd).
Em teoria, isso deve permitir o acesso ao usuário asdf
, independentemente da senha, e proibi-la para qualquer outra pessoa. Mas o vsftpd congela toda vez que tento usar um nome de usuário diferente. Eu testo assim:
$ ftp localhost
Connected to ****
220 (vsFTPd 3.0.2)
Name (****:edziubudzik): [I type "asdf2"]
331 Please specify the password.
Password:
Depois de fornecer a senha, nada acontece e o vsftpd congela - ele não aceita nenhuma outra conexão até que eu a reinicie.
/var/log/vsftpd.log
apenas registra uma conexão de um endereço IP ( Tue Feb 17 15:50:01 2015 [pid 9517] CONNECT: Client [my IP address]"
) e os dois /var/log/auth.log
e /var/log/syslog
não são alterados durante esse teste.
No entanto, se eu alterar a primeira linha em /etc/pam.d/vsftpd
para auth required pam_deny.so
vsftp, o erro 530 Authentication Failed
será exibido corretamente em resposta a qualquer tentativa de autenticação.
Alguém tem alguma idéia do que pode estar acontecendo?
Editar : testei a mesma configuração de pam com su e ssh (substituindo /etc/pam.d/su
e /etc/pam.d/ssh
originais por /etc/pam.d/vsftpd
) e ambos funcionaram corretamente - permitido o usuário asdf
, independentemente da senha e não permitindo nenhum outro usuário. Nenhum desses processos foi interrompido quando meu script pam_script saiu com 1. Eu também confirmei que eles realmente usaram meu script registrando o nome de usuário e verificando se os métodos de autenticação originais (unix) pararam de funcionar (eles fizeram).
Parece que é o vsftpd que está tendo problemas com a falha na autenticação do pam_script. Ainda não faço ideia para uma correção ou solução alternativa ...