jueves, 17 de noviembre de 2011

Servicio de transferencia de archivos

El FTP se basa en el modelo cliente/servidor y permite la transferencia de ficheros tanto del servidor al cliente, como del cliente al servidor. Asimismo, permite que un cliente efectúe transferencias directas de un servidor a otro, con lo que se ahorra la necesidad de copiar
los ficheros del primer servidor al cliente y pasarlos después del cliente al segundo servidor.
El protocolo proporciona también operaciones para que el cliente pueda manipular el sistema de ficheros del servidor: borrar ficheros o cambiarles el nombre, crear y borrar directorios, listar sus contenidos, etc.
Uno de los objetivos principales de este protocolo consiste en permitir la interoperabilidad entre sistemas muy distintos, escondiendo los detalles de la estructura interna de los sistemas de ficheros locales y de la organización de los contenidos de los ficheros.
Otra variante a considerar sería SFTP pues la información de nuestras credenciales de usuario y contraseña están encriptadas y el proceso se realizaría con la implementación del servicio SSH.

Los clientes establecen una conexión TCP de control con el servidor (normalmente en el puerto 21 del servidor)
Sobre esta conexión, cliente y servidor se intercambian información de usuarios, contraseñas, nombres de ficheros, operaciones,…
En base a la negociación que se establece sobre la conexión de control se decide como subir/descargar los datos

Existen dos tipos de usuarios:

Usuarios FTP: aquellos que disponen de una cuenta en la máquina que ofrece el servicio FTP.
Usuarios anónimos: usuarios cuales quiera que, al conectarse al servidor FTP, sólo deben introducir una contraseña simbólica. Sólo tienen acceso a una parte limitada del sistema de archivos.

FTP admite dos modos de conexión del cliente. Estos modos se denominan activo y pasivo. Tanto en el modo Activo como en el modo Pasivo, el cliente establece una conexión con el servidor mediante el puerto 21, que establece el canal de control.

Modo activo

En modo Activo, el servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados, en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica si tenemos el equipo conectado a una red insegura como Internet.



Modo pasivo

Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control, el puerto (mayor a 1023 del servidor. Ej:2040) al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control (ej: 1036) hacia el puerto del servidor especificado anteriormente (ej: 2040).
Antes de cada nueva transferencia tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20


Existen dos tipos de transferencia de archivos:
tipo ascii : Adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que puedan contener.
tipo binario: Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio...

No hay comentarios:

Publicar un comentario