Como montar um servidor FTP no Ubuntu

52 Comentários

Sou questionado algumas vezes se a instalação/configuração de um servidor FTP em Linux é fácil. Costumo responder que fácil não é…é super fácil. Normalmente instalo como servidor de FTP o vsftpd pela flexibilidade, segurança, simplicidade e rapidez que oferece. Hoje vamos aqui aprender como montar um servidor FTP potente.

ftp_2

Passo 1 – Instalar o vsftpd

sudo apt-get install vsftpd

Passo 2 – Configurações do serviço vsftpd

Por norma os ficheiros de configuração dos serviços encontram-se em /etc. No caso do vsftpd o ficheiro de configuração é /etc/vsftpd.conf

Vamos abrir o ficheiro e editar/rever algumas directivas:

sudo nano -w /etc/vsftpd.conf

Ficheiro vsftpd.conf

Desactivar o acesso “anónimo”.

anonymous_enable=NO

Permitir o acesso a utilizadores locais

local_enable=YES

Passo 3 – Adicionar uma Shell “fake”

Por forma a não permitir a autenticação dos utilizadores FTP via SSH ou login local vamos adicionar uma shell fake e assim limitar o acesso a esses utilizadores. Desta forma, as credenciais de um utilizador FTP apenas servem para se autenticar via FTP.

Vamos então abrir o ficheiro /etc/shells e adicionar a linha /bin/false

# /etc/shells: valid login shells
/bin/sh

/bin/bash

/bin/false

Passo 4 – Criar um utilizador (conta) FTP

Como já referido anteriormente, é importante que as credenciais de uma conta FTP apenas funcionam para autenticação via FTP. Neste passo vamos proceder ao seguinte:

  • Criar pasta do utilizador (ex. /home/ftp/ftpuser)
  • Criar utilizador, definir qual a sua directoria e associá-lo a shell “fake” (ex. user ftpuser)
  • Criar/mudar a password do utilizador (com o comando passwd)
sudo mkdir -p /home/ftp/ftpuser
sudo useradd ftpuser -d /home/ftp/ftpuser/ -s /bin/false

sudo passwd ftpuser

É também importante que o utilizador tenha permissões de escrita na sua pasta uma vez que a pasta criada ficou associada ao root. Para isso podemos simplesmente mudar o owner da pasta através do comando

sudo chown ftpuser  /home/ftp/ftpuser

Passo 5 – As configurações estão feitas, teremos apenas de reiniciar o serviço vsftpd através do comando:

sudo /etc/init.d/vsftpd restart

Coloquei entretanto 2 ficheiros na pasta /etc/vsftpd.conf para exemplificar o exemplo.

Nota: No ficheiro de configuração (/etc/vsftpd.conf) do serviço é possível especificar muitos parâmetros como por exemplo: o número de clientes, adicionar um banner, etc etc.

Como aceder ao FTP

Depois do serviço montado o acesso ao FTP pode ser realizado via um simples browser ou através de uma aplicação cliente para FTP (ex. filezzila, fireFTP). Neste exemplo vou usar o browser.

Colocamos então ftp://<IP_Servidor>

Não esquecer, que o <IP_Servidor> deve ser mudado pelo IP da máquina onde instalaram o vsftpd (No meu caso é o 192.168.193.13)

vsftpd1

Inserimos os dados de autenticação (criados no passo 4)

vsftpd2

E acedemos ao nosso servidor FPT. Agora basta colocar conteúdos e partilhar. É claro que as aplicações cliente FTP dão mais flexibilidade na gestão dos conteúdos, por isso basta por exemplo fazerem download do filezzila (FileZilla 3.3.2 RC2 – Um excelente cliente FTP)

vsftpd

Partilhar:
Tags:

Comentários

52

Deixe um comentário

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

  1. Avatar de Hélder Pinheiro

    Bom tutorial.
    Isso sim é um bom post.

  2. Avatar de António Mendes
    António Mendes

    Bom artigo, especialmente em que não conhecia esse software. Embora o artigo tenha alguns erros de edição, só queria apontar o primeiro, porque a palavra está incompleta: “Sou ‘questiona’ alguma vezes”.

    1. Avatar de Pedro Pinto
      1. Avatar de António Mendes
        António Mendes

        De gramática só li no passo 3, “Deste forma”.
        Alguns sítios davam jeito vírgulas, mas nada de outro mundo.
        Daí referir só o primeiro.

  3. Avatar de moedinha
    moedinha

    Espectáculo, muito obrigado.

  4. Avatar de Miguel Costa
    Miguel Costa

    Pedro,
    não sei como dizer isto….

    mas OBRIGADÍSSIMO!

    veio mesmo em boa altura 😀 estava mesmo mesmo a precisar disto.

  5. Avatar de Daniel
    Daniel

    Isto dá para aceder fora da rede privada? É preciso mais alguma configuração adicional?

    1. Avatar de Miguel.Machado
      Miguel.Machado

      Depende de como estas ligado a rede. A partida terás de configurar o router para reencaminhar o tráfego FTP para o teu PC.

      Cumps.

      1. Avatar de Pedro Pinto

        @Daniel,

        Podes sempre recorrer ao port forwarding. Todos os pedidos que cheguem ao teu router a porta 20 e 21.

        https://pplware.sitedev.pt/software/port-forwarding-jogos-aplicacoes-e-outros/

        1. Avatar de Daniel
          Daniel

          obrigado. Ja conhecia esse mecanismo, mas essa aplicação facilita bastante mais 😛

  6. Avatar de maurycio
    maurycio

    Obrigado! Boa dica
    No Ubuntu 10.04 ao tentar configurar o GADMIN-PROFTPD não consegui. Dá-me o mesmo erro que na versão 9.10.

    1. Avatar de Pedro Pinto
  7. Avatar de Psyco
  8. Avatar de Nuno Freire
    Nuno Freire

    Obrigado a tua dica está 5*
    Consegui á primeira

  9. Avatar de FilipeAntunes
    FilipeAntunes

    Podiam fazer um de DHCP tb 😀

  10. Avatar de monux
    monux

    – Meus cumprimentos também !
    – Muito bem explicado .
    – Parabéns

  11. Avatar de Notliz

    Caro PP ou todos, ainda debuntando no assunto, segui suas orientações no meu Ubt904, funcionou, porém obtive acesso direto a raiz e a todas os diretórios. Onde foi q errei?

    Help me!!!

    Obrigado.

    1. Avatar de Pedro Pinto

      hum, eu tive esse problema em tempo e era um bug que havia.
      Mas vamos por partes: como tem definido o directório do user criado no ficheiro /etc/passwd ?

      PPinto

      1. Avatar de Notliz

        Assim está PP:

        cat /etc/passwd

        ftpuser:x:1002:1004::/home/ftp/ftpuser:/bin/false

        ls -la /home/ftp/ftpuser
        total 8
        drwxr-xr-x 2 ftpuser root 4096 2010-03-25 14:48 .
        drwxr-xr-x 3 ftp nogroup 4096 2010-03-25 14:48 ..

        Obrigado pela atenção!

        1. Avatar de Pedro Pinto

          Parece-me tudo OK. Então a segunda questão é: verifique se dentro do ficheiros vsftpd.conf tens a directiva chroot_local_user=YES

          Aguardo resposta

          PPinto

          1. Avatar de Pedro Pinto

            Mais completo:
            # 1. Todos ficam “presos” por omissão:
            chroot_local_user=YES
            chroot_list_enable=NO

            # 2. Apenas alguns ficam “presos”:
            chroot_local_user=NO
            chroot_list_enable=YES
            # uma lista em /etc/vsftpd.chroot_list com os utilizadores que ficam presos.

            # 3. Apenas alguns são “livres”:
            chroot_local_user=YES
            chroot_list_enable=YES
            # Crie uma lista em /etc/vsftpd.chroot_list com os utilizadores que ficam livres.

          2. Avatar de Notliz

            Caro PP,

            Entendi suas instruções, fiz as devidas alterações e nada, deu no mesmo. Testei no Ubt910 e aconteceu o mesmo. Conituarei a ler sobre o assunto e qlqr novidade te aviso. Perdi a batalha mas não a guerra.
            Só + um detalhe, ambas versões do Ubt estão originais, ou seja, sem ups!

            +1x obrigado!

  12. Avatar de Miguel Costa (copituno)
    Miguel Costa (copituno)

    Oh Pedro, fiquei com uma dúvida.. que vídeo é esse da copituna?
    é do Oppidana 2010?

    reais saudações académicas.

      1. Avatar de Miguel Costa (copituno)
        Miguel Costa (copituno)

        😀

        eu sou da velha Guarda, mas é uma boa musica…

        se me permites recomendo uma das minha preferidas 😉

        http://palcoprincipal.sapo.pt/copituna/musica/cabulas_de_amor/guitarra_de_ilusoes

        cumprimentos e obrigado pela publicidade

  13. Avatar de Filipe YaBa Polido
    Filipe YaBa Polido

    OFFTOPIC:

    Alguém tem algum script que permita mover uma estrutura inteira entre 2 servidores FTP ?
    No o caso de mudança de hosting e tendo diversas pastas/contas.
    Qual a melhor solução para mover TUDO para o novo server? sem ter acesso shell aos servers (Linux)
    Vi alguns scripts em Perl e Python, mas deixam mt a desejar 😐
    thanks

    1. Avatar de António Mendes
      António Mendes

      Melhor mesmo era pores o fórum, onde é mais provável que te ajudem mais rapidademente.
      Quanto à tua dúvida, se não tens acesso à shell, como é suposto executares as scripts?

      1. Avatar de Filipe YaBa Polido
        Filipe YaBa Polido

        Numa terceira máquina 😐 nem que tenha que fazer o download para uma pasta temporária e depois o upload… em ultimo recurso, pode-se pedir a shell no server “receptor”.
        Thanks pela dica do fórum.

      1. Avatar de Filipe YaBa Polido
        Filipe YaBa Polido

        Faltou-te aí qq coisa não?!

  14. Avatar de Rui Comprido
    Rui Comprido

    Boa Noite,

    Usem Freenas, muito fixe mesmo, quer para casa,quer empresarial.

    Cumprimentos

  15. Avatar de GSilva
    GSilva

    Boas,

    Bom post, mas Pedro Pinto gostava de perguntar uma coisa,

    As configurações do modo passivo como são feitas?

    Obrigado

  16. Avatar de Noon_Ssibot
    Noon_Ssibot

    uma duvida, como é k configuro mais do que um directorio na mesma conta FTP.
    por exemplo.

    user Backup -> /home/backups/
    user ftpuser -> /media/hdd1/directorio
    user ftpuser -> /media/hdd2/directorio

    tenho 3 discos na maquina ubunto, e keria disperçar varias directorias por FTP. com varias contas.

  17. Avatar de Antonio Neto
    Antonio Neto

    Quando vou logar da erro 530 Login Incorrect.

    Mas está do jeito q cadastrei!

    Eu já tinha tentado instalar outro sistema, como faço pra ver qual ftp estou tentando usar?

  18. Avatar de Hélder Ribeiro
    Hélder Ribeiro

    Boas!

    Excelente tutor.

    Só uma dúvida. Não consigo adicionar os ficheiros a partilhar na pasta “ftpuser”
    Fiz alguma coisa errado?

    Cumprimentos

  19. Avatar de SG
    SG

    Olá estava a ver este post existe algo do género que auxilie a criar um servidor DNS por exemplo ou outros serviços?
    Sei que temos o ClearOS mas se possivel gostava de usar o Ubuntu.

    Cpts

  20. Avatar de Joao
    Joao

    ola amigos
    Ajudem-me a resolver este problema, sff
    Quero criar um servidor em LINUX para alojamento de Paginas Web.
    1º Pergunta: Que versão do linux recomendam para Servidor???
    2º Pergunta: Que programas devo instalar para o Servidor??

    Comprimentos

    1. Avatar de Pedro Pinto

      1º Pergunta: CentOS
      2º Pergunta: VSFTPD (por exemplo – tens aqui um exemplo no Ubuntu https://pplware.sitedev.pt/linux/como-montar-um-servidor-ftp-no-ubuntu/)

      1. Avatar de em
        em

        Boas só um perguntinha, eu consigo fazer o servidor mas apenas consigo aceder na net local… Como faço com este programa (ou outro) para qualquer pessoa poder aceder das casas delas?
        Agradeço desde já…

  21. Avatar de francisco
    francisco

    Boas,

    instalei de raiz o ubuntu 12.04 para experimentar isto, mas após seguir o tutorial completo, passo por passo, não consigo aceder ao http://ftp...

    internamente a partir do servidor: após efectuar o login, dá-me uma página em branco, sem nada escrito, embora na pasta do ftp estejam lá vários directórios;

    externamente a partir do servidor: após efectuar o login, dá-me uma página em branco, sem nada escrito, embora na pasta do ftp estejam lá vários directórios;

    externamente a partir da Internet: não consigo aceder de forma alguma

    no router abri as portas 20 e 21 em TCP e UDP.

    Sou rookie em linux, por isso solicito ajuda em como posso resolver isto, por favor. Informem-me que comandos devo executar para efectuar o diagnóstico que possam pretender.

    Muito obrigado!

    1. Avatar de Pedro Pinto

      Boas Francisco, que router tens?

      1. Avatar de francisco
        francisco

        DrayTek Vigor2100G

    2. Avatar de francisco
      francisco

      !update!

      Após muito andar para aqui, e istalar via Centro de Software o FileZilla, assim como o PureAdmin, reslvi testar novamente e… voila… está tudo a funcionar!! O.o

      Seria alguma dependência não instalada?! Como testei várias coisas, já não sei dizer exactamente porque está agora a funcionar… detesto quando isto me acontece :-p

  22. Avatar de Rangel Martins
    Rangel Martins

    Muito bom tutorial, irá me ajudar muito agora, muito obrigado equipe pplware 😀

  23. Avatar de oliveira
    oliveira

    muito bom….

    ja esta a funcionar…

    so que reparei que atraves de ftp:// conseguem ter acesso aos directorios do sistema…

    basta aceder a: “para um directorio de nivel superior”,

    como posso negar o acesso a esses directorios….?

    obrigado

    1. Avatar de Pedro
      Pedro

      Oliveira, na altura consegui-te negar o acesso?

      Como fizest? estou neste momento com esse problema.

      Obrigado

  24. Avatar de oliveira
    oliveira

    ja agora eu tentei introduzindo o ip do computador, o que so consigo aceder se estiver na mesma rede,,,,

    como posso aceder ao servidor, estando noutra rede….?

    como abro as portas do router?

  25. Avatar de Marcus Antonio
    Marcus Antonio

    Boa tarde, eu utilizo o filezilla e meu login e efetuado mais para no comando LIst.
    Alguem pode me ajudar.

  26. Avatar de Tiago Rechau
    Tiago Rechau

    Já agora, alguém sabe como remover utilizadores? Procurei no google mas não encontrei, não procurei o suficiente de certeza

  27. Avatar de Rafael Ferreira
    Rafael Ferreira

    O copy-paste deste site é muito chato.

    1. Avatar de Vítor M.

      😀 aparece apenas uns links que podes deixar no que copiaste. Isso até valoriza.

  28. Avatar de Razor Garcia
    Razor Garcia

    Boas,

    Criei o servidor FTP através desse tutorial e que correu tudo bem!
    Tenho uma duvida, nesse momento estou a utilizar o Ubuntu 12.04 e eu queria por um Site Html para ficar um pouco mais apelativo, agora onde devia por os ficheiros html? Em que pasta ?

    atenciosamente.