Como criar um servidor FTP seguro em 5 minutos

3 Comentários

O FTP (File Transfer Protocol) continua a ser um dos protocolos mais usados para transferência de ficheiros. Neste segmento existem vários soluções sendo que uma das mais populares para Linux é sem dúvida o VSFTP uma vez que oferece várias funcionalidades das quais se destacam o suporte para IPv6 e SSL.

Depois de apresentarmos aqui como instalar e configurar um servidor FTP hoje vamos aprender como o tornar ainda mais seguro recorrendo a certificados SSL.

Como criar um servidor FTP seguro em 5 minutos

O vsftpd (Very Secure FTPD) é provavelmente um dos mais rápidos e seguros servidores de FTP para sistemas Linux. Este serviço oferece um conjunto de características das quais destacamos:

  • Suporte para utilizadores virtuais
  • Suporte para IPv6
  • Suporte para virtual IPs
  • Suporte para SSL
  • Controlo para largura de banda a usar

Uma vez que o vsftpd tem suporte para certificados SSL hoje vamos aprender como activar tal nível de segurança.

O que é o SSL?

O protocolo SSL – Secure Socket Layer é um protocolo que foi desenvolvido pela Netscape com o objectivo de garantir transacções seguras entre um servidor web e um browser. O protocolo utiliza uma entidade certificadora para identificar o servidor ou o servidor e o cliente. Saber mais sobre certificados digitais aqui.

O que é o Openssl?

O OpenSSL é uma implementação em código aberto dos protocolos SSL e TLS. Uma das funcionalidades consiste na criação de certificados X.509 que permitem confidencialidade em ligações com SSL (HTTPS) entre outros serviços. Os certificados digitais X.509 representam para o utilizador, o mecanismo de segurança mais visível no âmbito da certificação digital.

A primeira coisa que devem fazer (para quem ainda não o fez) é instalar o serviço. Toda a informação que precisa está disponível aqui.

Como configurar o vsftpd com SSL?

Antes de passarmos à configuração do servidor vamos proceder à criação dos certificados SSL. Para isso vamos criar um directório (ex. /etc/ssl/private) para criarmos lá dentro os nossos certificados.

mkdir /etc/ssl/private

Para criar o certificado e respectiva chave privada, num único ficheiro, devem executar o seguinte comando:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Como criar um servidor FTP seguro em 5 minutos

Nota: No Common Name devem indicar o nome da vossa máquina.

Uma vez criado o certificado, vamos à configuração do vsftp indicar o caminho do mesmo para que as comunicações passem a ser seguras/cifradas.

Para isso abrimos o ficheiro de configuração:

nano /etc/vsftpd/vsftpd.conf

…e depois acrescentamos as seguintes linhas:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Como criar um servidor FTP seguro em 5 minutos

Vamos agora activar o SSL no VSFTP e desactivar o acesso a utilizadores anónimos (por SSL). Para isso devem usar, no ficheiro de configuração, as seguintes directivas:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Como criar um servidor FTP seguro em 5 minutos

Vamos agora forçar que seja usado TLS, em vez de SSL, uma vez que este último protocolo garante ainda mais segurança.

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Como criar um servidor FTP seguro em 5 minutos
Por fim acrescentem as duas últimas linhas para garantir ainda mais segurança. Basicamente é dar indicação para que seja usada a cifra máxima e o require_ssl_reuse a no para que todas as ligações deixem de apresentar informações sobre a sessão SSL estabelecida anteriormente.

require_ssl_reuse=NO
ssl_ciphers=HIGH

Como criar um servidor FTP seguro em 5 minutos

E está feita a configuração do SSL no VSFTP. Vamos agora reiniciar o serviço para que as configurações anteriores sejam aplicadas. Para isso basta usar o comando:

/etc/init.d/vsftpd restart

Como criar um servidor FTP seguro em 5 minutos

Como aceder remotamente ao FTP?

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, WinSCP). Neste exemplo vamos usar o FileZilla.

Nota: Verifiquem se têm a firewall a bloquear ligações externas.

Para aceder ao serviço de FTP remoto basta indicar:

  • Host name/nome do servidor FTP
  • User name
  • Password
  • Encryption: Require explicit FTP over TLS

vsftp_ssl8

Como podem ver na imagem seguinte, antes de acederem à vossa conta de FTP será apresentada parte da informação relativa ao certificado criado e a indicação que a comunicação está a usar o protocolo de segurança Transport Layer Security (TLS). Isto quer dizer que todas as comunicações entre o servidor e o PC (e vice-versa) serão cifradas.

vsftp_ssl7

Esperamos que este tutorial seja útil e brevemente vamos ensinar como realizar mais algumas afinações tanto ao nível de segurança como ao nível do próprio funcionamento do VSFTP. Estejam atentos.

Comentários

3

Deixe um comentário

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

  1. Avatar de Joao
  2. Avatar de Sk1ll3
    Sk1ll3

    SSH certo têm razão. Testaram ‘ssl impersoning’?

  3. Avatar de Joca
    Joca

    @ppinto,

    Ótimo artigo, parabéns!

    O princípio para usarmos certificado num site com HTTPS é o mesmo? O temos que recorrer a empresas especializadas como Verisign, GlobalSign, Symantec, etc….

    Conhece algum lugar que eu possa achar informações de como montar um HTTPS?

    Abraços.