Como configurar um servidor de FTP no CentOS Linux – Parte 2

10 Comentários

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”.

ftp_000

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:

ftp_01

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).

ftp_02

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

ftp_03

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

ftp_06

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

ftp_07

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

ftp_08

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.

Partilhar:
Tags:

Comentários

10

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Jean
    Jean

    show, agora completo!

  2. Avatar de Apaxe
  3. Avatar de @lmx
    @lmx

    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

    1. Avatar de Pedro Pinto

      Sem duvida…“milhentas” possiblidades. 🙂

  4. Avatar de Victor P.
    Victor P.

    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.

  5. Avatar de rm_dragao
    rm_dragao

    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!

  6. Avatar de Pedro
    Pedro

    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!

    1. Avatar de Pedro Pinto

      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

  7. Avatar de Fernando
    Fernando

    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