vsftpd congela após falha na autenticação pam_script

2

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 ...

    
por edziubudzik 17.02.2015 / 18:31

1 resposta

0

Eu normalmente testo minhas respostas, mas desta vez eu não, me perdoe.

Estou suspeitando que você não pode sair duas vezes. É provável que quando o ID coincidir com "asdf", você está parando o vsftpd sem perceber.

Especificamente, tente isso:

#!/bin/bash
echo "$PAM_USER" >> /home/me/pam_script.log

if [ "$PAM_USER" == "asdf" ]; then
  exit 0
else
  exit 1
fi
    
por 17.02.2015 / 18:47