SERVICIOS DE RED E INTERNET Autor: Miguel Ángel García Felipe IES GREGORIO PRIETO Servicios de Transferencia de Ficheros SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS ÍNDICE 1. Funcionalidad del servicio de transferencia de archivos. - Características. Componentes y funcionamiento. - Protocolo FTP. - Tipos de usuarios y accesos al servicio: Acceso anónimo y acceso autorizado. - Configuración del servicio de transferencia de archivos. Permisos y cuotas. - Conexiones y modos: Conexión de control y conexión de datos. Modos activo y pasivo. - Tipos de transferencia de archivos: ASCII y Binario. - Clientes FTP: en línea de comandos, entornos “gráficos” y navegadores / exploradores. - Monitorización y registro del servicio de transferencia de archivos. - Seguridad en FTP. - FTPS (FTP/SSL): FTPS Implícito. FTPS Explícito (FTPES) - Protocolo FXP (File eXchange Protocol). 2. Servicio TFTP (Trivial File Transfer Protocol). 3. Servicios SFTP/SCP. 4. Transferencia o distribución de archivos entre iguales (peer-to-peer). - Características. Protocolos. Software. Configuración. 2 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET 1. Funcionalidad del servicio de transferencia de archivos. - Características. Componentes y funcionamiento. Es una utilidad que permite la copia de un archivo desde un ordenador a otro a través de una red de computadoras. El servicio más usado para realizar este movimiento es el FTP (File Transfer Protocol), el cual consiste en un programa FTP alojado en un servidor -llamado FTP daemon- el cual se encarga de gestionar las transacciones que solicita el cliente. Los movimientos que podemos realizar a la hora de transferir archivos de un equipo a otro son: "download" (bajada de archivos de Internet), "upload" (subida de archivos a Internet), o intercambio de objetos entre dos o más usuarios. Las redes P2P se crearon posteriormente. Se trata de un software mediante el cual se podían compartir archivos entre distintas computadoras en cualquier parte del mundo, sin necesidad de acceder a un servidor central. Actualmente, es el método de intercambio de archivos más utilizado, el cual fomentó el nacimiento de polémicos programas como Napster o Emule. - Protocolo FTP. FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, 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. 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. El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP 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. Para solucionar este problema son de gran utilidad aplicaciones como scp y sftp, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico. 3 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS - Tipos de usuarios y accesos al servicio: Acceso anónimo y acceso autorizado. Acceso anónimo Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' o una cuenta de usuario. Es la manera más cómoda fuera del servicio web de permitir que todo el mundo tenga acceso a cierta información sin que para ello el administrador de un sistema tenga que crear una cuenta para cada usuario. Si un servidor posee servicio 'FTP anonymous' solamente con teclear la palabra «anonymous», cuando pregunte por tu usuario tendrás acceso a ese sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás que introducir una sólo para ese momento, normalmente se suele utilizar la dirección de correo electrónico propia. Solamente con eso se consigue acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo podrás leer y copiar los archivos que sean públicos, así indicados por el administrador del servidor al que nos queramos conectar. Normalmente, se utiliza un servidor FTP anónimo para depositar grandes archivos que no tienen utilidad si no son transferidos a la máquina del usuario, como por ejemplo programas, y se reservan los servidores de páginas web (HTTP) para almacenar información textual destinada a la lectura en línea. Acceso autorizado Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la información de las distintas cuentas de usuario que pueden acceder a él, de manera que para iniciar una sesión FTP debemos introducir una 4 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET autentificación (en inglés: login) y una contraseña (en inglés: password) que nos identifica unívocamente. - Configuración del servicio de transferencia de archivos. Permisos y cuotas. El protocolo FTP se desarrolló en entornos de tipo UNIX similares a los populares GNU/Linux. Por eso tenemos los permisos de ejecución, lectura y escritura, estableciendose tres tipos de usuarios: Propietario: Es normalmente la persona que ha creado o que ha subido el archivo al servidor FTP. Grupo: Se refiere a un grupo de usuarios al que probablemente pertenece el propietario. Otros: Son todos los demás usuarios anónimos o que no pertenecen al grupo indicado. Para establecer los permisos de escritura existe un algoritmo, el cual asigna valores al tipo de acceso que se quiere otorgar a cada tipo de usuario. 4=lectura 2= escritura 1= ejecución Los permisos se asignan acorde con la suma de los tipos ya descritos. Por ejemplo: 6 (4+2) = lectura y escritura 5 (4+1) = lectura y ejecución 3 (2+1) = escritura y ejecución 7 (4+2+1) = lectura, escritura y ejecución Las combinaciones se dan en el siguiente orden: propietario, grupo y usuarios. Por ejemplo: 755, otorga lectura, escritura y ejecución al propietario, y al grupo y otros le otorga los permisos de ejecución y lectura. - Conexiones y modos: Conexión de control y conexión de datos. Modos activo y pasivo. 5 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS FTP admite dos modos de conexión del cliente. Estos modos se denominan activo (o Estándar, o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión) y pasivo (o PASV, porque en este caso envía comandos tipo PASV). 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. 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 6 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS 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 (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. - Tipos de transferencia de archivos: ASCII y Binario. 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 7 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio... Ejemplos de cómo transferir algunos tipos de archivo dependiendo de su extensión: En la red existen diversas soluciones de software que desarrolla este tipo de tecnología, los más conocidos, son Filezilla (software libre) y CuteFTP (shareware). - Clientes FTP: en línea de comandos, entornos “gráficos” y navegadores / exploradores. Un cliente FTP emplea el protocolo FTP para conectarse a un servidor FTP para transferir archivos. Algunos clientes de FTP básicos vienen integrados en los sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles clientes con más funcionalidades, habitualmente en forma de shareware/freeware para Windows y como software libre para sistemas de tipo Unix. Muchos navegadores recientes también llevan integrados clientes FTP (aunque un cliente FTP trabajará mejor para FTP privadas que un navegador). Algunos sistemas operativos, incluyendo los Windows más recientes y Mac OS X pueden montar servidores FTP como unidades virtuales directamente dentro del sistema operativo, como puede ser fireftp para firefox, pues es un plugin que se puede 8 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET añadir al navegador, solo si se necesita. Lo que puede resultar más fácil o más conveniente para algunos usuarios, que emplear un cliente especializado. Core FTP Lite Core FTP Lite es un cliente FTP de Windows que soporta la carga / descarga / borrado de directorios (carpetas) y archivos, navegador de integración, SFTP (o FTP seguro), SSL / TLS, el manejo de permisos de archivos, control de ancho de banda de transferencia, etc. FileZilla código abierto cliente FTP / SFTP FileZilla es una fuente libre, abierta de cliente FTP para Windows, Linux y Mac OS X se distribuye bajo la Licencia Pública General de GNU. Usted puede hacer lo de siempre, cargar y descargar archivos, así como reanudar cargas y descargas, funciona con servidores de seguridad, compatible con SFTP (Secure FTP) y conexiones seguras SSL, manejar las colas de archivos a subir / descargar, etc. OneButton FTP OneButton FTP es un cliente gráfico de FTP para Mac OS X utilizando el marco del Cacao. Según el sitio web, soporta arrastrar y soltar archivos y las colas. Se necesita Mac OS X 10.4 o posterior. Curl Curl es una herramienta de línea de comandos que le permite transferir archivos a través de FTP, SFTP, TFTP, FTPS, Telnet, DICT, FILE y LDAP, etc También puede utilizar los protocolos HTTP y HTTPS GET y PUT métodos para cargar y descargar archivos. Es compatible con servidores proxy SSL, cookies, y la autenticación de usuario / contraseña. La herramienta es de código abierto y compatible con Mac OS X, Windows, Linux, AIX, AmigaOS, BeOS, DOS, FreeBSD, NetBSD, FreeBSD, BSD, BSD 9 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS medianoche, OpenBSD, menta, GNU-Darwin, HPUX, IRIX, Netware, Open Server, OS / 2, QNX, RISC OS, Solaris, Syllable, Tru64 Unix, UnixWare, VMS, etc El programa se distribuye bajo una licencia de código abierto. Cyberduck Cyberduck es un FTP de código abierto y el navegador de SFTP para Mac OS X. Soporta arrastrar y soltar, reanudar las cargas y descargas, la sincronización de archivos en un equipo local con un servidor, carga y descarga de carpetas, etc está licenciado bajo la GNU GPL. Fugu - Mac OS X SFTP / SCP / SSH FrontEnd Fugu es una interfaz de código abierto para SFTP (Secure FTP), SCP y SSH. Es liberado bajo la licencia BSD, y es compatible con Mac OS X. Net Transport Net Transport es un gestor de descargas para Windows compatibles con múltiples flujos de carga a través de HTTP, HTTPS, FTP, MMS (Microsoft Media Services), RTSP (Real-Time Streaming Protocol) y PNM. Usted puede realizar la descarga por lotes, categorizar sus archivos de descarga, el trabajo a través de múltiples proxies, programar tus descargas, limitar la velocidad de descarga, etc Hay archivos de idioma para numerosos idiomas. PuTTy: Win32 SSH / FTP seguro (SFTP) cliente PuTTY es un conjunto de programas libre de código abierto. Incluye un cliente de Secure Shell (SSH), un cliente de SCP (Secure Copy), una línea de comandos segura cliente FTP (SFTP), un cliente de Telnet, etc NcFTP NcFTP es una es un cliente FTP gratuito en la línea de comandos para Linux, Windows, Mac OS X, y un gran número de sistemas Unix y tipo. Viene con código fuente. Cliente FTP Commander Al igual que otros clientes de FTP, FTP Commander puede cargar o descargar archivos, crear y borrar directorios, renombrar archivos, activar descargas múltiples, y mantener un registro de la sesión. Se trata de un programa de Windows. i.FTP i.FTP es un cliente FTP de Windows que viene con código fuente. También hay una versión anterior de BeOS. 10 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET Star Downloader Star Downloader maneja FTP y descargas HTTP, puede reanudar descargas interrumpidas, contiene una instalación de descomprimir integrado, soporta servidores proxy, tiene la capacidad de dividir un archivo en varias partes y descargarlos todos al mismo tiempo (en teoría le ahorra tiempo de descarga), se integra con los navegadores (para ser gerente de tu navegador Web de descargas por defecto), maneja varios idiomas, incluye un planificador, la integración con el software antivirus, incluye un visor de texto, etc Tenga en cuenta que, como su nombre indica, Star Downloader no es un gestor de descargas FTP completos hecho y derecho cliente, así que si estás buscando una herramienta para cargar su sitio, esto probablemente no es la herramienta correcta. AceFTP Freeware Esta es una versión gratuita del cliente AceFTP comerciales. Tiene las características habituales de FTP que permite subir y descargar archivos y gestionar su sitio web. A veces no tenemos instalado o a mano un programa para subir archivos por FTP. O simplemente preferimos no recurrir a un programa cliente cuando podemos usar el mismo navegador. Efectivamente, los navegadores pueden establecer conexiones mediante el protocolo FTP además del protocolo HTTP que emplean habitualmente para requerir páginas web. Basta teclear en la barra de navegación la dirección ftp://usuario@servidor (Donde usuario es por supuesto el login o nombre de usuario con el que accedes al servidor, y servidor es la dirección del servidor al que quieres acceder) Se abrirá una ventana solicitando la contraseña, si es necesaria, y ya está. Una vez dentro del sitio, puedes navegar por su árbol de directorios y hacer las operaciones típicas: subir, bajar, eliminar, copiar… 11 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS - Monitorización y registro del servicio de transferencia de archivos. Para saber quién está conectado a su servidor vía FTP, en qué directorios se encuentran y qué archivos están cargando o descargando del servidor: 1. Vaya a Herramientas y utilidades > Sesiones Activas. 2. Haga clic en la pestaña Sesiones FTP. Se mostrarán todas las sesiones, incluida la suya, así como los siguientes detalles: Estado. Estado actual de la conexión FTP. Nombre de usuario FTP. Nombre de usuario usado para acceder a la cuenta FTP. Nombre de dominio. Dominio en el que el usuario FTP está conectado. Ubicación actual. Directorio donde se encuentra el usuario FTP. Nombre del Archivo. El nombre de archivo con el que se opera. Velocidad. Velocidad de transferencias en kilo bites. Progreso, %. Progreso de la operación de transferencia de archivo en porcentaje. Dirección IP. Dirección IP desde la que se accede a la cuenta FTP. Hora de acceso. Tiempo transcurrido desde que el usuario se conectó. Tiempo de inactividad. Tiempo en que el usuario no estaba realizando ninguna acción en el panel de control aún y estando conectado. 3. Para actualizar la lista de sesiones FTP haga clic en Actualizar 4. Para finalizar la sesión marque la casilla respectiva y haga clic en Eliminar. - Seguridad en FTP. El mayor problema con el FTP es que el servidor sólo puede manejar nombres de usuario y contraseñas en texto plano. Esta es una de las razones por las que la cuenta de root no se puede utilizar para el acceso FTP en la mayoría de los servidores. Lo mismo se aplica para telnet. Por estas razones, hay varias alternativas incluyendo FTP seguro (SFTP), que a pesar del nombre es muy diferente de FTP. SFTP se aplica el cifrado de los mensajes entre el cliente y el servidor. 12 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET También hay otra alternativa FTPS. Podemos pensar que FTP es a FTPS lo que HTTPS a HTTP. Los nombres de usuario y las contraseñas no son las únicas cosas que se envían a través de un texto claro. Los mismos archivos se cargan o descargan sin ningún tipo de cifrado. Problemas de seguridad en el FTP El comando PORT En los últimos años, se ha incrementado el debate en torno a los problemas relacionados con el comando PORT del protocolo del FTP. Estos problemas se basan el uso erróneo de dicho comando. El Protocolo FTP Para entender estos ataques, es necesario tener una comprensión básica del protocolo FTP, para ello recordaremos su funcionamiento: Un cliente abre una conexión al puerto de control de ftp (21) de un FTP SERVER. De este modo, para que el servidor sea capaz luego de enviar datos de nuevo a la máquina del cliente, una segunda conexión (de datos) debe abrirse entre el servidor y el cliente. Para hacer esta segunda conexión, el cliente envía un comando PORT al servidor. Este comando incluye parámetros que indican al servidor cuál IP ADDRESS conectar y qué puerto abrir en aquella dirección. El servidor luego abre aquella conexión, siendo la fuente de la conexión el puerto 20 del servidor y el destino el puerto identificado en los parámetros del comando PORT. 13 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS El comando PORT se utiliza generalmente sólo en el " modo activo " del ftp (por default). No se suele utilizar en modo pasivo (PASV). Debe notarse que los servidores de ftp generalmente implementan ambos modos en ejecución, y el cliente especifica qué método utilizar. El ataque “Ftp bounce” Conforme con el protocolo FTP, el comando PORT hace que la máquina que lo origina especifique una máquina de destino y un puerto arbitrarios para la conexión de datos. Sin embargo, esto también significa que un hacker puede abrir una conexión a un puerto del hacker eligiendo una máquina que puede no ser el cliente original. Hacer esta conexión a una máquina arbitraria es hacer un ataque “ftp bounce”. Se presentan seguidamente varios ejemplos de cómo los hackers pueden utilizar el “ftp bounce”. “Scanning” de puertos Un hacker que desea realizar una port scan contra un sitio puede hacerlo de un server FTP de un tercero, que actúa como un “puente” para el scan. El sitio de la víctima ve la exploración como procedente del server FTP más que de la fuente verdadera (el cliente FTP). “Bypass” de dispositivos básicos de filtrado de paquetes. Un hacker puede realizar un “bypass” de un firewall en ciertas configuraciones de red. Por ejemplo, supongamos que un sitio tiene su servidor de FTP anónimo detrás del firewall. Usando la técnica de escaneo de puertos, un hacker determina que un web server interno en ese sitio está disponible en el acceso 8080, un puerto normalmente bloqueado por un firewall. Conectándose al server FTP público del sitio, el hacker inicia otra conexión entre el server FTP y un puerto arbitrario, en una máquina no pública del sitio (por ejemplo el web server interno en el puerto 8080). Como resultado, el hacker establece una conexión a una máquina que sería protegida de otra manera por el firewall. Bypass de dispositivos de filtrado dinámicos Otro problema se refiere a los sitios que tienen firewalls que utilizan filtros dinámicos para protegerse. Los sitios están abiertos al ataque porque el firewall confía en la información que recibe. Como el firewall de filtros dinámicos examina los paquetes de salida para determinar si alguna acción se requiere de su parte, observa el comando PORT y permite una conexión entrante del server web remoto al port del telnet en la máquina de la 14 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET víctima. Esta conexión normalmente no es permitida por el firewall; fue permitida en este caso porque el comando PORT fue realizado por el cliente. Soluciones Software del Ftp server La mejor solución al problema del “ftp bounce” desde la perspectiva de la seguridad es asegurarse de que el software del server FTP no puede establecer conexiones a máquinas arbitrarias. - FTPS (FTP/SSL): FTPS Implícito. FTPS Explícito (FTPES) FTPS (comúnmente referido como FTP/SSL) es un nombre usado para abarcar un número de formas en las cuales el software FTP puede realizar transferencias de ficheros seguras. Cada forma conlleva el uso de una capa SSL/TLS debajo del protocolo estándar FTP para cifrar los canales de control y/o datos. No debería confundirse con el protocolo de transferencia de ficheros SFTP, el cual suele ser usado con SSH. El uso más común de FTP y SSL es: AUTH TLS o FTPS Explicito, nombrado por el comando emitido para indicar que la seguridad TLS es obligatoria. Este es el método preferido de acuerdo al RFC que define FTP sobre TLS. El cliente se conecta al puerto 21 del servidor y comienza una sesión FTP sin cifrar de manera tradicional, pero pide que la seguridad TLS sea usada y realiza la negociación apropiada antes de enviar cualquier dato sensible. AUTH como está definido en RFC 2228. FTPS Implícito es un estilo antiguo, pero todavía ampliamente implementado en el cual el cliente se conecta a un puerto distinto (como por ejemplo 990), y se realiza una negociación SSL antes de que se envíe cualquier comando FTP. 15 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS - Protocolo FXP (File eXchange Protocol). File eXchange Protocol (FXP) es un método de transferencia de datos, a través del cual los datos se envían de un servidor FTP a otro sin pasar por un cliente intermedio. La comunicación convencional FTP consiste en un solo servidor y un solo cliente. Toda la transferencia de datos se realiza entre los dos. Durante una sesión FXP, un cliente mantiene conexiones estándares con dos servidores, dirigiendo cualquiera de los dos servidores que se conecte al otro para iniciar una transferencia de datos. Este método permite a un cliente con poco ancho de banda intercambiar datos entre dos servidores con más ancho de banda sin el retraso asociado con la comunicación convencional FTP. A lo largo de este proceso, sólo el cliente es capaz de acceder a los recursos de los dos servidores. Riesgos Sin embargo, algunos de los servidores que soportan el FXP son vulnerables a un exploit conocido como el ataque FTP Bounce, por el cual un usuario malicioso puede superar algunos cortafuegos. FXP a través de SSL Algunos servidores FTP como glFTPD, RaidenFTPd y wzdftpd soportan la negociación de un canal de dato seguro entre dos servidores mediante cualquiera de las dos órdenes de extensión del protocolo FTP: CPSV o SSCN. Normalmente, un cliente realiza esto enviando CPSV en lugar de la orden PASV (modo pasivo), o enviando SSCN antes de iniciar las transferencias pasivas. No obstante, ambos métodos aún son susceptibles a los ataques Man-in-the-middle, pues los dos servidores FTP no comprueban sus respectivos certificados SSL. 2. Servicio TFTP (Trivial File Transfer Protocol). TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial). Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre ordenadores en una red, como cuando un terminal X Window o cualquier otro cliente ligero arrancan desde un servidor de red. 16 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET Algunos detalles del TFTP: Utiliza UDP (en el puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza el puerto 21 TCP). No puede listar el contenido de los directorios. No existen mecanismos de autenticación o cifrado. Se utiliza para leer o escribir archivos de un servidor remoto. Soporta tres modos diferentes de transferencia, "netascii", "octet" y "mail", de los que los dos primeros corresponden a los modos "ascii" e "imagen" (binario) del protocolo FTP. Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente y servidor, aunque se considera servidor a aquel que abre el puerto 69 en modo UDP, y cliente a quien se conecta. Sin embargo, cada archivo transferido vía TFTP constituye un intercambio independiente de paquetes, y existe una relación cliente-servidor informal entre la máquina que inicia la comunicación y la que responde. La máquina A, que inicia la comunicación, envía un paquete RRQ (read request/petición de lectura) o WRQ (write request/petición de escritura) a la máquina B, conteniendo el nombre del archivo y el modo de transferencia. B responde con un paquete ACK (acknowledgement/confirmación), que también sirve para informar a A del puerto de la máquina B al que tendrá que enviar los paquetes restantes. La máquina origen envía paquetes de datos numerados a la máquina destino, todos excepto el último conteniendo 512 bytes de datos. La máquina destino responde con paquetes ACK numerados para todos los paquetes de datos. El paquete de datos final debe contener menos de 512 bytes de datos para indicar que es el último. Si el tamaño del archivo transferido es un múltiplo exacto de 512 bytes, el origen envía un paquete final que contiene 0 bytes de datos. 3. Servicios SFTP/SCP. SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicación que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos sobre un flujo de datos fiable. Se utiliza comúnmente con SSH para proporcionar la seguridad a los datos, aunque permite ser usado con otros protocolos de seguridad. Por lo tanto, la 17 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS seguridad no la provee directamente el protocolo SFTP, sino SSH o el protocolo que sea utilizado en su caso para este cometido. Protocolo SCP El protocolo SCP es básicamente idéntico al protocolo rcp de BSD. A diferencia de rcp, los datos son cifrados durante su transferencia, para evitar que potenciales packet sniffers extraigan información útil de los paquetes de datos. Sin embargo, el protocolo mismo no provee autenticación y seguridad; sino que espera que el protocolo subyacente, SSH, lo asegure. El modo SCP o simple communication protocol, es un protocolo simple que deja al servidor y al cliente tener múltiples conversaciones sobre una TCP normal. Este protocolo está diseñado para ser simple de implementar. El servicio principal de este protocolo es el control del dialogo entre el servidor y el cliente, administrando sus conversaciones y agilizadas en un alto porcentaje, este protocolo le permite a cualquiera de los dos establecer una sesión virtual sobre la normal. La descripción de un formato de comunicación en las cabeceras enviadas por la red es la siguiente: SCP puede solicitar de manera iterativa cualquier contraseña para establecer una conexión con un host remoto. El protocolo SCP implemente la transferencia de archivos únicamente. Para ello se conecta al host usando SSH y allí ejecuta un servidor SCP. Generalmente el programa SCP del servidor es el mismo que el del cliente. Para realizar la subida, el cliente le proporciona al servidor los archivos que desea subir y opcionalmente puede incluir otros atributos (permisos, fechas, etc.) Esto es una ventaja sobre el protocoloFTP. Para descargar, el cliente envía una solicitud por los archivos que desea descargar. El proceso de descarga está dirigido por el servidor y es el que se encarga de la seguridad del mismo. Frecuentemente, para los usos aquí detallados se utiliza el protocolo SFTP, también basado en SSH. En comparación de capacidades con el anterior protocolo SCP, que únicamente permite la transferencia de archivos (copia), el protocolo SFTP permite una serie de operaciones sobre archivos remotos. SFTP intenta ser más independiente de la plataforma que SCP, por ejemplo, con el SCP encontramos la expansión de comodines especificados por el cliente hasta el servidor, mientras que el diseño SFTP evita este problema. Aunque SCP se aplica con más frecuencia en plataformas Unix, existen servidores SFTP en la mayoría de las plataformas. El Secure Internet Live Conferencing (SILC) define el protocolo SFTP como su protocolo de transferencia de archivos por omisión. En el SILC, los datos del protocolo SFTP no están protegidos con SSH pero el protocolo de paquetes seguros de SILC se utiliza para encapsular los datos SFTP dentro de los paquetes de SILC para que se la llevara de igual a igual (peer to peer, P2P). Esto es posible ya que SFTP está diseñado para ser un protocolo independiente. SFTP utiliza el puerto 22 de TCP. 4. Transferencia o distribución de archivos entre iguales (peer-to-peer). 18 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET La principal idea de la arquitectura Peer-to-Peer (Par a par, P2P) es determinar la base y reglas necesarias para compartir recursos en un esquema donde las entidades participantes sean iguales. En la elección de los pares y el intercambio de archivos debe existir una herramienta que trabaje en un entorno distribuido y provea la característica y transparencia necesaria para el desarrollo de aplicaciones escalables; la arquitectura CORBA provee esta herramienta a través del componente negociador. - Características. Protocolos. Software. Configuración. A diferencia de la arquitectura cliente-servidor, la arquitectura peer-to-peer destaca por su disminuida dependencia con el servidor central y su control descentralizado. Algunas arquitecturas peer-to-peer no requieren servidores; los usuarios pueden establecer conexiones directas con otros usuarios sin la necesidad de pasar por un servidor. Los usuarios no están limitados por las reglas convencionales a seguir que definen los servidores, como en la arquitectura cliente-servidor. En las arquitecturas peer-to-peer que utilizan un servidor, la función de éste es mínima porque sólo se limita a proporcionar una lista de usuarios conectados a la red. En los años 90, la arquitectura cliente-servidor estaba en el tope de su rendimiento; logró renombre por que promovió el régimen de monopolio de los exportadores de datos alrededor del mundo, ofreciendo además la seguridad de firewalls para los usuarios. Sin embargo, en 1999 Napster desafía la arquitectura cliente-servidor. Napster, una aplicación basada en la arquitectura peer-to-peer, da un mayor avance en la imaginación del intercambio de archivos entre usuarios. Con su aplicación para el intercambio de archivos MP3, Napster da un nuevo alcance y dimensión de la red (Internet) y optimiza su escalabilidad. Peer-to-peer rompe los límites de una red en términos de los recursos compartidos y los costos incurridos en los servidores. Comparado con la arquitectura cliente-servidor, la arquitectura peer-to- peer es una mejor alternativa, siendo más flexible y escalable Las siguientes aplicaciones peer-to-peer son escogidas por representar la raíz y base fundamental en términos de concepto utilizadas por otras aplicaciones posteriores. Napster 19 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS Napster realiza el registro del usuario al servidor central por medio de la conexión a Internet del usuario, el servidor central guarda un índice de todos los archivos (MP3) de todos los usuarios en línea que están registrados con el servidor. El directorio que contiene los archivos que se va a compartir es leído en contenido cada vez que nos registramos en el servidor de Napster. Cuando se envía una petición (búsqueda) para una canción en particular, el servidor de Napster busca la canción en los índices que tiene de los archivos compartidos por los usuarios que están en línea y registrados en el servidor. Posteriormente, el servidor devuelve una lista de los usuarios que están actualmente conectados y que contengan (compartan) la canción que se solicitó; entonces se puede escoger alguno de los elementos de la lista y establecer una conexión directa de transferencia con el otro usuario. La función del servidor Napster es de realizar la búsqueda de los archivos y proveer información del otro usuario, posteriormente se establece una conexión directa de transferencia de archivos entre los dos pares y se procede a la transferencia del archivo. Es importante observar que el servidor no interviene en la actividad de transferencia, los bloques de datos del archivo nunca se almacenan en el servidor de Napster. Gnutella En 1999, Napster obliga a reconsiderar varias ideas sobre las redes (Internet) y cómo esta aplicación la había redefinido cuestionando las reglas de la industria de la tecnología de la información. A pesar de varias críticas provenientes de los abogados y las industria de música sobre el copyright (derechos de autor); la popularidad de Napster no se vió disminuida, más bien incrementó. Inspirado en cómo Napster cambió las reglas, otra aplicación basada en la arquitectura peer-to-peer pura, Gnutella, se incorporó a la Internet, realizando un paso más allá que Napster. La aplicación Gnutella envía un mensaje a un ordenador, el cual pasa el mensaje a otros ordenadores los cuales están conectados a su vez con otras redes, formando la red Gnutella vía Internet, para notificar la presencia del nuevo usuario. El recorrido del mensaje se realiza de la siguiente manera: El usuario cuando se conecta a la red e informa a otra computadora, que alternativamente informa a otras 10; estas 10 computadoras informan a 9 computadoras más y así sucesivamente. 20 SERVICIOS DE RED E SERVICIOS DE TRANSFERENCIA DE FICHEROS INTERNET Napster anima a los usuarios a compartir sus archivos MP3, para ser indexados en el servidor de localización; Gnutella facilita compartir todo tipo de archivos, desde MP3 hasta ficheros ejecutables sin la necesidad de un servidor. 21 SERVICIOS DE RED E INTERNET SERVICIOS DE TRANSFERENCIA DE FICHEROS - BIBLIOGRAFÍA http://es.wikipedia.org/wiki/File_Transfer_Protocol http://www.desarrolloweb.com/articulos/2311.php http://despuesdegoogle.com/2006/09/22/emplear-el-navegador-como-cliente-ftp/ http://es.wikipedia.org/wiki/FTPS http://es.wikipedia.org/wiki/File_eXchange_Protocol http://www.internetlab.es/post/637/que-significa-fxp-y-para-que-sirve http://es.wikipedia.org/wiki/TFTP http://es.wikipedia.org/wiki/Secure_Copy http://es.wikipedia.org/wiki/SSH_File_Transfer_Protocol http://www.univalle.edu/publicaciones/journal/journal11/pagina05.htm http://www.slideshare.net/felay/transferencia-de-archivos-6010698 http://es.wikipedia.org/wiki/Peer-to-peer#Redes.2C_protocolos_y_aplicaciones 22