Na sequência do artigo de ontem “Como configurar um servidor de FTP no CentOS Linux”, um leitor questionou se havia a possibilidade de usarmos outros utilizadores que não os locais. Basicamente a ideia era criar um ficheiro com indicação do utilizador e respectiva password e o serviço de FTP autenticar com base na informação desse ficheiro.
Para configurar este tipo de funcionalidade, o vsftpd permite a criação de “utilizadores virtuais”.
Pessoalmente considero que as distribuições GNU/Linux têm as características perfeitas para implementar serviços de rede. As configurações dos serviços são normalmente realizadas em ficheiros, podemos gerir/controlar facilmente qualquer serviço remotamente usando por exemplo SSH e o backups das configurações é também algo simples de implementar.Hoje vamos ensinar como criar utilizadores virtuais para autenticar no servido de FTP, mais concretamente no vsftpd.
Como criar utilizadores virtuais no vsftpd?
Por omissão, o CentOS já traz o pacotes necessários para que seja possível a autenticação de utilizadores virtuais via pam_userdb. Para verificarem se o servidor se encontra com suporte para este tipo de autenticação, usem o comando:
yum info db4-utils
O output deverá ser algo do género:
Caso o pacote não esteja instalado, podem usar o comando:
yum install db4-utils
O próximo passo é criar os utilizadores virtuais. Para isso vamos criar um ficheiro .txt (para este exemplo vamos criar o ficheiro utilizadores_virtuais.txt) com essa informação dentro do directório /etc/vsftpd e colocamos o utilizador numa linha e a password em outra (na imagem seguinte, podemos ver como criar dois utilizadores).
Vamos agora criar a base de dados de utilizadores com base no ficheiro .txt com a informação dos utilizadores. Para criar a base de dados, devem executar o seguinte comando:
db_load -T -t hash -f /etc/vsftpd/utilizadores_virtuais.txt /etc/vsftpd/utilizadores_virtuais.db
O próximo passo é criar um ficheiro PAM (Pluggable Authentication Modules) para invocarmos a base de dados na autenticação de utilizadores no serviço vsftpd. Para isso vamos criar um ficheiro vsftpd-virtual
nano –w etc/pam.d/vsftpd-virtual
e inserir a seguinte informação:
auth required pam_userdb.so db=/etc/vsftpd/utilizadores_virtuais
account required pam_userdb.so db=/etc/vsftpd/utilizadores_virtuais
Depois de realizarmos as configurações anteriores, vamos proceder à configuração do serviço propriamente dito. Para isso abrimos o ficheiro /etc/vsftpd/vsftpd.conf e definimos os seguintes parâmetros:
# Configuração de utilizadores virtuais
anonymous_enable=NO
guest_enable=YES
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/ftp/$USER
chroot_local_user=YES
pam_service_name=vsftpd-virtual
Como as directorias dos utilizadores virtuais vão ficar em /var/ftp/ indicado no ficheiro de configuração do vsftp), vamos criar as directorias para os utilizadores e definir as respectivas permissões:
[root@localhost ftp]# mkdir pedro.pinto
[root@localhost ftp]# mkdir mpinto
[root@localhost ftp]# chown -R ftp:ftp /var/ftp/
Feitas as configurações basta iniciar ou reiniciar o serviço para começar a ser usado. Para iniciar o serviço basta executar o comando:
service vsftpd start
Caso pretenda reiniciar pode usar o comando:
service vsftpd restart
Como aceder ao FTP remotamente
Depois de instalado e configurado o serviço de FTP, o acesso pode ser realizado via um simples browser ou através de uma aplicação cliente para FTP (ex. FileZilla, fireFTP). Neste exemplo vamos usar o FileZilla.
Para aceder ao serviço de FTP remoto basta indicar:
- Anfitrião (IP/nome do servidor FTP
- Nome do utilizador e respectiva Palavra-Passe
Como podem ver na imagem anterior, o acesso foi realizado com sucesso e a estrutura da do directório do utilizador é apresentada do lado direito.
Esperamos que este tutorial seja útil e brevemente ensinaremos mais algumas configurações úteis.