Número de conexiones de VSFTP en modo pasivo

Número de conexiones de VSFTP en modo pasivo

Cuando trabajamos con modo pasivo, si configuramos pasv_max_port en 10100 y pasv_min_port en 10090. ¿Significa que el servidor VSFTP solo puede atender a 10 clientes simultáneamente?

¿Podemos establecer un mismo número de puerto tanto para pasv_max_port como para pasv_min_port? Si es posible, ¿cuántos clientes puede manejar el servidor VSFTP al mismo tiempo? ¿Sólo uno?

Respuesta1

SimplificarYo diría que sí, y así es como deberías considerarlo (en mi opinión).

Limitar el rango de puertos limitará las conexiones simultáneas de clientes según la cantidad de puertos que tenga entre el mínimo y el máximo. De esta forma evitarás comportamientos extraños.

Pero en realidad eso no es cierto y hay que moderarlo :-)

Profundizando y siendo más precisos:La limitación de puertos afecta el uso concurrente del canal de datos..

Tenga en cuenta que una nueva solicitud de conexión necesita un canal de datos disponible.

No conozco todos los comandos FTP que usan un canal de datos, pero básicamente los comandos de carga (STOR), descarga (RETR)y lista (LIST)necesitan un canal de datos.


Para ilustrar esto, acabo de hacer una prueba en el laboratorio (que puedes reproducir) con mi servidor vsftpd y esta configuración:

pasv_max_port=10100
pasv_min_port=10100

1. Primera prueba:

  • Me conecto con Cliente1: ok
  • Me conecto con el Cliente2 mientras el Cliente1 todavía está conectado: ok
  • Me conecto con Cliente3 mientras Cliente1 y Cliente2 todavía están conectados: ok

Por qué ?

  • El Cliente2 pudo conectarse porque el Cliente1 no estaba haciendo nada (inactivo) y no estaba usando el canal de datos, por lo que el servidor asignó el puerto al Cliente2.
  • Cliente3 pudo conectarse porque Cliente1 y Cliente2 estaban inactivos y no usaban el canal de datos, por lo que el servidor asignó el puerto a Cliente3.

2. Segunda prueba:

  • Me conecto con Cliente1 y empiezo a cargar un archivo: ok, carga de archivo en progreso
  • Me conecto con el Cliente2 mientras la carga del Cliente1 todavía se estaba ejecutando: ERROR no puede conectarse
  • Espero a que finalice la carga del Cliente 1
  • Una vez que finalizó la carga del Cliente1, pude conectarme con el Cliente2.

Por qué ?

  • Debido a que el Cliente1 estaba usando el canal de datos para su carga, el Cliente2 no pudo conectarse porque no había más puertos disponibles en el lado del servidor para atenderlo.
  • Una vez que finalizó la carga del Cliente1, el servidor liberó el puerto del canal de datos y el Cliente2 pudo usarlo para conectarse.

3. Tercera prueba:

  • Me conecto con Cliente1: ok
  • Me conecto con el Cliente2 mientras el Cliente1 todavía está conectado: ok
  • Empiezo a cargar al servidor ftp desde el Cliente1: ok, carga en curso
  • Inicio una carga al servidor ftp desde el Cliente2 mientras la carga del Cliente1 aún se está ejecutando: ERROR de conexión cerrada por el servidor. La transferencia falló.

Por qué ?

Una combinación de la prueba 1 y la prueba 2:

  • El Cliente2 pudo conectarse porque el Cliente1 no estaba haciendo nada (inactivo) y no estaba usando el canal de datos, por lo que el servidor asignó el puerto al Cliente2.
  • El Cliente1 puede cargar un archivo porque el Cliente2 está inactivo, por lo que el servidor ha asignado el puerto al Cliente1 para su carga.
  • El Cliente2 no puede cargar un archivo porque el Cliente1 ya está utilizando el puerto de transferencia de datos para su carga.

Ahora puedes entender por qué estaba hablando de comportamientos "raros" al principio.

¡Espero que ayude!

información relacionada