Sunteți pe pagina 1din 9

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

RFC 959 File Transfer Protocol (FTP)


File Transfer Protocol (FTP) es un protocolo de transferencia de archivos entre sistemas basado en la arquitectura cliente- servidor, de manera que 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 Aplicacin del modelo de capas de red TCP/IP al usuario, utilizando normalmente los puertos de red 21 y 20. Un problema bsico de FTP es que est pensado para ofrecer la mxima velocidad en la conexin, pero no la mxima seguridad, ya que todo el intercambio de informacin, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningn tipo de cifrado, con lo que un posible atacante podra fcilmente capturar este trfico, acceder al servidor, o apropiarse de los archivos transferidos.

Modelo de FTP
Para establecer el modelo completo de un sistema FTP, a continuacin se describen sus principales componentes: PI de usuario: Intrprete de protocolo de usuario. Inicia la conexin de control sobre el proceso del servidor FTP. Enva los comandos FTP y controla el DTP de usuario si este ltimo toma parte en la transferencia de archivos. DTP de usuario: Proceso de transferencia de datos de usuario. Se encuentra escuchando en un puerto de datos esperando una conexin de datos desde el servidor FTP. Si dos servidores transfieren datos entre si, el DTP de usuario se inactiva. PI de servidor: Intrprete de protocolo de servidor. Se encuentra escuchando por una conexin de control desde el PI de usuario. Recibe los comandos FTP, manda las respuestas y controla el DTP de servidor si as es necesario. DTP de servidor: Proceso de transferencia de datos de servidor. En su estado normal activo, establece e inicia la conexin de datos con el puerto de datos que se encuentra escuchando. Setea los parmetros para la transferencia y el almacenamiento. En el estado pasivo no inicia la conexin, sino, se encuentra escuchando en el puerto por ella.

RFC 959 File Transfer Protocol (FTP) El siguiente modelo representa el diagrama de un servicio FTP:

SEBASTIN PEALOZA R.

Interfaz de Usuario

USUARIO

PI de Servidor

PI de Usuario

Sistema de archivos

DTP de Servidor Servidor FTP

DTP de Usuario Cliente FTP

Sistema de archivos

Fig.1. Modelo de servicio FTP.

1: Conexin de Control: Comandos FTP, Respuestas FTP. Usualmente puerto 21. 2: Conexin de Datos: Transferencia de datos. Usualmente puerto 20. El funcionamiento del sistema se puede resumir en los siguientes pasos: 1) En el modelo, el intrprete de protocolo (PI) de usuario, inicia la conexin de control en el puerto 21, que obedece el protocolo Telnet. Las rdenes FTP estndar las genera el PI de usuario y se transmiten al proceso del servidor a travs de la conexin de control. Las respuestas estndar se envan desde el PI del servidor al PI de usuario por la conexin de control como respuesta a las rdenes. 2) Estas rdenes FTP especifican parmetros para la conexin de datos (puerto de datos, modo de transferencia, tipo de representacin y estructura) y la naturaleza de la operacin sobre el sistema de archivos (almacenar, recuperar, aadir, borrar, etc.). 3) El proceso de transferencia de datos DTP de usuario, debe esperar a que el servidor inicie la conexin al puerto de datos especificado (puerto 20 en modo activo o estndar) y transferir los datos en funcin de los parmetros que se hayan especificado.

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

Se puede observar en la fig. 1 que la comunicacin entre cliente y servidor es independiente del sistema de archivos utilizado en cada computador, de manera que no importa que sus sistemas operativos sean distintos, porque las entidades que se comunican entre s son los PI y los DTP, que usan el mismo protocolo estandarizado FTP. La conexin de datos establecida es bidireccional (full-duplex), es decir, se puede usar simultneamente para enviar y para recibir. Adems no tiene por qu existir todo el tiempo que dura la conexin FTP (la conexin de control puede ser establecida independientemente). El protocolo FTP requiere que la conexin de control este abierta mientras exista una transferencia de datos. En este sentido es responsabilidad del usuario hacer el request de cierre de la conexin de control cuando deje de ocupar el servicio FTP. Por tanto, el servidor es quien toma dicha accin. As mismo, el servidor debe abortar la transferencia de datos si la conexin de control se cierra sin haber recibido el comando respectivo. Un punto importante es la relacin entre FTP y Telnet. Como ya se enunci, FTP utiliza el protocolo Telnet para establecer la conexin de control. Para ello existirn dos formas: la primera sera que los PI de usuario o servidor implementen las reglas del protocolo Telnet directamente en sus procesos, y la segunda es que alguno de ellos utilice un modulo de Telnet existente en el sistema. La primera opcin presenta eficiencia e independencia. La segunda, facilidad de implementacin. En la prctica, FTP ocupa muy pocas funcionalidades de Telnet, con lo que en la primera opcin se utilizara una baja cantidad de cdigo para la implementacin. Como otro punto importante, en el texto se describe la conexin de control, los parmetros definidos a travs de los comandos y las respuestas enviadas entre los PI de usuario y servidor. En la siguiente seccin se enumeran las principales consideraciones hechas en el texto.

Conexin de Control. Comandos y Respuestas.


Los archivos son transferidos exclusivamente por la conexin de datos. Por su parte, la conexin de control es utilizada para transferir comandos que describen las funciones a ejecutar, y las respuestas a estos comandos. Muchos de estos comandos tienen relacin con la transferencia de datos entre hosts. Por ej. el comando MODE especifica como sern transmitidos los bits de informacin del archivo, los comandos STRU y TYPE definen la manera en que ser representada la informacin, etc. Existen otros parmetros como los modos de transmisin, o el uso de compresin que se definen implcitamente a travs de algunos comandos, en este caso STRU y TYPE respectivamente. Entre los tipos de comandos existirn tres categoras: 1. Comandos de Control de acceso 2. Comandos de Parmetros de transferencia 3. Comandos de Servicios FTP

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

1. Comandos de Control de acceso


Estos comandos especifican identificadores para el control de acceso al servicio:

Comando USER PASS ACCT CWD CDUP SMNT REIN

QUIT

Descripcin El argumento de este comando es un string Telnet con el nombre de usuario que lo identifica en el sistema. Es requerido para acceder al sistema de archivos del servidor. En un string Telnet de argumento se especifica el password del usuario. Este comando siempre es precedido por USER. Un string Telnet con el nombre de la cuenta constituye el argumento de este comando. Permite al usuario cambiar de directorio de trabajo sin alterar su estada en el sistema. El argumento es algn directorio. Caso particular del anterior. Sirve para cambiar al directorio raz desde cualquier ubicacin. Sirve para montar un sistema de archivos distinto sin alterar la estada del usuario. Reinicializa el sistema para el ingreso de un nuevo usuario. Resetea parmetros. Permite que se terminen procesos. Permite cerrar la sesin de un cliente o usuario. Si no hay transferencia de archivos, el servidor cierra la conexin de control. Si existe dicha transferencia, espera la respuesta y despus cierra la sesin.
Tabla 1. Comandos de control de acceso.

2. Comandos de Parmetros de transferencia


Los parmetros de transferencia tienen valores por defecto. Con los siguientes comandos estos pueden ser alterados antes de acceder a los servicios FTP: Comando PORT PASV Descripcin Especifica el puerto de la conexin de datos. Existen puertos estndar para el servidor y el usuario. Comando que hace una peticin al DTP de servidor para que escuche en un puerto (no el por defecto) para la conexin de datos. El argumento de este comando especifica el tipo de representacin de la data: A, E, I o L (ASCII, EBCDIC, Image, Local).

TYPE

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

STRU MODE

El argumento es un carcter que especifica la estructura de archivo como F, R o P (File, Record structure, Page structure) Un carcter especifica el modo de transmisin de los datos en S, B o C (Stream, Bloque o Comprimida)
Tabla 2. Comandos de Parmetros de transferencia.

3. Comandos de Servicios FTP


Estos comandos definen las funciones que un usuario podra utilizar sobre los archivos correspondientes:

Comando RETR STOR STOU APPE ALLO REST RNFR RNTO ABOR DELE RMD MKD PWD LIST NLST SITE

Descripcin Comando que da la orden al DTP de servidor para que transfiera una copia del archivo al DTP de usuario. Da la orden para que el DTP de servidor acepte el archivo transferido hacia el lado servidor y lo guarde. Caso particular del comando anterior donde el archivo queda en un directorio con nombre nico. Ordena al DTP de servidor aceptar un archivo y si este existiese, adjunta la informacin a dicho archivo antiguo. Este comando permite reservar un espacio en disco duro en el servidor para un posible archivo. Reinicia la transferencia de un archivo indicando el marcador del servidor. Este comando especifica el nombre antiguo de un directorio que ser renombrado. Especifica el nombre nuevo de un directorio que ser renombrado. Junto a RNFR cambia el nombre. Aborta el comando ingresado previamente y las acciones que se lleven a cabo debido a l. Elimina el archivo especificado en el lado del servidor. Remueve un directorio completo. Crea un directorio nuevo. Este comando hace que el nombre del directorio de trabajo sea retornado en una respuesta. Comando que provoca el envi de una lista de archivos desde el servidor al DTP. Se debe setear de manera correcta el tipo antes. Enva una lista de directorios desde el servidor hacia el usuario. Comando que sirve para que el servidor provea servicios ms especificos.

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

SIST. STAT HELP NOV

Comando que sirve para identificar el sistema operativo del servidor. Causa el envi de una respuesta de status de las operaciones en desarrollo. Entrega informacin acerca de cualquiera de los comandos implementados y su sintaxis. Sirve para recibir una respuesta de OK del servidor. No altera otros parmetros.
Tabla 3. Comandos de servicios FTP.

Por su parte, las respuestas FTP son generadas frente a la recepcin de alguno de los comandos mencionados anteriormente. Su funcin principal es asegurar la sincronizacin entre las peticiones y las acciones, adems de que el usuario conozca el estado del servidor en todo momento. Cada comando generar por lo menos una respuesta que consta de tres dgitos XXX seguidos por un pequeo texto. Estos tres dgitos codifican las respuestas. El primero las encasilla como buenas, malas o incompletas, el segundo especfica el error identificado en el primero, y el tercero es utilizado para establecer informacin ms especfica.

Considerando lo anterior, las siguientes tablas representan el significado de los dos primeros dgitos (el tercer dgito esta ntimamente relacionado al significado de los otros dos):

Primer dgito 1XX 2XX 3XX

4XX

5XX

Significado El comando fue aceptado pero se debe esperar una segunda respuesta para ingresar nuevo comando. El comando fue aceptado y la accin se llev a cabo con xito. Se puede ingresar uno nuevo. El comando fue aceptado pero se necesita el ingreso de otro comando especificando informacin requerida. El comando fue rechazado y la accin requerida no se efectu, pero el error es temporal y la accin podra ser solicitada de nuevo. Comando no aceptado y accin no efectuada.

Tabla 4. Codificacin primer dgito de respuestas.

RFC 959 File Transfer Protocol (FTP) Segundo dgito X0X X1X X2X X3X X4X X5X

SEBASTIN PEALOZA R.

Significado Error de sintaxis. Respuesta a requerimiento de informacin. Respuesta asociada a conexiones de control o conexin. Asociada a procesos de autentificacin o de accounting. No especificada. Asociada a sistema de archivos.

Tabla 5. Codificacin segundo dgito de respuestas.

Es as como por ej. se tendrn algunas respuestas del tipo: 200 Comando OK 502 Comando no implementado 503 Secuencia errnea de comandos 214 Mensaje de ayuda

Informacin adicional
A continuacin se presenta informacin que apoya lo sealado en secciones anteriores mostrando la aplicacin de algunos de los comandos estudiados y estableciendo relaciones entre los sistemas completos de cliente- servidor:

Servidor FTP
Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su funcin es permitir el intercambio de datos entre diferentes servidores/computadores. Por lo general, los programas servidores FTP no suelen encontrarse en los computadores personales, por lo que un usuario normalmente utilizar el FTP para conectarse remotamente a uno y as intercambiar informacin con l. Las aplicaciones ms comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus pginas web y sus archivos correspondientes; o como servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa. Para ello, existen protocolos de comunicacin FTP para que los datos se transmitan cifrados, como el SFTP (Secure File Transfer Protocol).

Cliente FTP
Cuando un navegador no est equipado con la funcin FTP, o si se quiere cargar archivos en un equipo remoto, se necesitar utilizar un programa cliente FTP. Un cliente FTP es un programa

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

que se instala en el computador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos. Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el computador en que reside (servidor, en el caso de descarga de archivos), el computador al que se quiere transferir el archivo (en caso de querer subirlo al servidor), y la carpeta en la que se encuentra. Algunos clientes de FTP bsicos en modo consola vienen integrados en los sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles clientes con opciones aadidas e interfaz grfica. Aunque muchos navegadores tienen ya integrado FTP, es ms confiable a la hora de conectarse con servidores FTP no annimos utilizar un programa cliente.

Modo de Acceso annimo a servidor FTP


Los servidores FTP annimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USERID' o una cuenta de usuario. Es la manera ms cmoda fuera del servicio web de permitir que todo el mundo tenga acceso a cierta informacin 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 se pregunte por usuario se tendr acceso a ese sistema. No se necesita ninguna contrasea preestablecida, sin embargo normalmente se suele utilizar la direccin de correo electrnico propia. Solamente con eso se consigue acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo se puede leer y copiar los archivos existentes, pero no modificarlos ni crear otros nuevos.

Modo de Acceso de usuario


Si se desean tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificacin de archivos existentes, y de la posibilidad de subir propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la informacin de las distintas cuentas de usuario que pueden acceder a l, de manera que para iniciar una sesin FTP debemos introducir un login y un password que nos identifica unvocamente.

Modo de Acceso de invitado


El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores. La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la mquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de

RFC 959 File Transfer Protocol (FTP)

SEBASTIN PEALOZA R.

archivos que no necesita para realizar su trabajo, de esta forma acceder a un entorno restringido, algo muy similar a lo que sucede en los accesos annimos, pero con ms privilegios.

Modos de conexin del cliente FTP


FTP admite dos modos de conexin del cliente. Estos modos se denominan Activo (o Estndar, o PORT, debido a que el cliente enva comandos tipo PORT al servidor por el canal de control al establecer la conexin) y Pasivo (o PASV, porque en este caso enva comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente establece una conexin 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 indicndole ese nmero de puerto, de manera que el servidor pueda abrirle una conexin de datos por donde se transferirn los archivos y los listados, en el puerto especificado. Lo anterior tiene un grave problema de seguridad, y es que la mquina cliente debe estar dispuesta a aceptar cualquier conexin de entrada en un puerto superior al 1024, con los problemas que ello implica si se tiene el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarn esas conexiones aleatorias. Para solucionar esto se desarroll el modo Pasivo. Modo Pasivo Cuando el cliente enva un comando PASV sobre el canal de control, el servidor FTP abre un puerto efmero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente FTP para que, de esta manera, sea el cliente quien conecte con ese puerto del servidor y as no sea necesario aceptar conexiones aleatorias inseguras para realizar la transferencia de datos. 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, segn el modo en el que haya conectado), y el servidor recibir esa conexin de datos en un nuevo puerto aleatorio (si est en modo pasivo) o por el puerto 20 (si est en modo activo).

S-ar putea să vă placă și