Eu tenho um servidor VSFTPD baseado no CentOS 6, configurado para autenticar usuários virtuais em um servidor openLDAP. Eu posso acessar o servidor FTP, no entanto, os usuários autenticados não são redirecionados para o seu diretório home, mas para o diretório home do VSFTPD!
Note que o diretório pessoal de cada usuário está localizado em um local pseudo-aleatório, portanto, não posso usar um atributo como
user_config_dir=$USER
No entanto, no LDAP, o atributo homeDirectory contém o caminho completo do diretório pessoal do usuário. Exemplo:
uid:[email protected]
homeDirectory: /nfs/{RANDOM_storage_location}/{RANDOM_NUMBER}/{DOMAIN}u/s/e/usertest
Como posso configurar o vsftpd para usar o diretório pessoal de cada usuário?
Arquivos de configuração:
##Filename: pam_ldap.conf
base dc=example,dc=com
uri ldap://192.168.1.8:389
binddn cn=ftp,ou=read,ou=groups,dc=example,dc=com
bindpw secret
bind_timelimit 300
idle_timelimit 300
timelimit 300
O conf VSFTPD é:
Anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
# Enable Virtual users
guest_enable=YES
virtual_use_local_privs=YES
chroot_local_user=YES
chroot_list_enable=NO
xferlog_enable=YES
log_ftp_protocol=YES
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
hide_ids=YES
Exemplo de conexão:
ftp
ftp> o 192.168.1.10
Connected to 192.168.1.10.
220-
220
Name (192.168.1.10:user): [email protected]
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
ftp> dir
Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||21725|).
150 Here comes the directory listing.
drwxr-xr-x 2 ftp ftp 4096 Feb 21 09:01 pub
226 Directory send OK.
Tags virtualization users ftp vsftpd openldap