Como configurar um servidor de FTP no CentOS Linux – Parte 2
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.
Este artigo tem mais de um ano
super
show, agora completo!
Muito bom!
Boas…
Parabéns pelo artigo Pedro, de muita utilidade mesmo, so acrescento que também podem usar a consola com ftp ip por exemplo, ou o nautilus do gnome, entre “milhentas” possiblidades.
cmps
Sem duvida…“milhentas” possiblidades. 🙂
Boas… gostaria desde já de dar os parabéns a toda a equipa do pplware pelo seu trabalho
Tenho algumas duvidas e gostava de saber se me poderiam ajudar, tenho um servidor parado e estava a pensar em utiliza-lo para fazer um sistema de backups. Mas tou com dúvidas sobre qual o melhor SO para colocar no servidor e um programa para efectuar os backups, isto tudo open source :S
Se me podessem ajudar agradecia.
Boas,
Excelente artigo. Já agora gostaria de colocar esta questão: Como é que posso integrar um servidor de FTP deste tipo com uma Active Directory? Isto é: em vez de andar a criar ficheiros para validar utilizadores, usar um LDAP para esse efeito.
Obrigado. Continuem!
Boas!
Existem alguns erros neste artigo!
-Em primeiro, quando cria-mos o ficheiro PAM (“nano –w etc/pam.d/vsftpd-virtual”), o nome atribuido é “vsftpd-virtual”. Assim, é necessário editar o ficheiro “vsftpd.conf”, e alterar o parâmetro “pam_service_name=vsftpd” para “pam_service_name=vsftpd-virtual”.
– Os utilizadores devem ser criados em “/var/ftp/” e não em “/etc/ftp/”, porque o que está indicado no ficheiro de config é exactamente isso: “local_root=/var/ftp/$USER”.
-É recomendado que se desligue o login anonimo: “anonymous_enable=NO”.
Cumprimentos e bom trabalho!
Obrigado Pedro,
De facto estavam omitido o pam_service_name=vsftpd-virtual e explico, inicialmente esta a fazer a configuração no ficheiro etc/pam.d/vsftpd, no entanto, devido às directivas que já la estavam, o serviço não deixava autenticar. Criei um segundo ficheiro vsftpd-virtual mas esqueci-me de referir isso no tutorial.
Quanto ao anonymous_enable=NO, sim, convém que esteja assim por uma questão de segurança.
Obrigado pelas correcções.
PPinto
Olá,
Tentei configurar o servidor FTP. Tenho acesso normal, porém não consigo criar nenhuma pasta ou colar arquivos. Onde pode estar o problema? Mudei a pasta de /var/ftp/$user para /home/ftp/$user, será isso?
[]s