Número de conexões de VSFTP em modo passivo

Número de conexões de VSFTP em modo passivo

Ao trabalhar com o modo passivo, se definirmos pasv_max_port como 10100 e pasv_min_port como 10090. Isso significa que o servidor VSFTP pode atender apenas 10 clientes simultaneamente?

Podemos definir um mesmo número de porta para pasv_max_port e pasv_min_port? Se for possível, quantos clientes o servidor VSFTP pode atender ao mesmo tempo? Apenas um?

Responder1

Para simplificar, eu diria que sim, e é assim que você deve considerar (na minha opinião).

Limitar o intervalo de portas limitará as conexões simultâneas de clientes de acordo com o número de portas que você possui entre mínimo e máximo. Desta forma você evitará comportamentos estranhos.

Mas, na verdade isso não é verdade e tem que ser moderado :-)

Indo mais fundo e para ser mais preciso:limitar portas afeta o uso simultâneo do canal de dados.

Observe que uma nova solicitação de conexão precisa de um canal de dados disponível.

Não conheço todos os comandos FTP que usam canal de dados, mas basicamente os comandos upload (STOR), download (RETR)e list (LIST)precisam de canal de dados.


Para ilustrar isso acabei de fazer um teste em laboratório (que você pode reproduzir) com meu servidor vsftpd e estas configurações:

pasv_max_port=10100
pasv_min_port=10100

1. Primeiro teste:

  • Eu me conecto com o Cliente1: ok
  • Eu me conecto com o Cliente2 enquanto o Cliente1 ainda está conectado: ok
  • Eu me conecto com o Cliente3 enquanto o Cliente1 e o Cliente2 ainda estão conectados: ok

Por que ?

  • O Cliente2 conseguiu se conectar porque o Cliente1 não estava fazendo nada (inativo) e não estava usando o canal de dados, portanto o servidor atribuiu a porta ao Cliente2.
  • O Cliente3 conseguiu se conectar porque o Cliente1 e o Cliente2 estavam ociosos e não usavam o canal de dados, portanto, o servidor atribuiu a porta ao Cliente3.

2. Segundo teste:

  • Eu me conecto ao Cliente1 e começo a enviar um arquivo: ok, upload de arquivo em andamento
  • Eu me conecto ao Cliente2 enquanto o upload do Cliente1 ainda estava em execução: ERRO não é possível conectar
  • Aguardo o upload do Client1 terminar
  • Assim que o upload do Client1 foi concluído, consegui me conectar ao Client2.

Por que ?

  • Como o Cliente1 estava usando o canal de dados para seu upload, o Cliente2 não conseguiu se conectar porque não havia mais porta disponível no servidor para atendê-lo.
  • Assim que o upload do Cliente1 for concluído, o servidor liberou a porta do canal de dados e o Cliente2 pôde usá-la para se conectar.

3. Terceiro teste:

  • Eu me conecto com o Cliente1: ok
  • Eu me conecto com o Cliente2 enquanto o Cliente1 ainda está conectado: ok
  • Eu inicio um upload para o servidor FTP do Cliente1: ok, upload em andamento
  • Eu inicio um upload para o servidor FTP do Cliente2 enquanto o upload do Cliente1 ainda está em execução: ERROR conexão fechada pelo servidor. A transferência falhou.

Por que ?

Uma mistura de teste 1 e teste 2:

  • O Cliente2 conseguiu se conectar porque o Cliente1 não estava fazendo nada (inativo) e não estava usando o canal de dados, portanto o servidor atribuiu a porta ao Cliente2.
  • O Cliente1 pode fazer upload de um arquivo porque o Cliente2 está ocioso, portanto o servidor atribuiu a porta ao Cliente1 para seu upload.
  • O Cliente2 não consegue fazer upload de um arquivo porque a porta de transferência de dados já está em uso pelo Cliente1 para seu upload

Agora você pode entender por que eu estava falando sobre comportamentos “estranhos” no início.

Espero que ajude!

informação relacionada