Configurando um servidor FTP seguro usando SSL/TLS no Ubuntu

Configurando um servidor FTP seguro usando SSL/TLS no Ubuntu

Neste tutorial, descreveremos como garantir um Ftp servidor (Vsftpd apoia "Daemon FTP muito seguro") usando SSL/TLS em Ubuntu 16.04/16.10.

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

Depois de seguir as várias etapas deste guia, teremos aprendido os fundamentos da habilitação de serviços de criptografia em um servidor FTP para transferências de dados seguras é crucial.

Requisitos

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

Antes de avançarmos mais, verifique se todos os comandos neste artigo serão executados como conta de root ou sudo privilegiado.

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

1. Começaremos criando um subdiretório sob: /etc/ssl/ Para armazenar o SSL/TLS Certificado e arquivos de chave se não existir:

$ sudo mkdir/etc/ssl/privado 

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/privado/vsftpd.PEM -Daiu 365 -NowKey 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.

Nome do país (código de 2 letra) [xx]:EM Nome do estado ou da província (nome completo) []:Parel inferior Nome da localidade (por exemplo, cidade) [Cidade padrão]:Mumbai Nome da organização (por exemplo, Empresa) [Empresa Padrão Ltd]:Tecmint.com Nome da unidade organizacional (por exemplo, seção) []:Linux e código aberto Nome comum (por exemplo, seu nome ou o nome do host do seu servidor) []:Tecmint Endereço de email []:[Email protegido] 

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

3. Antes de realizarmos qualquer Vsftpd Configurações, para aqueles que têm o Firewall do UFW ativado, você deve abrir as portas 990 e 40000-50000 Para permitir que as conexões TLS e a linha de portas de portas passivas sejam definidas no arquivo de configuração VSFTPD, respectivamente:

$ sudo ufw permitir 990/tcp $ sudo ufw permitir 40000: 50000/tcp $ sudo ufw status 

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

$ sudo vi/etc/vsftpd/vsftpd.conf ou $ sudo nano/etc/vsftpd/vsftpd.conf 

Em seguida, adicione ou localize a opção ssl_enable e definir seu valor para SIM Para ativar o uso de SSL, novamente, porque o TLS é mais seguro que o SSL, restringiremos o VSFTPD a usar o TLS, permitindo que o ssl_tlsv1 opção:

ssl_enable = sim ssl_tlsv1 = sim ssl_ssslv2 = não ssl_ssslv3 = não 

5. Em seguida, comente as linhas abaixo usando o # Personagem da seguinte maneira:

#RSA_CERT_FILE =/etc/ssl/private/ssl-cert-snakeoil.PEM #rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.chave 

Posteriormente, adicione as linhas abaixo para definir a localização do certificado SSL e do arquivo -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 os usuários anônimos usem o SSL, depois 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 = não force_local_data_ssl = yes force_local_logins_sssl = sim 

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

requim_ssl_reuse = não 

Além disso, podemos definir quais cifras ssl vsftpd permitirão para conexões SSL criptografadas com o ssl_ciphers opção. Isso ajudará a frustrar quaisquer esforços dos atacantes que tentam forçar uma cifra específica em que possivelmente descobriram vulnerabilidades:

ssl_ciphers = alto 

8. Então, vamos definir o intervalo de portas (Min e Max Port) de portas passivas.

pasv_min_port = 40000 pasv_max_port = 50000 

9. Para ativar a depuração do SSL, o que significa que o diagnóstico de conexão OpenSSL é gravado no arquivo de log VSFTPD, podemos usar o Debug_ssl opção:

Debug_ssl = sim 

Finalmente salve o arquivo e feche -o. Em seguida, reinicie o serviço vsftpd:

$ Systemctl Reiniciar vsftpd 

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

10. Depois de executar todas as configurações acima, teste se o VSFTPD agora está usando as conexões SSL/TLS tentando usar o FTP da linha de comando como abaixo.

A partir da saída abaixo, há uma mensagem de erro nos dizendo que o vsftpd só pode permitir que os usuários (não anônimos) fizessem login de clientes seguros que suportam serviços de criptografia.

$ ftp 192.168.56.10 Conectado a 192.168.56.10 (192.168.56.10). 220 Bem -vindo ao Tecmint.serviço ftp. Nome (192.168.56.10: raiz): Ravi 530 sessões não anônimas devem usar a criptografia. falha no login. 421 Serviço não disponível, o servidor remoto tem conexão fechada ftp> 

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

Etapa 4: Instale o Filezilla nos clientes para conectar o FTP com segurança

Filezilla é um cliente FTP de plataforma cruzada poderosa e amplamente usada que suporta FTP sobre SSL/TLS e mais. Para instalar o Filezilla em uma máquina cliente Linux, use o seguinte comando.

--------- No Debian/Ubuntu --------- $ sudo apt-get install filezilla --------- No CentOS/Rhel/Fedora --------- # yum installel-l-lançamento filezilla --------- Em Fedora 22+ --------- $ sudo dnf install filezilla 

12. Quando a instalação terminar, abra -a e vá para Arquivo => gerente de sites ou (pressione Ctrl+s) para obter o Gerente do site interface abaixo.

Gerenciador do site Filezilla

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

Clique em Novo site botão para configurar um novo site/conexão do host.

Hospedar: 192.168.56.10 Protocolo: FTP - Protocolo de transferência de arquivos Criptografia: Requer FTP explícito sobre #recomlended Logon Type: Peça senha #Recomled User: nome de usuário 
Configure o novo site FTP no Filezilla

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

Verifique o certificado FTP SSL

15. Agora, você deve ter registrado com sucesso no servidor FTP em uma conexão TLS, verifique a seção Status da conexão para obter mais informações da interface abaixo.

Conectado ao servidor FTP do Ubuntu

16. Por fim, vamos transferir arquivos da máquina local para o sever FTP na pasta de arquivos, dê uma olhada na extremidade inferior da interface Filezilla para visualizar relatórios sobre transferências de arquivos.

Transferência segura de arquivos FTP usando o FileZilla

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

Se você enfrentar algum problema na configuração do SSL/TLS no servidor FTP, use o formulário de comentário abaixo para compartilhar seus problemas ou pensamentos sobre este tutorial/tópico.