miércoles, 16 de noviembre de 2011

Servicios de transferencia de archivos

Los sistemas de transferencia de archivos se basan en protocolos. Un protocolo de transferencia de archivos es una norma la cual rige o controla la transferencia de archivos entre dos equipos.

A diferencia de protocolos de propósito general de comunicación es que los protocolos de transferencia de archivos no están diseñados para el envío de datos de forma arbitraria o asíncrona. Su objetivo es simplemente el envío de secuencias de bits almacenados como una única unidad en un sistema de ficheros, además de los metadatos (nombre, tamaño, etc.).

Un método bastante general y un claro ejemplo de un servicio de transferencia de archivos es el Protocolo de Transferencia de Archivos (FTP).

En este sistema podemos encontrar dos tipos de transferencias de archivos:

  • Transferencia de archivos "Pull-based": El receptor inicia una solicitud de transmisión de ficheros.
  • Transferencia de archivos "Push-based": El emisor inicia una solicitud de transmisión de ficheros.7
Dentro de este sistema nos encontramos con dos partes, el servidor y el cliente.
El servidor que debe estar conectado a una red, normalmente a Internet y el cual se encarga del intercambio de datos entre diferentes equipos.
El cliente sin embargo se trata de un programa de usuario que haciendo uso de protocolos (ej.: FTP) se conecta a un servidor para la transferencia de archivos, ya sea para la descarga o subida de archivos.
El acceso se puede realizar de tres formas, anonimamente,  mediante usuarios o en calidad de invitado.
El acceso anónimo permite que los servidores que permitan o tengan habilitada esta opción podrán acceder al mismo si necesidad de una identificación dando así la posibilidad de que cualquier cliente acceda a él. Esto claro conlleva una disminución de privilegios para los clientes que se conecten anonimamente.

El acceso mediante usuarios sin embargo restringe el acceso al servidor mediante el uso de usuario los cuales poseen unas acreditaciones (id, contraseña) para el acceso y como es normal mayores privilegios, como por ejemplo, modificación de ficheros, creación, etc.

El acceso de invitado implica un acceso al servidor de forma que permita que cada usuario se conecte a la máquina mediante su usuario y contraseña, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, por tanto el entorno al que accede está controlado y restringido.

Dicho esto veremos ahora los modos de conexión que disponemos en un cliente FTP. FTP admite dos tipos de conexión del cliente:
  • 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. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para solucionar esto se desarrolló el modo pasivo.

  • 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 (PORT o PASV, según el modo en el que haya conectado), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20 (si está en modo activo). En el protocolo FTP existen 5 tipos de transferencia en ASCII y en binarios.

Es también importante saber cómo debemos transportar un archivo a través de la red. Es importante conocer cómo debemos transportar un archivo a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la información del archivo. Por eso, al ejecutar la aplicación FTP, debemos acordarnos de utilizar uno de estos comandos (o poner la correspondiente opción en un programa con interfaz gráfica):
  • 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...
Dependiendo del tipo archivos a transferir deberemos elegir un método u otro.


Referencias:

No hay comentarios:

Publicar un comentario