VsFTPd - pam_mkhomedir

1

Estou tentando configurar um servidor FTP que se autentica em um servidor LDAP. Esta parte é feita e funciona. Meu servidor é o VsFTPd no Ubuntu Server 11.04. Mas eu tenho que criar os diretórios home para meus usuários LDAP. Estou tentando usar o módulo pam_mkhomedir , mas ele não está funcionando: quando eu adiciono sua linha ao arquivo /etc/pam.d/vsftpd , meus usuários não podem mais efetuar login no servidor FTP. O problema é que tenho muito poucas informações sobre o que está errado. O VsFTPd apenas responde 530: login incorrect e eu não consegui encontrar uma maneira de obter mensagens de erro ou depuração do pam_mkhomedir.

Aqui estão meus arquivos de configuração diferentes. O arquivo /etc/pam.d/vsftpd :

auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth        required    pam_ldap.so
account     required    pam_ldap.so
password    required    pam_ldap.so
session     optional    pam_mkhomedir.so skel=/home/skel debug

O arquivo /etc/vsftpd.conf :

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
guest_enable=YES
session_support=YES
log_ftp_protocol=YES
tcp_wrappers=YES

Permissões em /home e /home/skel :

root@ftp:/home# ls -al
total 16
drwxrwxrwx  4 root     root     4096 2011-10-11 21:19 .
drwxr-xr-x 21 root     root     4096 2011-09-27 13:32 ..
drwxrwxrwx  2 root     root     4096 2011-10-11 19:34 skel
drwxrwxrwx  5 foo      foo      4096 2011-10-11 21:11 foo

root@ftp:/home# ls -al skel/
total 16
drwxrwxrwx 2 root root 4096 2011-10-11 19:34 .
drwxrwxrwx 4 root root 4096 2011-10-11 21:19 ..
-rwxrwxrwx 1 root root 3352 2011-10-11 19:34 .bashrc
-rwxrwxrwx 1 root root  675 2011-10-11 19:34 .profile

Sim, eu sei, as permissões não estão definidas corretamente, mas a segurança não é o problema aqui: primeiro preciso fazer com que funcione.

Então, para recapitular: sem pam_mkhomedir meus usuários LDAP podem fazer o login, mas eles não podem fazer nada porque estão em uma jaula vazia e chrooted. Se eu adicionar pam_mkhomedir, eles não poderão mais efetuar login. Se alguém tem uma ideia do porquê, ou sabe como obter mais informações dos logs, eu ficaria muito grato, obrigado.

    
por Totor 11.10.2011 / 21:56

3 respostas

3

Resposta simples - é necessário ativar o suporte à sessão no vsftpd.conf:

session_support=YES
    
por 21.11.2012 / 23:15
2
Talvez não seja diretamente relevante para o vsftpd, mas algo que eu encontrei com o SFTP é que o pam_mkhomedir.so cria o homedir de propriedade do usuário: group - naturalmente, mesmo se os arquivos skel pertencerem ao root. Mas chroot com SFTP quer root: root para possuir o homedir chroot por razões de segurança (com permissões 755). Mesmo com os arquivos skel de propriedade do root.

    
por 23.09.2012 / 02:57
1

Dê uma olhada em /var/log/audit.log , você verá algo assim:

type=USER_START msg=audit(1290252247.771:1669772): user pid=20068 uid=0 auid=0 msg='PAM: session open acct="quanta" : exe="/usr/sbin/vsftpd" (hostname=SVR040-763.localdomain, addr=127.0.0.1, terminal=ftp res=failed)'

Então, altere o /etc/pam.d/vsftpd para:

auth       sufficient   pam_ldap.so     
account    sufficient   pam_ldap.so
password   sufficient   pam_ldap.so     
session    sufficient   pam_ldap.so     
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022

e tente novamente.

Se você ainda receber os erros: "500 OOPS: não é possível localizar a entrada do usuário:" , "500 OOPS: não é possível alterar o diretório:" , sugiro que você use < a autodir em vez disso.

    
por 12.10.2011 / 05:31