Saltar al contenido

¿Por qué el modo pasivo de FTP requiere un rango de puertos en lugar de un solo puerto?

Estate atento ya que en este post encontrarás el arreglo que buscas.

Solución:

Solución 1:

una explicación clara y técnica con respecto al problema de múltiples sesiones FTP simultáneas cuando se bloquea el puerto de datos en un solo puerto es lo que más me interesa conocer en profundidad. Cuándo puede funcionar, cuándo no funcionará, por qué no se recomienda, etc.

Esta será una suposición descabellada, ya que no lo he probado, debe probarlo usted mismo y ver si hay otros problemas que podría haber pasado por alto.

Supongo podría limitar el rango de puertos pasivos a un solo puerto. De hecho se puede ver en esta pregunta que en la práctica se utilizan rangos de puertos pequeños. Teóricamente, para admitir múltiples conexiones simultáneas, solo necesita los 4 valores: IP local, puerto local, IP remota, puerto remoto ser único Así es como disciernes entre diferentes conexiones.

Si bloquea el puerto en su servidor a un solo valor, entonces la única variable que queda es el puerto utilizado por el cliente. Esto no es un problema, siempre que el cliente tenga un grupo lo suficientemente grande de puertos efímeros gratuitos para elegir. A menos que esté haciendo NAT pesado, no tiene que preocuparse por esto. Ahora, tenga cuidado, esto será puramente teórico.: si usó múltiples puertos en su servidor, podría multiplicar la cantidad de conexiones simultáneas hipotéticas habilitando number of ports in range conexiones por un puerto del lado del cliente. Pero no sucederá en la práctica, ya que dudo que haya alguna implementación de un cliente FTP que admita esto (porque no tiene mucho sentido). Además, si el cliente tiene que compartir sus puertos efímeros de esta manera y no puede simplemente abrir uno nuevo, entonces tiene problemas mucho más graves con los que lidiar. Entonces, desde esta perspectiva, debería estar totalmente seguro usando un solo puerto.

Pensemos por qué un solo puerto puede no ser suficiente.

En primer lugar, podría llegar a una situación en la que una implementación de servidor FTP realmente defectuosa utilice únicamente el número de puerto local como una forma de identificar la transferencia de datos del cliente. Una vez más, no creo que ningún FTPd decente haga eso.

el verdadero problema (sí, puede ignorar todo lo anterior como una digresión importante ;-)) es eso el rango de puertos pasivos está en un rango no privilegiado.

Esto significa que su el número de puerto seleccionado no está reservadoper sey de hecho cualquier proceso de usuario (no necesita raíz privilegios) pueden obtenerlo antes que su servidor FTP. Si tiene una gran cantidad de puertos para elegir, simplemente tome uno gratuito al azar. Si está obligado a usar el único y ya se usó, no podrá manejar las transferencias correctamente.

Lo siento, si la respuesta parece demasiado especulativa. Para ser honesto, me esforcé por encontrar una razón por qué no deberías usar un solo puerto y, aparte de lo último, no se me ocurrió ninguna prueba contundente en su contra. Sin embargo, una pregunta interesante y desafiante la que planteas.

Solución 2:

FTP se basa en dos conexiones separadas, una para el flujo de control o comando y otra para pasar los archivos de datos y otra información, como las listas de directorios. El flujo de control se transmite a través de una conexión TCP tradicional. El cliente se vincula a un puerto sin privilegios alto y envía una solicitud de conexión al servidor FTP, que está vinculado al puerto 21. Esta conexión se utiliza para pasar comandos.

En modo puerto o activo, el cliente le dice al servidor en qué puerto secundario sin privilegios escuchará. Luego, el servidor inicia la conexión de datos desde el puerto 20 al puerto sin privilegios que especificó el cliente.

El modo pasivo, un mecanismo más nuevo, es el predeterminado cuando el cliente es un navegador web. En lugar de estar vinculado al puerto 20, el servidor le dice al cliente qué puerto alto usar para la transferencia de datos. Luego, los datos se transmiten a través de puertos sin privilegios entre el cliente y el servidor.

Para obtener más detalles, consulte:

http://tools.ietf.org/html/rfc959

EDITAR

En cuanto a bloquear el servidor en un solo puerto en particular, puede ser posible en algunos servidores. Por ejemplo, en vsftpd, tiene las siguientes opciones de configuración.

   pasv_max_port
          The maximum port to allocate for PASV style data connections. Can be used to specify a narrow port range to assist firewalling.

          Default: 0 (use any port)

   pasv_min_port
          The minimum port to allocate for PASV style data connections. Can be used to specify a narrow port range to assist firewalling.

          Default: 0 (use any port)

Si establece ambos puertos al mismo, por ejemplo, pasv_max_port=12345, pasv_min_port=12345, puede obtener lo que busca. Sospecho que esto limitará la cantidad de sesiones FTP simultáneas que admitirá su servidor. Por favor prueba para estar seguro.

Calificaciones y reseñas

Tienes la posibilidad dar difusión a este tutorial si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *