Primeira etapa é instalar o vsftpd e db-utils (se ainda não estiver instalado):
$ sudo apt-get install vsftpd db-utils
Assim que a instalação do vsftpd estiver concluída, faça um backup do arquivo vsftpd.conf (original):
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back
Modifique o arquivo vsftpd.conf para que contenha apenas o conteúdo:
$ sudo apt-get install vsftpd db-utils
Assim que a instalação do vsftpd estiver concluída, faça um backup do arquivo vsftpd.conf:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back
Modifique o conteúdo do arquivo vsftpd.conf para que contenha apenas as linhas:
listen=YES anonymous_enable=NO local_enable=YES # Usuarios virtuais com os mesmos privilegios de usuarios locais virtual_use_local_privs=YES write_enable=YES # Nome do servico PAM (Pluggable Authentication Modules) - em /etc/pam.d/ pam_service_name=vsftpd.virtual # Ativa usuarios virtuais guest_enable=YES # Define o diretorio home para cada usuario virtual, baseado em um template: /home/{virtual}/$USER user_sub_token=$USER # usuario local (raiz), acima dos usuarios virtuais: vftpd - /home/vftp local_root=/home/vftp/$USER # Restringindo usuarios as suas respectivas pastas (home) chroot_local_user=YES allow_writeable_chroot=YES # Esconde informacoes do dono hide_ids=YES # Habilita o log /var/log/vsftpd.log xferlog_enable=YES
Agora vamos criar o banco de dados dos usuários virtuais do vsftpd. Para simplificar a manipulação vou criar dois usuários: joao e maria. Ambos serão armazenamos, inicialmente, em um arquivo texto e posteriormente convertidos em arquivo db4. O arquivo texto será organizado em linhas, primeiro o username e depois password. Os arquivos são mantidos no diretório /etc/vsftpd (será necessário criar esse diretório):
$ sudo mkdir /etc/vsftpd $ sudo vi users.txt
Coloque o seguinte conteúdo no arquivo users.txt:
joao joao123 maria maria456
Salve o arquivo e execute as instruções para: converter para formato db4; modificar o acesso ao arquivo:
$ db_load -T -t hash -f users.txt vsftpd-virtual-user.db $ chmod 600 vsftpd-virtual-user.db
Se for conveniente, remova o arquivo users.txt. Fique atento para a inclusão de novos usuários, caso deseje remover o arquivo texto.
Próxima etapa é criar o arquivo PAM e indicar que o repositório de usuários (db4):
$ sudo vi /etc/pam.d/vsftpd.virtual
Coloque o seguinte conteúdo no arquivo vsftpd.virtual:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user account required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user session required pam_loginuid.so
Agora é o momento de criar a estrutura de pastas no Linux, aonde os arquivos trafegados via FTP serão mantidos. Cada pasta será devidamente vinculada ao usuário, de acordo com as configurações realizadas previamente no vsftpd:
$ mkdir -p /home/vftp/{joao,maria}
Ajustar o dono e o grupo desses diretórios:
$ chown -R ftp:ftp /home/vftp
Repita os dois últimos comandos para cada novo usuário adicionado ao vsftpd.
Última etapa é reiniciar o serviço vsftpd:
$ service vsftpd restart
O teste pode ser via comando ftp do Linux, ou no Firefox via plugin FireFTP. Indique a url, o login (ex joao) e a senha (ex joao123).
Documentação utilizada como referência:
@edermag
No comments:
Post a Comment