Quantcast

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
  1. HP

    Bom tutorial.
    Isso sim é um bom post.

  2. AM
    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. PP

      Thanks. Há mais algum?

      1. AM
        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. MO
    moedinha

    Espectáculo, muito obrigado.

  4. MC
    Miguel Costa

    Pedro,
    não sei como dizer isto….

    mas OBRIGADÍSSIMO!

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

  5. DA
    Daniel

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

    1. MM
      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. PP

        @Daniel,

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

        http://pplware.sapo.pt/software/port-forwarding-jogos-aplicacoes-e-outros/

        1. DA
          Daniel

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

  6. MA
    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. PP

      Solução: vsftpd 🙂

  7. PS
    Psyco

    Obrigado pela receita! 🙂

    b1bpt@fiambre.dsi.uminho.pt

  8. NF
    Nuno Freire

    Obrigado a tua dica está 5*
    Consegui á primeira

  9. FI
    FilipeAntunes

    Podiam fazer um de DHCP tb 😀

  10. MO
    monux

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

  11. NO

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

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

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

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

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

            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. MC
    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. MC
        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. FP
    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. AM
      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. FP
        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.

    2. PP

      FTP

      1. FP
        Filipe YaBa Polido

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

  14. RC
    Rui Comprido

    Boa Noite,

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

    Cumprimentos

  15. GS
    GSilva

    Boas,

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

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

    Obrigado

  16. NS
    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. AN
    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. HR
    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. 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. JO
    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. PP

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

      1. 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. FR
    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. PP

      Boas Francisco, que router tens?

      1. FR
        francisco

        DrayTek Vigor2100G

    2. FR
      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. RM
    Rangel Martins

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

  23. OL
    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. PE
      Pedro

      Oliveira, na altura consegui-te negar o acesso?

      Como fizest? estou neste momento com esse problema.

      Obrigado

  24. OL
    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. MA
    Marcus Antonio

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

  26. TR
    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. RF
    Rafael Ferreira

    O copy-paste deste site é muito chato.

    1. VM

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

  28. RG
    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.

Deixe um comentário