Como proteger um servidor FTP usando SSL/TLS para transferência de arquivo segura no CentOS 7

Como proteger um servidor FTP usando SSL/TLS para transferência de arquivo segura no CentOS 7

Por seu design original, Ftp (Protocolo de transferência de arquivos) não é seguro, o que significa que não criptografa dados transmitidos entre duas máquinas, juntamente com as credenciais do usuário. Isso representa uma ameaça maciça aos dados e à segurança do servidor.

Neste tutorial, explicaremos como ativar manualmente os serviços de criptografia de dados em um servidor FTP no CentOS/RHEL 7 e Fedora; Vamos passar por várias etapas de garantir Vsftpd (Daemon FTP muito seguro) Serviços usando SSL/TLS certificados.

Pré -requisitos:

  1. Você deve ter instalado e configurado um servidor FTP no CentOS 7

Antes de começarmos, observe que todos os comandos deste tutorial serão executados como raiz, Caso contrário, use o comando sudo para obter privilégios root se você não estiver controlando o servidor usando a conta raiz.

Passo 1. Gerando certificado SSL/TLS e chave privada

1. Precisamos começar criando um subdiretório sob: /etc/ssl/ onde vamos armazenar o SSL/TLS Certificado e arquivos de chave:

# mkdir/etc/ssl/privado 

2. Em seguida, execute o comando abaixo para criar o certificado e a chave para vsftpd Em um único arquivo, aqui está a explicação de cada bandeira usada.

  1. Req - é um comando para x.509 Solicitação de assinatura de certificado (RSE) Gerenciamento.
  2. x509 - significa x.509 gerenciamento de dados de certificado.
  3. dias - define o número de dias de certificado é válido para.
  4. Newkey - Especifica o processador de chave do certificado.
  5. RSA: 2048 - RSA Key Processor, gerará uma chave privada de 2048 bits.
  6. Keyout - Define o arquivo de armazenamento da chave.
  7. fora - Define o arquivo de armazenamento de certificado, observe que o certificado e a chave são armazenados no mesmo arquivo: /etc/ssl/privado/vsftpd.PEM.
# 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, lembre -se de usar valores que se apliquem 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] 

Passo 2. Configurando o VSFTPD para usar o SSL/TLS

3. Antes de realizarmos qualquer configuração do VSFTPD, vamos abrir as portas 990 e 40000-50000 Para permitir que as conexões TLS e a linha de portas de portas passivas defina no arquivo de configuração VSFTPD, respectivamente:

# firewall-cmd-zone = public --permanent --add-port = 990/tcp # firewall-cmd-zone = public --permanent --add-port = 40000-50000/tcp # firewall-cmd- recarregar 

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

# vi/etc/vsftpd/vsftpd.conf 

Procure a opção ssl_enable e definir seu valor para SIM Para ativar o uso de SSL, além disso, uma vez que o TSL é mais seguro que o SSL, restringiremos o VSFTPD para empregar TLS, usando o ssl_tlsv1_2 opção:

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

5. Em seguida, 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. Em seguida, 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 adicionar as opções abaixo para aumentar a segurança do servidor FTP. Quando opção requim_ssl_reuse está configurado para SIM, Em seguida, 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 principal que o canal de controle.

Portanto, temos que desligá -lo.

requim_ssl_reuse = não 

Novamente, precisamos selecionar quais cifras ssl vsftpd permitirão para conexões SSL criptografadas com o ssl_ciphers opção. Isso pode limitar muito os esforços dos atacantes que tentam forçar uma cifra em particular, na qual eles provavelmente descobriram vulnerabilidades:

ssl_ciphers = alto 

8. Agora, defina o intervalo de portas (Min e Max Port) de portas passivas.

pasv_min_port = 40000 pasv_max_port = 50000 

9. Opcionalmente, permita a depuração do SSL, o que significa que os diagnósticos de conexão OpenSSL são registrados no arquivo de log vsftpd com o Debug_ssl opção:

Debug_ssl = sim 

Salve todas as mudanças e feche o arquivo. Então vamos reiniciar o serviço vsftpd:

# SystemCtl Reiniciar vsftpd 

Etapa 3: Testando o servidor FTP com conexões SSL/TLS

10. Depois de fazer todas as configurações acima, teste se o VSFTPD está usando as conexões SSL/TLS tentando usar o FTP na linha de comando da seguinte forma:

# 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> 
Verifique a conexão segura do FTP SSL

A partir da tela acima, podemos ver que há um erro nos informando que o vsftpd só pode permitir que o usuário faça login de clientes que suportam serviços de criptografia.

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

Etapa 4: Instale o Filezilla para se conectar com segurança a um servidor FTP

11. Filezilla é um cliente FTP moderno, popular e de plataforma cruzada que suporta conexões SSL/TLS por padrão.

Para instalar o Filezilla no Linux, execute o comando abaixo:

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

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

Clique em Novo site botão para adicionar um novo site/detalhes de conexão do host.

Adicione um novo site FTP no Filezilla

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

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 
Adicionar detalhes do servidor FTP no Filezilla

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

Verifique o certificado FTP SSL

Nesta fase, deveríamos 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 sobre TLS/SSL

15. Por último, mas não menos importante, tente transferir arquivos da máquina local para o sever FTP na pasta de arquivos, dê uma olhada na extremidade inferior do Filezilla Interface para visualizar relatórios sobre transferências de arquivos.

Transferir arquivos com segurança usando FTP

Isso é tudo! Sempre lembre -se de que o FTP não é seguro por padrão, a menos que o configuremos para usar as conexões SSL/TLS como mostramos neste tutorial. Compartilhe seus pensamentos sobre este tutorial/tópico através do formulário de feedback abaixo.