Como proteger um servidor FTP usando SSL/TLS para transferência de arquivo segura no CentOS 7
 
                - 3101
- 576
- Leroy Lebsack
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:
- 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.
- Req - é um comando para x.509 Solicitação de assinatura de certificado (RSE) Gerenciamento.
- x509 - significa x.509 gerenciamento de dados de certificado.
- dias - define o número de dias de certificado é válido para.
- Newkey - Especifica o processador de chave do certificado.
- RSA: 2048 - RSA Key Processor, gerará uma chave privada de 2048 bits.
- Keyout - Define o arquivo de armazenamento da chave.
- 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
 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
 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
 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
 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
 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
 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.
- « Quem é root? Por que a raiz existe?
- RTOP - Uma ferramenta interativa para monitorar o servidor Linux remoto em SSH »
 
                    