Sunteți pe pagina 1din 36

EL PROTOCOLO FTP

INDICE

INTRODUCCIN ARQUITECTURA DEL FTP COMANDOS FTP RESPUESTAS FTP SERVIDORES Y CLIENTES FTP FTP SEGURO: FTP SSH Y FTP SSL

Introduccin
Una de las primeras aplicaciones bsicas desarrolladas en el entorno de lo que luego sera la red Internet fue la transferencia de ficheros entre diferentes sistemas. Al principio de los aos setenta ya se elaboraron las primeras especificaciones del protocolo ms utilizado para esta finalidad, el FTP. La especificacin oficial del protocolo se public en 1985 en el documento RFC 959. http://www.ietf.org/rfc/rfc959.txt

Introduccin. Objetivos
El protocolo FTP define la manera en que los datos deben ser transferidos a travs de una red TCP/IP. Los objetivos del protocolo FTP son:
permitir la interoperabilidad entre sistemas muy diferentes, escondiendo los detalles de la estructura interna de los sistemas de archivos locales permitir que equipos remotos puedan compartir archivos permitir la independencia entre los sistemas de archivo del equipo del cliente y del equipo del servidor permitir una transferencia de datos eficaz (rpida y fiable)

Introduccin
Este protocolo proporciona tambin una serie de deficiencias en cuanto a seguridad ya que:

Utiliza un mecanismo normal de autenticacin de usuarios (usuario/contrasea) con lo que el servidor no puede garantizar que el usuario es quien dice ser. Transfiere las contraseas en texto plano (sin cifrar) No cifra la propia sesin en s misma, por lo que las transferencias de archivos tambin son en texto plano.

Introduccin
El protocolo proporciona tambin operaciones para que el cliente pueda manipular el sistema de archivos del servidor:
borrar archivos cambiarles el nombre, crear y borrar directorios listarse los contenidos, etc ..

Tipos de transferencia
El modo en que se transfieren los ficheros entre el cliente y el servidor puede ser de tipos diferentes, los dos ms importantes son: Tipo ASCII. El fichero se transmite carcter a carcter. Adecuado para transferir archivos que slo contengan caracteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo pginas HTML, pero no las imgenes que puedan contener. Tipo Binario. En este modo el fichero se envia bit a bit sin ninguna interpretacion de ningun tipo. Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imgenes, archivos de audio...

Arquitectura FTP
El protocolo FTP se basa en la arquitectura cliente-servidor, es decir, un equipo enva rdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor). Utiliza el protocolo de transporte TCP. Durante una conexin FTP, se encuentran abiertos dos canales de transmisin: * Un canal de comandos (canal de control) * Un canal de datos

Arquitectura FTP
El servidor FTP proporciona el servicio (capa de aplicacin del modelo de capas de red TCP/IP) al usuario, a travs de dos puertos bien conocidos:

el puerto 20 es el utilizado para el flujo de datos entre el cliente y el servidor y el puerto 21 para el flujo de control, es decir, para enviar las rdenes del cliente al servidor.

El cliente se conecta al servidor haciendo uso de un puerto local mayor que 1024

Arquitectura FTP
Hay dos entidades que intervienen en la transferencia de ficheros: El proceso de transferencia de datos (DTP). Est bajo el control del intrprete de protocolo, se encarga de intercambiar los datos que deben transferirse El intrprete de protocolo (PI). Se encarga del intercambio de los pedidos del protocolo.

Esquema funcionamiento FTP

Arquitectura FTP
El cliente y el servidor cuentan con dos procesos que permiten la administracin de estos dos tipos de informacin:
DTP (Proceso de transferencia de datos) es el proceso encargado de establecer la conexin y de administrar el canal de datos. El DTP del lado del servidor se denomina SERVIDOR DE DTP y el DTP del lado del cliente se denomina USUARIO DE DTP. PI (Intrprete de protocolo) interpreta el protocolo y permite que el DTP pueda ser controlado mediante los comandos recibidos a travs del canal de control.

Intrprete de protocolo FTP (PI)


El SERVIDOR PI es responsable de escuchar los comandos que provienen de un USUARIO PI a travs del canal de control en un puerto de datos, de establecer la conexin para el canal de control, de recibir los comandos FTP del USUARIO PI a travs de ste, de responderles y de ejecutar el SERVIDOR DE DTP. El USUARIO PI es responsable de establecer la conexin con el servidor FTP, de enviar los comandos FTP, de recibir respuestas del SERVIDOR PI y de controlar al USUARIO DE DTP, si fuera necesario.

Funcionamiento FTP
Cuando un cliente FTP se conecta con un servidor FTP, el USUARIO PI inicia la conexin con el servidor de acuerdo con el protocolo Telnet. El cliente enva comandos FTP al servidor, el servidor los interpreta, ejecuta su DTP y despus enva una respuesta estndar. Una vez que se establece la conexin, el servidor PI proporciona el puerto por el cual se enviarn los datos al Cliente DTP. El cliente DTP escucha el puerto especificado para los datos provenientes del servidor.
Es importante tener en cuenta que, debido a que los puertos de control y de datos son canales separados, es posible enviar comandos desde un equipo y recibir datos en otro. Entonces, por ejemplo, es posible transferir datos entre dos servidores FTP mediante el paso indirecto por un cliente para enviar instrucciones de control y la transferencia de informacin entre dos procesos del servidor conectados en el puerto correcto.

Arquitectura FTP

Modos de operacin FTP


FTP admite 2 modos para la conexin de datos. Estos modos se denominan activo y pasivo. 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. El modo por defecto suele ser el modo activo. En el modo activo la conexin es iniciada por el servidor utilizando el puerto indicado por el cliente. El el modo pasivo el cliente inicia la conexin utilizando el puerto que indica el servidor.

Modo Activo
Se establece una conexin utilizada para transmitir rdenes FTP desde cualquier puerto superior a 1024 en el cliente hacia el puerto 21 del servidor. En esa conexin establecida se comunica al servidor qu puerto utiliza el cliente para la recepcion de datos. Para ello, el cliente manda un comando PORT al servidor por el canal de control indicndole ese nmero de puerto. El servidor abre su puerto 20 para realizar la transferencia solicitada por el cliente y abre tambien el puerto indicado en el cliente para la transmision de datos.
Hay dos conexiones distintas: una peticin de transferencia por parte del cliente y una atencin a dicha peticin, iniciada por el servidor.

Esquema funcionamiento modo Activo

Modo Pasivo
En este modo es siempre el programa cliente el que inicia la conexin con el servidor. Al abrir una conexin ftp se abre primero una conexin de control (desde un puerto superior a 1024 de la maquina local al puerto 21 del servidor). Al pasar a modo pasivo (comando PASV), el cliente solicita un puerto abierto al servidor (superior al 1024 del servidor) y recibida la contestacin, ser el cliente el que establezca la conexin de datos al servidor a travs de ese puerto. En modo pasivo las conexiones son siempre abiertas por el cliente, mientras que en modo activo se abren por el que enva los datos (el server si se trata de bajar archivos, y el cliente si se trata de subir archivos al server).

Esquema funcionamiento modo pasivo

Modo activo vs Modo pasivo


El problema del Modo Activo: En este modo se abre una conexin para datos desde el servidor a la mquina cliente, esto es, una conexin de fuera a dentro... Si la maquina cliente est protegida por un firewall, es posible que filtre o bloquee la conexin entrante, al ser un proceso desconocido. En el modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexin entrante que filtrar

Comandos FTP
Los comandos FTP son los mensajes que enva el intrprete cliente, y los que enva el intrprete servidor son respuestas a estos comandos. Un comando FTP se representa por medio de un cdigo de comando de hasta cuatro letras (que pueden ser indistintamente maysculas o minsculas), seguido de una lista de cero o ms argumentos, separados por espacios, acabada con un final de lnea. Los comandos FTP son cadenas de caracteres Telnet que finalizan con el cdigo de final de lnea Telnet (es decir, la secuencia <CR>+<LF>, Retorno de carro seguido del carcter Avance de lnea indicado como <CRLF>). Si el comando FTP tiene un parmetro, ste se separa del comando con un espacio (<SP>).

Comandos FTP
Los comandos FTP hacen posible especificar: El puerto utilizado El mtodo de transferencia de datos La estructura de datos La naturaleza de la accin que se va a realizar (Recuperar, Enumerar, Almacenar, etc.)

Comandos FTP
La especificacin RFC 959 define treinta y comandos agrupadas en tres categoras diferentes: tres

Comandos de control de acceso. Los que gestionan el


acceso al servicio FTP. Por ejemplo, inicio y finalizacion de sesin, validacin de usuario, ... USER, PASS, CWD, CDUP,...

Comandos de parmetros de transferencia. Gestionan


las opciones realcionadas con la tranferencia de ficheros como el modo de transferencia binario o ASCII, los puertos, el modo pasivo o activo,... STRU, MODE, PASV, TYPE, PORT

Comandos de servicio FTP. Son las rdenes de lo que se


quiere hacer en una sesin como bajar un fichero, subirlo, modificar el nombre,... RETR, STOR, STOU, LIST, PWD, ...

Comandos de control de acceso


Comando USER Descripcin Cadena de caracteres que permite identificar al usuario. La identificacin del usuario es necesaria para establecer la comunicacin a travs del canal de datos. Cadena de caracteres que especifica la contrasea del usuario. Este comando debe ser inmediatamente precedida por el comando USER. El cliente debe decidir si esconder la visualizacin de este comando por razones de seguridad. Cadena de caracteres que especifica la cuenta del usuario. El comando generalmente no es necesario. Durante la respuesta que acepta la contrasea, si la respuesta es 230, esta etapa no es necesaria; Si la respuesta es 332, s lo es. Change Working Directory (Cambiar el directorio de trabajo): este comando permite cambiar el directorio actual. Este comando requiere la ruta de acceso al directorio para que se complete como un argumento. Change to Parent Directory (Cambiar al directorio principal): este comando permite regresar al directorio principal. Se introdujo para resolver los problemas de denominacin del directorio principal segn el sistema (generalmente ".."). Comando que permite abandonar la sesin actual. Si es necesario, el servidor espera a que finalice la transferencia en progreso y despus proporciona una respuesta antes de cerrar la conexin.

PASS

ACCT

CWD

CDUP

QUIT

Comandos de parmetros de transferencia


Comando Descripcin PORT Cadena de caracteres que permite especificar el nmero de puerto utilizado. PASV Comando que permite indicar al servidor de DTP que permanezca a la espera de una conexin en un puerto especfico elegido aleatoriamente entre los puertos disponibles. La respuesta a este comando es la direccin IP del equipo y el puerto. TYPE Este comando permite especificar el tipo de formato en el cual se enviarn los datos STRU Carcter Telnet que especifica la estructura de archivos (F de File [Archivo], R de Record [Registro], P de Page [Pgina]). MODE Carcter Telnet que especifica el mtodo de transferencia de datos (S de Stream [Flujo], B de Block [Bloque], C de Compressed [Comprimido]).

Comandos de servicio FTP


Comando Descripcin Este comando (RETRIEVE [RECUPERAR]) le pide al servidor de DTP una RETR
copia del archivo cuya ruta de acceso se da en los parmetros.

STOR

Este comando (store [almacenar]) le pide al servidor de DTP que acepte los datos enviados por el canal de datos y que los almacene en un archivo que lleve el nombre que se da en los parmetros. Si el archivo no existe, el servidor lo crea; de lo contrario, lo sobrescribe. Este comando es idntico al anterior, slo le pide al servidor que cree un archivo cuyo nombre sea nico. El nombre del archivo se enva en la respuesta. Este comando permite que se vuelva a enviar la lista de archivos y directorios presentes en el directorio actual. Esto se enva a travs del DTP pasivo. Es posible indicar un nombre de directorio en el parmetro de este comando. El servidor de DTP enviar la lista de archivos del directorio ubicado en el parmetro. Este comando (print working directory [mostrar el directorio actual]) hace posible volver a enviar la ruta del directorio actual completa.

STOU LIST

PWD

Respuestas FTP
Las respuestas FTP garantizan la sincronizacin entre el
cliente y el servidor FTP. Por lo tanto, por cada comando enviado por el cliente, el servidor eventualmente llevar a cabo una accin y sistemticamente enviar una respuesta. Las respuestas estn compuestas por un cdigo de 3 dgitos que indica la manera en la que el comando enviado por el cliente ha sido procesado. Sin embargo, debido a que el cdigo de 3 dgitos resulta difcil de leer para las personas, est acompaado de texto (cadena de caracteres Telnet separada del cdigo numrico por un espacio).
220 Sistema preparado. Introduzca nombre de usuario y contrasea.

Todo el dilogo entre el cliente y el servidor tiene forma de rdenes y respuestas.

Respuestas FTP
Los cdigos de respuesta estn compuestos por 3 nmeros, cuyos significados son los siguientes: El primer nmero indica el estatuto de la respuesta (exitosa
o fallida)

El segundo nmero indica a qu se refiere la respuesta. El tercer nmero brinda un significado ms especfico
(relacionado con cada segundo dgito).

Servidores FTP
Los servidores FTP se pueden ejecutar en dos modos: Modo aislado (standalone). Se ejecuta como proceso del sistema de forma independiente durante el arranque y permanece activo a la espera de peticiones Modo superservidor. Se ejecuta como proceso del sistema hijo de inetd. En este caso, se debe de configurar el archivo /etc/inetd.conf anadiendo la linea correspondiente al servicio FTP. Este modo es especifico de GNU/Linux y requiere arrancar el proceso cada vez que se establece una nueva conexion. Ambos modos son excluyentes y se activan de formas concretas en funcion del servicio FTP utilizado. En modo aislado, es el servidor quien abre el puerto de escucha, mientras que en modo superservidor lo hace el inetd (proceso del sistema encargado de redirigir las peticiones TCP o UDP a sus respectivos servicios).

Servidores FTP
Hay muchas implementaciones de servidores FTP:
vsftpd: https://security.appspot.com/vsftpd.html proftpd: http://www.proftpd.org/ FileZilla: http://filezilla-project.org/ FTP integrado en el servidor web IIS de Microsoft.

Clientes FTP
Hay muchas implementaciones de clientes FTP:

Clientes grficos. Interfaz ms amigable y fcil

FileZilla CuteFTP gFTP

Navegadores (FireFox, Iexplorer) (ftp://............) Modo terminal (comando):

ftp (tanto para Linux como para Windows).

Clientes FTP

Comandos del cliente ftp (modo terminal)


Descripcin Pide usuario y contrasea Envia los comandos CWD,PWD i LIST Envia los comandos TYPE A i TYPE I Efectua la sequencia PORT-RETR Efectua la sequencia PORT-STOR Envia el comando ABOR Envia los comandos DELE, MKD i RMD Envia la sequencia RNFR-RNTO Envia el comando QUIT

Comando open cd, pwd, dir ascii, binary get put control+C delete, mkdir, rmdir rename quit

FTP seguro
Los datos de cualquier sesin FTP no van cifrados (es un servicio no seguro). Hay dos opciones:

FTP sobre SSH. SFTP

Crear un tnel SSH para la conexin FTP. SSH proporciona la capacidad de efectuar sesiones remotas seguras

FTP sobre SSL o sobre TLS. FTPS

La capa de transporte segura proporciona al FTP el grado de seguridad que proporciona a HTTPS. La faena de encriptacion y autenticacin la realiza SSL o TLS. La utilizacion conjunta de FTP y SSL o TLS tiene dos modos:

Explicito o FTPES. El cliente se conecta al puerto habitual (21) y cambia al modo seguro para transferir la informacin . Implcito o FTPS. El cliente asume el modo seguro con TLS o SSL
desde el inicio de la conexin, antes de transferir la informacin

Servicio de transferencia trivial TFTP


El protocolo TFTP (trivial file transport protocol) proporciona un servicio de transferencia de ficheros ms bsico y elemental que el FTP. No permite la autenticacin de usuarios ni incorpora ningun mecanismo de seguridad. Solo permite las operaciones de lectura (bajar ficheros) y escritura (subir ficheros). Utiliza el protocolo de transporte UDP. Escucha las peticiones de los clientes por el puerto 69 Se utiliza para:

clonar equipos en una red, una instalacin por red obtener los archivos del sistema operativo de un servidor en estaciones sin disco duro Guardar y bajar configuraciones de red, routers, ...

Tipos de usuario
El servicio ofrecido por un servidor FTP depender del tipo de usuario conectado. Usuario annimo (anonymous). Usuario que se conecta al sistema sin disponer de una cuenta personalizada. Posee una cuenta pero es de carcter genrico.Los usuarios anonymous solo tienen
acceso al directorio que establece el administrador.

Usuario registrado. Usuario dado de alta en el servidor con un login personalizado (un nombre de usuario y una contrasea). Tendr privilegios superiores a los de un usuario annimo.

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