Serviços de FTP / TFTP ativos e passivos, balanceamento de carga e alta disponibilidade

Ver Categorias

Serviços de FTP / TFTP ativos e passivos, balanceamento de carga e alta disponibilidade

7 min read

Visão geral #

O FTP, ou Protocolo de Transferência de Arquivos , é um protocolo da camada de aplicação amplamente utilizado para transferência de arquivos em arquiteturas cliente-servidor que se baseiam nas camadas de rede TCP/IP. O FTP é um protocolo complexo e simples (sem recursos de segurança), cujas portas são negociadas na camada de aplicação entre o cliente e o servidor, o que dificulta o balanceamento de carga ou a criação de regras de firewall. Além disso, o servidor e o cliente FTP podem operar em modos ativo ou passivo, conforme descrito a seguir.

Alguns recursos que fornecem FTP são: 2 portas TCP (20, 21 por padrão) usado um para comandos de controle e outro para dados, suporte a mecanismo de autenticação, sem suporte a criptografia, ascii e binário, comandos amplos disponíveis (listagem de diretório, diretório de navegação, upload de arquivos, download de arquivos, etc.) e resiliência de TCP inerente.

TFTP ou FTP Trivial é uma variação com transferência de arquivos mais rápida e arquitetura mais simples, que utiliza apenas uma porta UDP (69 por padrão), não oferece suporte a mecanismos de autenticação ou criptografia, disponibiliza três modos de transferência (netascii, octet e mail) e apenas comandos básicos como upload e download de arquivos.

Os serviços FTP e TFTP podem ser balanceados facilmente com RELIANOID Balanceador de carga. Continue lendo para saber como alcançá-lo.

Ambiente de balanceamento de carga de FTP #

O cenário que queremos alcançar neste artigo é mostrado no diagrama abaixo.

Ou existe uma alta simultaneidade de usuários e é necessário escalar o serviço ou é um serviço crítico que precisa estar altamente disponível, um balanceador de carga de serviço FTP será necessário.

Configuração ativa do modo de FTP #

Uma configuração FTP ativa exigirá o uso das portas 20 e 21 nos servidores ou no backend. A imagem abaixo mostra o fluxo de conexão quando é necessário transferir dados entre um cliente e um servidor FTP.

active_ftp_client_server

Na sequência mostrada acima:
1. O cliente solicita ao servidor via porta 21 um comando.
2. O servidor reconhece para o cliente.
3. O servidor inicia a conexão de dados usando a porta de dados 20.
4. O cliente reconhece ao servidor quando termina.

Neste ponto, temos que configurar um balanceador de carga entre cliente e servidor e cuidar dos fluxos de tráfego, inicializadores de conexões e acordos de porta entre cliente e servidor.

Com RELIANOID Load Balancer, precisamos conseguir esse tipo de configuração criando um perfil de farm LSLB L4xNAT com portas 20,21 e FTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).

zevenet_adc_lb_active_ftp_configuration

Os clientes precisam se conectar ao endereço VIP do novo farm de FTP.

Nota: Esta configuração pode ser usada com segurança tanto no modo cliente/servidor ativo quanto no modo passivo.

Configuração do modo FTP passivo #

Uma configuração FTP passiva utiliza apenas a porta 21 nos servidores ou no backend. A imagem abaixo ilustra o fluxo de conexão quando há necessidade de transferência de dados entre um cliente e um servidor FTP.

passive_ftp_client_server

Na sequência mostrada acima:
1. O cliente solicita ao servidor via porta 21 um comando.
2. O servidor reconhece para o cliente.
3. O cliente inicia a conexão de dados usando uma porta de dados alta para uma porta acordada da camada de aplicativo no lado do servidor.
4. O servidor reconhece ao cliente quando termina.

Neste ponto, temos que configurar um balanceador de carga entre cliente e servidor e cuidar dos fluxos de tráfego, inicializadores de conexões e acordos de porta entre cliente e servidor.

Com RELIANOID Load Balancer, precisamos conseguir esse tipo de configuração criando um perfil de farm LSLB L4xNAT com a porta 21 e FTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).

zevenet_adc_lb_passive_ftp_configuration

Os clientes precisam se conectar ao endereço VIP do novo farm de FTP.

Configuração TFTP #

Protocolos FTP simples são usados ​​principalmente em ambientes PXE (Preboot eXecution Environment), que são compostos por uma combinação de serviços DHCP e TFTP, onde dezenas, centenas ou até milhares de computadores podem ser implantados na rede.

O principal comportamento do protocolo seria:
1. O cliente solicita ao servidor via porta 69 um comando Pedido de leitura (RRQ) ou Pedido de escrita (WRQ), incluindo o modo de arquivo e transferência.
2. O servidor confirma para o cliente e notifica a nova porta de dados a ser usada.
3. O cliente inicia a conexão de dados a uma porta acordada da camada de aplicação no lado do servidor.
4. O servidor reconhece ao cliente quando os últimos bytes 512 permanecem.

Em um ambiente onde o serviço TFTP precisa ser dimensionado, a configuração com RELIANOID 5 é muito fácil. É necessário criar um perfil de farm LSLB L4xNAT com a porta 69 e TFTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).

zevenet_adc_lb_tftp_configuration

Os clientes precisam se conectar ao endereço VIP do novo farm TFTP.

FTP seguro #

Para solucionar a questão da segurança aprimorada do protocolo FTP, o Protocolo de Transferência de Arquivos SSH , mais conhecido como SFTP, foi projetado para fornecer uma camada de segurança adicional. Nesse cenário, os servidores FTP devem ser configurados como SFTP e o balanceamento de carga entre eles seria tão simples quanto criar um cluster LSLB com perfil L4xNAT na porta 22 e protocolo TCP , conforme mostrado na captura de tela abaixo. Por fim, basta adicionar os backends do seu serviço SFTP.

zevenet_adc_lb_secure_ftp_sftp_configuration

Os clientes precisam se conectar ao endereço VIP do novo farm TCP, que atende a um serviço SFTP.

Verificações de integridade avançadas #

Verificação de integridade de FTP #

RELIANOID aparelhos já incluem o check_ftp verificação de integridade para serviços de FTP, para que possamos testar a verificação de integridade com um back-end up:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP OK - 0.262 segundos de tempo de resposta na porta 21 do ftp.debian.org [servidor FTP 220 ftp.debian.org] |tempo=0.262090s;;;0.000000;10.000000 

Por outro lado, com um back-end inativo, obteremos a seguinte saída:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org CRÍTICO - Tempo limite do soquete após 10 segundos

Portanto, o comando Farm Guardian para configurar no farm FTP seria:

check_ftp -H HOST

Na guia Serviços, verifique a configuração do Farm Guardian, conforme mostrado abaixo. Um tempo limite de 60 segundos seria suficiente para garantir o comportamento correto de um back-end.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

Verificação de integridade TFTP #

Se o check_tftp verificação avançada ainda não existe no RELIANOID dispositivo, podemos criar um script de verificação de integridade fácil, conforme descrito abaixo, para nossos serviços TFTP.

Primeiramente, crie um arquivo fictício no diretório de backends TFTP, por exemplo , tftp_relianoid_check.txt , e adicione algum conteúdo, por exemplo, "OK".

Então, em seu RELIANOID appliance instale o cliente tftp executando o seguinte comando:

apt-get instalar tftp

E então, crie um novo arquivo de script no RELIANOID diretório padrão de verificações de integridade, por exemplo /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh com o seguinte código de script:

#!/bin/bash ### ### Verifique os serviços TFTP ### Copyright 2017-now RELIANOID SL ### ### $1 : Host a ser verificado CRÍTICO=1 OK=0 RESULTADO=$(echo get tftp_relianoid_check.txt | tftp $1 2>&1 | head -n 1) echo "O status da verificação de integridade do TFTP para $1 é $RESULT" if [ "`echo $RESULT | grep Received`" != "" ]; then exit $OK else exit $CRITICAL fi

Em seguida, atribua permissões de execução com o comando:

root@noid:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh

Se tentarmos executar o script, obteremos uma mensagem de sucesso quando o back-end estiver ativo e bem configurado:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 O status da verificação de integridade do TFTP para 192.168.101.250 é tftp> Recebidos 4 bytes em 0.0 segundos

ou um erro quando o back-end está inoperante:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 O status da verificação de integridade do TFTP para 192.168.101.254 é tftp> Tempo limite de transferência esgotado.

Por fim, configure a verificação de integridade no farm TFTP, incluindo no comando o token HOST.

check_mytftp.sh HOST

Na guia Serviços, verifique a configuração do Farm Guardian, conforme mostrado abaixo. Um tempo limite de 60 segundos seria suficiente para garantir o comportamento correto de um back-end.

zevenet_tftp_farm_guardian_advanced_health_check_config

Verificação de saúde do SFTP #

Como já existe a ferramenta de verificação de integridade ` check_ssh` , podemos usá-la diretamente. Portanto, o comando do Farm Guardian para configurar o farm SFTP seria o seguinte:

check_ssh HOST

Então, a configuração seria mostrada como é mostrado na imagem a seguir.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

Aproveite a sua alta transferência de arquivos disponível e escalável!

📄 Baixe este documento em formato PDF #

    E-MAIL: *

    Com tecnologia BetterDocs