Pesquisa de site

Configurando um servidor FTP seguro usando SSL/TLS no Ubuntu


Neste tutorial, descreveremos como proteger um servidor FTP (VSFTPD significa “Very Secure FTP Daemon”) usando SSL /TLS no Ubuntu 16.04/16.10.

Se você deseja configurar um servidor FTP seguro para distribuições baseadas em CentOS, você pode ler – Proteja um servidor FTP usando SSL/TLS no CentOS

Depois de seguir as várias etapas deste guia, teremos aprendido que os fundamentos para habilitar serviços de criptografia em um servidor FTP para transferências seguras de dados são cruciais.

Requisitos

  1. Você deve instalar e configurar um servidor FTP no Ubuntu

Antes de prosseguirmos, certifique-se de que todos os comandos neste artigo serão executados como conta privilegiada root ou sudo.

Etapa 1: Gerando certificado SSL/TLS para FTP no Ubuntu

1. Começaremos criando um subdiretório em: /etc/ssl/ para armazenar o certificado SSL/TLS e os arquivos de chave, caso isso não aconteça. não existe:

sudo mkdir /etc/ssl/private

2. Agora vamos gerar o certificado e a chave em um único arquivo, executando o comando abaixo.

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

O comando acima solicitará que você responda às perguntas abaixo, não se esqueça de inserir valores aplicáveis ao seu cenário.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Etapa 2: Configurando VSFTPD para usar SSL/TLS no Ubuntu

3. Antes de realizarmos qualquer configuração de VSFTPD, para quem tem o firewall UFW habilitado, é necessário abrir as portas 990 e 40000 -50000 para permitir que conexões TLS e o intervalo de portas passivas sejam definidos no arquivo de configuração VSFTPD, respectivamente:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. Agora, abra o arquivo de configuração do VSFTPD e defina os detalhes do SSL nele:

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

Em seguida, adicione ou localize a opção ssl_enable e defina seu valor como YES para ativar o uso de SSL, novamente, como o TLS é mais seguro que o SSL, restringiremos o VSFTPD para use TLS ativando a opção ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Em seguida, comente as linhas abaixo usando o caractere # da seguinte forma:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Em seguida, adicione as linhas abaixo para definir a localização do certificado SSL e do arquivo de chave:

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

6. Agora, também precisamos impedir que usuários anônimos usem SSL e, em seguida, forçar todos os logins não anônimos a usar uma conexão SSL segura para transferência de dados e enviar a senha durante o login:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Além disso, podemos usar as opções abaixo para adicionar mais recursos de segurança no servidor FTP. Com a opção require_ssl_reuse=YES, todas as conexões de dados SSL são necessárias para exibir a reutilização da sessão SSL; provando que eles conhecem o mesmo segredo mestre que o canal de controle. Então, devemos desativá-lo.

require_ssl_reuse=NO

Além disso, podemos definir quais cifras SSL o VSFTPD permitirá para conexões SSL criptografadas com a opção ssl_ciphers. Isso ajudará a frustrar quaisquer esforços de invasores que tentem forçar uma cifra específica na qual possivelmente descobriram vulnerabilidades:

ssl_ciphers=HIGH

8. Então, vamos definir o intervalo de portas (porta mínima e máxima) das portas passivas.

pasv_min_port=40000
pasv_max_port=50000

9. Para ativar a depuração SSL, o que significa que os diagnósticos da conexão openSSL são registrados no arquivo de log VSFTPD, podemos usar a opção debug_ssl:

debug_ssl=YES

Por fim salve o arquivo e feche-o. Em seguida, reinicie o serviço VSFTPD:

systemctl restart vsftpd

Etapa 3: verifique o FTP com conexões SSL/TLS no Ubuntu

10. Após realizar todas as configurações acima, teste se o VSFTPD agora está usando conexões SSL/TLS tentando usar o FTP na linha de comando conforme abaixo.

Na saída abaixo, há uma mensagem de erro informando que o VSFTPD só pode permitir que usuários (não anônimos) façam login em clientes seguros que suportam serviços de criptografia.

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

A linha de comando não oferece suporte a serviços de criptografia, resultando no erro acima. Portanto, para conectar-se com segurança a um servidor FTP com serviços de criptografia habilitados, precisamos de um cliente FTP que suporte conexões SSL/TLS por padrão, como o FileZilla.

Etapa 4: Instale o FileZilla em clientes para conectar o FTP com segurança

FileZilla é um cliente FTP multiplataforma poderoso e amplamente utilizado que oferece suporte a FTP sobre SSL/TLS e muito mais. Para instalar o FileZilla em uma máquina cliente Linux, use o seguinte comando.

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. Assim que a instalação for concluída, abra-a e vá para Arquivo=>Gerenciador de Sites ou (pressione Ctrl+S) para obter o Interface do >Gerenciador de Site abaixo.

13. Agora, defina o nome do host/site, adicione o endereço IP, defina o protocolo a ser usado, a criptografia e o tipo de logon como na captura de tela abaixo (use valores que se aplicam ao seu cenário):

Clique no botão Novo Site para configurar uma nova conexão site/host.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Em seguida, clique em Conectar na interface acima para inserir a senha e, em seguida, verifique o certificado que está sendo usado para a conexão SSL/TLS, e clique em OK mais uma vez para conectar-se ao servidor FTP:

15. Agora, você deve ter efetuado login com êxito no servidor FTP por meio de uma conexão TLS. Verifique a seção de status da conexão para obter mais informações na interface abaixo.

16. Por último, vamos transferir arquivos da máquina local para o servidor FTP na pasta de arquivos. Dê uma olhada na extremidade inferior da interface do FileZilla para visualizar relatórios sobre transferências de arquivos.

Isso é tudo! Lembre-se sempre de que instalar um servidor FTP sem ativar os serviços de criptografia tem certas implicações de segurança. Conforme explicamos neste tutorial, você pode configurar um servidor FTP para usar conexões SSL/TLS para implementar segurança no Ubuntu 16.04/16.10.

Se você enfrentar qualquer problema ao configurar SSL/TLS no servidor FTP, use o formulário de comentários abaixo para compartilhar seus problemas ou opiniões sobre este tutorial/tópico.