Como proteger um servidor FTP usando SSL/TLS para transferência de arquivo segura no CentOS 7
- 3042
- 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
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 Filezilla13. 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árioAdicionar 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:
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/SSL15. 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 FTPIsso é 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 »