Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Singularidades del FTP, de lo esencial a lo concreto. Conexiones activas y pasivas.

Publicado en 27 julio, 2012, por en Redes, Varios, Web.

En este Post analizaré el uso del FTP (Protocolo de transferencia de Ficheros), así como  sus particularidades y aspectos relacionados con su funcionamiento.

Para ello usaremos un programa libre (cliente FTP)  llamado Filezilla. Existen más, pero este es el mas destacado, con disponibilidad de versiones para Windows, Mac y Linux. Me gustaría aclarar que FTP es distinto concepto que Filezilla. Uno es el protocolo, y lo otro, es la aplicación que lo emplea. Existiendo muchas mas.

Hacer FTP es cada vez más empleado y conocido por los usuarios e internautas. Sin necesidad de ser un experto, gracias al programa que usa este protocolo, podemos transmitir archivos hacia Internet, generalmente desde un ordenador. El programa más empleado y de carácter gratuito es Filezilla. En este enlace podemos descargarlo.

A continuación pasaré a analizar de lo sencillo a lo «complejo» las particularidades del FTP …

Cuando conectamos por FTP, para dejar un archivo habitualmente  en un servidor, necesitamos especificar el usuario, y la contraseña. Además es preciso saber la dirección de la máquina y el puerto donde nos conectamos. En líneas generales necesitamos 4 parámetros.

Dirección ó IP (número), puerto, usuario y contraseña.

Ejemplo ftp.ladireccion.es, puerto numero 21, usuario: oscar, mipassword.

Esto resume el mecanismo de acceso de forma esencial.

Una vez ejecutado el programa, y agregado estos parametros en un sitio, podremos navegar por la estructura de directorios remota. Descargar ficheros (downloads) o subir archivos (uploads).

La carpeta donde se encuentran las páginas web, si es que posee, suele ser generalmente el directorio HTML, aunque puede variar de nombre (httpdoc, web, etc). No necesariamente podemos subir paginas web, sino también ficheros que pueden no ser visibles mediante URL o usando el navegador. En muchos proveedores este otro directorio es DATA, private, etc …

 

 

Hasta aquí un resumen,  más o menos sencillo del FTP. Veamos algo más de este protocolo.

FTP  es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Digo TCP puesto que no usa UDP. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo. Este último aspecto otorga gran potencia a este sistema. Las trasferencias pueden ser ASCII o binarias, dependiendo del tipo de archivo con el que se va a trabajar. Aunque Filezilla detecta esta característica automáticamente.

El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP OSI de ISO al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos. No quiero asustar con esto, pero técnicamente es posible …

En ocasiones cuando conectamos con Filezilla a un determinado servidor, el programa no funciona adecuadamente, no es capaz de mostrar el listado de archivos.  Esto puede ser debido al tipo de conexión establecida, activa o pasiva. Veremos más adelante este concepto.

Como he mencionado antes, FTP es un servicio basado exclusivamente en TCP.  No existen paquetes UDP. Realmente FTP emplea 2 puertos, un  puerto de datos y uno de comandos, conocido este último como puerto de control. De forma tradicional, el puerto 21 es el de comandos, y el puerto 20 el de datos. Esto puede provocar errores, y aqui es donde entran los modos de transferencia.

El modo activo o conexión activa el cliente conecta desde un número aleatorio de puerto suyo, generalmente mayor de 1023 al puerto de comandos del servidor, puerto 21. Entonces el cliente comienza a escuchar en el puerto (N+1) los datos y notifica este estado al servidor. El servidor remoto se conecta al nuevo puerto del cliente desde su puerto 20.

En la conexión activa vemos que el servidor emplea 2 puertos, 20 y 21, y el cliente 2, creados aleatoriamente a partir del 1023 (el 1026) y uno de datos (N+1). El puerto cliente 1027 (N+1) de datos se abre cuando el servidor a través del 20 de datos lo solicita. Para finalmente transmitir del 1027 al 20 los datos. No se si esta explicación es compleja pero es lo que se ocurre en una conexion activa y se puede apreciar en la imagen.

Analizando esto, el principal problema de la conexión FTP activa, surge del lado del cliente. Estas conexiones aleatorias de puertos del cliente se bloquean desde cortafuegos locales, por lo que no funcionan adecuadamente. El error generado es error 425 Can’t open data connection.

Resumiendo.

Cuando el cliente FTP funciona en modo activo (tambien considerado modo normal) se establecen dos conexiones distintas. En primer lugar el cliente establece una conexión para la transmisión de comandos (desde un puerto aleatorio hacia el puerto 21 del servidor) y, por esa misma conexion, el cliente le indica al servidor otro puerto del cliente que ha abierto para poder recibir los datos.

Entonces, si bajamos algun archivo, es el servidor el que inicia la transmisión de datos, desde su puerto 20 al puerto que le hemos indicado. Se llama modo activo porque la transmisión de datos es iniciada desde el servidor hacia el puerto que le hemos indicado en el cliente.

El modo pasivo.

 

 

Para resolver estas particularidades  se ha desarrollado un método diferente para iniciar la conexión. El modo PASV.

En modo pasivo es siempre el programa cliente el que inicia la conexión con el servidor. Al abrir una conexión FTP se abre primero una conexión de control (desde un puerto aleatorio de la maquina local al puerto 21 del servidor). Al pasar el cliente a modo pasivo, el cliente pide un puerto abierto al servidor (será otro puerto superior al 1024 del servidor) y recibida la contestacion, será el cliente el que establezca la conexión de datos al servidor a traves de ese puerto.

A modo de resumen podemos decir que en modo pasivo las conexiones son siempre abiertas por el pc cliente, mientras que en modo activo se abren por el que envia los datos (el servidor si se trata de bajar archivos al pc local, el cliente si se trata de subir archivos al server).

Ventajas del modo pasivo y resumen del problema.

Como hemos visto, en el modo activo se abre una conexión para datos desde el servidor a la maquina cliente, esto es, una conexión de fuera a dentro.

Entonces, si la maquina cliente está detrás de un router que haga NAT o que tenga un firewall, este filtra o bloquea la conexión entrante, al no serle una respuesta a ninguna petición conocida. Así las cosas, las transferencias por FTP fallan.

Sin embargo, en modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el router no tiene ninguna conexión entrante que filtrar y las transferencias funcionan.

La esencia

Para efectuar una conexión FTP es necesario establecer 2 canales de comunicación: el de control y el de datos.

Tanto la Activa como la Pasiva el canal de control se efectúa de la misma forma.

En caso de ser activa será el servidor FTP quien se conecte al cliente FTP para establecer el canal de datos.

El Modo pasivo es el cliente quien conecta con el servidor FTP para establecer el canal de datos.

Eso es todo …

http://slacksite.com/other/ftp.html

Etiquetas:, ,

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Home Redes Singularidades del FTP, de lo esencial a lo concreto. Conexiones activas y pasivas.
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies