Como criar um servidor FTP seguro em 5 minutos
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.
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 |
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 |
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 |
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 |
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 |
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 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
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.
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.
Este artigo tem mais de um ano
Que tal sftp?
SSH certo têm razão. Testaram ‘ssl impersoning’?
@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.