Tutorial: Instale um servidor de FTP seguro em 5 minutos

25 Comentários

As distribuições GNU/Linux têm as características perfeitas para implementar os mais diversos serviços de rede. As configurações dos serviços são normalmente realizadas em ficheiros, de uma forma simples e rápida, e a gestão dos próprios serviços é também bastante flexível.

Hoje vamos ensinar a instalar o servidor de FTP ProFTPD no Ubuntu em pouco menos de 5 minutos! Basta que sigam o nosso tutorial.

ftp_06


O ProFTPD é um servidor de FTP Open Source, altamente personalizado e que garante a melhor segurança (se bem configurado). Para instalar o Proftpd Server no Ubuntu basta que sigam os seguintes passos:

Passo 1) Instalar o ProFTPd e OpenSSL

Para começar vamos mudar para a conta root por causa dos privilégios (sudo su). Em seguida procedam à instalação do proftpd e openssl usando o segundo comando:

sudo su
apt-get -y install proftpd openssl

Durante a instalação, o utilizador será questionando de que forma pretendem executar o ProFTPd. Para tal devem escolher a opção Standalone.

ProFTPd_00

Por questões de segurança devem proceder às seguinte alterações no ficheiro  /etc/proftpd/proftpd.conf

nano –w /etc/proftpd/proftpd.conf

[...]
DefaultRoot ~
ServerIdent on "Servidor FTP está pronto"
[...]

A primeira opção define que os utilizadores que se ligam por FTP só podem aceder ao seu directório pessoal. O segundo parâmetro é uma mensagem opcional que é apresentada quando um utilizador se liga ao servidor.

Passo 2) Criar certificados SSL

Para criarem os certificados necessário para usar no TLS (Transport Layer Security) devem usar os seguintes comandos:

Primeiro criem um directório onde vão guardar os certificados

mkdir /etc/proftpd/ssl

Em seguida usem o seguinte comando para gerar os certificados SSL

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

certificado

Por fim devem definir permissões de leitura e escrita para os certificados criados:

chmod 600 /etc/proftpd/ssl/proftpd.*

4) Activar o TLS no ProFTPd

Para activar o protocolo TLS no ProFTPd que permitirá ligações seguras dos clientes ao servidor, devem abrir o ficheiro /etc/proftpd/proftpd.conf e incluir a linha:

/etc/proftpd/tls.conf 

ProFTPd_02

Em seguida editamos o ficheiro /etc/proftpd/tls.conf e definimos os seguintes parâmetros:


TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions                 NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
RequireValidShell          no

Por fim, para reiniciar o serviço devem usar o comando

systemctl restart proftpd.service

ProFTPd_04

5) Criar um utilizador

Depois de instalado e configurado correctamente o proftpd vamos criar um utilizador para acesso. Neste caso pretendemos que o utilizador apenas se consiga autenticar por FTP e não por SSH ou terminal. Para isso, no comando useradd, devem incluir a opção –shell /bin/false.

useradd --home /home/pplwareFTP --create-home --shell /bin/false pplwareFTP

Depois de criado o utilizador definam uma password para o mesmo:

passwd pplwareFTP 

6) Testar

Agora que já temos o serviço configurado e o utilizador criado é hora de testarem o serviço. Para isso usem um cliente de FTP, como por exemplo o Filezilla e criem um perfil com os seguintes dados:

  • Host: IP do servidor
  • Protocol: FTP
  • Encryption: Require explicit FTP over TLS
  • Logon Type: Normal
  • User: pplwareFTP
  • Password: a definida no passo anterior

ProFTPd_05

Se tudo estiver bem definido e não houver erros, devem conseguir ligar-se ao servidor em instantes. Durante a ligação devem ainda receber a informação de que a comunicação está a fazer uso de um certificado de segurança SSL.

ProFTPd_07

E está feito! Como podem ver pela imagem seguinte, conseguimos ligar sem problema ao servidor FTP criado.

ProFTPd_06

Como sempre, esperamos que tenham gostado deste tutorial e que vos seja útil para as mais diversas actividades. Este tutorial funciona na perfeição em qualquer distribuição baseada no Ubuntu, incluindo as distros para Raspberry das quais destacamos o Pipplware. Alguma dúvida ou questão não hesitem em perguntar. Boas instalações!

Partilhar:
Tags:

Comentários

25

Deixe um comentário

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

  1. Avatar de El Visitante
    El Visitante

    Boas!

    Pedro Pinto,

    Não percebi a parte do SSL. O servidor está numa intranet ou acessível a partir da internet? Como é conseguido o SSL?

    Thanks 🙂

    1. Avatar de Norberto
      Norberto

      O servidor está numa rede interna… O SSL serve para poder estabelecer uma ligação encriptada (segura)… a criação do certificado é o passo 2..

      1. Avatar de El Visitante
        El Visitante

        … eu sei mas a minha questão não era essa. Deixa estar

  2. Avatar de Joel
    Joel

    Boas… sera que funciona no wd my book live??

  3. Avatar de Balaico
    Balaico

    Boas.
    Grande tutorial. Assim que posso irei experimentar na minha “maquina” em casa. No entanto faço a seguinte questão utilizo o CentOS. Posso seguir esse tutorial ou terei que pesquisar outra alternativa?

  4. Avatar de fennel
    fennel

    Isto é para criar uma espécie de servidor caserio?

  5. Avatar de Gonçalo
    Gonçalo

    Se poderem ajudar gostava de saber como atribuir as diretorias as contas dos users.
    obrigado

  6. Avatar de Antonino
    Antonino

    a calhar bem era um servidor openvpn seguro e encriptado

  7. Avatar de Vitor maia
    Vitor maia

    Boas.
    Dá para fazer alguma coisa assim com o Windows 7 ou outro?
    onde posso descobrir como fazer de modo prático ?

    Obrigado

  8. Avatar de eumesmo
    eumesmo

    5 min ou 50 min?

    1. Avatar de Miguel Porto
      Miguel Porto

      Até menos de 5 minutos 🙂

  9. Avatar de Charles
    Charles

    Como vai Pedro Pinto?!

    Parabéns pelo artigo!

    Mas não consegui colocar para funcionar. Editei o arquivo (tls.conf) tanto com as informações que digitou quando com as informações que estão na imagem. E quando dou o comando (systemctl restart proftpd.service) aparece a mensagem (systemctl: command not found)

    No que estou errando?
    Obrigado.

    1. Avatar de Pedro Pinto

      Pergunta básica mas tenho de a fazer. Está com o Ubuntu? Experimente /etc/init.d/proftpd start

      1. Avatar de Charles
        Charles

        Estou testando no ElementaryOS 0.3.2 Freya, já que tem como base o Ubuntu 14.04.

        Agora está aparecendo a mensagem “550 SSL/TLS required on the control channer” depois que coloco o Usuário e a Senha previamente cadastrada.

    2. Avatar de paulo
      paulo

      service proftpd restart

  10. Avatar de vladimiro luis
    vladimiro luis

    Para quando o mesmo com CentOS ?

  11. Avatar de PsySc0rpi0n
    PsySc0rpi0n

    Boas…

    Eu obtenho o seguinte erro ao tentar reiniciar o serviço:

    Job for proftpd.service failed. See ‘systemctl status proftpd.service’ and ‘journalctl -xn’ for details.

    1. Avatar de Pedro Pinto

      Isso é algum erro na configuração. Usa o comando tail -f /var/syslog para veres onde está o erro.

      1. Avatar de PsySc0rpi0n
        PsySc0rpi0n

        Pedro Pinto, esse comando não deu nada. Porém abri o ficheiro /var/log/proftpd/proftpd.log e tem lá o seguinte:

        2016-05-17 22:55:18,096 narayan proftpd[23045] narayan.narayan: ProFTPD 1.3.5 (stable) (built Tue May 19 2015 11:09:58 UTC) standalone mode STARTUP
        2016-05-17 23:09:50,626 narayan proftpd[23045] narayan.narayan: ProFTPD killed (signal 15)
        2016-05-17 23:09:50,627 narayan proftpd[23045] narayan.narayan: ProFTPD 1.3.5 standalone mode SHUTDOWN

  12. Avatar de Pérolas
    Pérolas

    Uma duvida: se a máquina tiver uma conta de administrador (chamada administrador) e outra de utilizador é necessário utilizar o sudo su ou estando na conta de utilizador pode-se utilizar o su – administrador para ganhar direitos de administração?

    1. Avatar de Alessandro
      Alessandro

      Olá.
      Vc pode usar o “sudo su” em vez do “root” se o seu usuário tiver Privilégios de Administrador, ou seja, se seu usuário tiver na lista de “Permissões sudoers”.

      Uma vez seu usuário estando na lista de Permissões sudoers, vc poderá usar o comando “sudo” sem precisar logar como super usuário “root”.

      Caso não saiba dar as permissões sudoers, me mande um e-mail que passo o tutorial.
      E-mail: alessandrov7r7@yahoo.com.br

  13. Avatar de Estou a usar o w10 porque fui obrigado
    Estou a usar o w10 porque fui obrigado

    Boas, para o busybox, dá para ter um servidor ftp?

    Eu só contigo fazer get/put, com um servidor era mais rapido

  14. Avatar de Miguel C.
    Miguel C.

    Se a idea é ser rápido simples e seguro… porque não sftp…

    Mais seguro ainda se for autenticação com private/public-key….

    Neste exemplo, e provavelmente na maioria dos casos para LAN vão usar cert self signed, o que tem as suas desvantagens.

    Outra vantagem do ssh é que na grande maioria dos casos particularmente linux já está no sistema operativo, não é preciso instalar…

    1. Avatar de Nuno Alves
      Nuno Alves

      Mesmo que o OpenSSH não esteja instalado basta fazer “sudo apt-get install openssh-server” para ficarmos com SFTP seguro, automático e a funcionar no porto 22, com os utilizadores do Ubuntu a terem acesso com as respectivas passwords (e com a possibilidade, como diz, de usar a private/public key para dispensar a password). Demora 10 segundos…

  15. Avatar de Nildo
    Nildo

    Pra Windows não tem um tutorial assim?