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