EL PROTOCOLO FTP

INDICE

INTRODUCCIÓN ARQUITECTURA DEL FTP COMANDOS FTP RESPUESTAS FTP SERVIDORES Y CLIENTES FTP FTP SEGURO: FTP SSH Y FTP SSL

Introducción
 Una de las primeras aplicaciones básicas desarrolladas en el entorno de lo que luego sería la red Internet fue la transferencia de ficheros entre diferentes sistemas. Al principio de los años setenta ya se elaboraron las primeras especificaciones del protocolo más utilizado para esta finalidad, el FTP.  La especificación oficial del protocolo se publicó en 1985 en el documento RFC 959. http://www.ietf.org/rfc/rfc959.txt

Introducción.  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 (rápida y fiable) . Objetivos  El protocolo FTP define la manera en que los datos deben ser transferidos a través de una red TCP/IP.

Introducción  Este protocolo proporciona también una serie de deficiencias en cuanto a seguridad ya que:  Utiliza un mecanismo normal de autenticación de usuarios (usuario/contraseña) con lo que el servidor no puede garantizar que el usuario es quien dice ser. por lo que las transferencias de archivos también son en texto plano.   . Transfiere las contraseñas en texto plano (sin cifrar) No cifra la propia sesión en sí misma.

Introducción  El protocolo proporciona también 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 . .

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

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

es decir. a través 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. ● El cliente se conecta al servidor haciendo uso de un puerto local mayor que 1024 .Arquitectura FTP El servidor FTP proporciona el servicio (capa de aplicación del modelo de capas de red TCP/IP) al usuario. para enviar las órdenes del cliente al servidor.

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

Esquema funcionamiento FTP .

Arquitectura FTP El cliente y el servidor cuentan con dos procesos que permiten la administración de estos dos tipos de información: DTP (Proceso de transferencia de datos) es el proceso encargado de establecer la conexión 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 (Intérprete de protocolo) interpreta el protocolo y permite que el DTP pueda ser controlado mediante los comandos recibidos a través del canal de control.

de recibir respuestas del SERVIDOR PI y de controlar al USUARIO DE DTP. de establecer la conexión para el canal de control. de responderles y de ejecutar el SERVIDOR DE DTP. de enviar los comandos FTP. . de recibir los comandos FTP del USUARIO PI a través de éste. El USUARIO PI es responsable de establecer la conexión con el servidor FTP.Intérprete de protocolo FTP (PI) El SERVIDOR PI es responsable de escuchar los comandos que provienen de un USUARIO PI a través del canal de control en un puerto de datos. si fuera necesario.

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

Arquitectura FTP .

que establece el canal de control. El modo por defecto suele ser el modo activo. el cliente establece una conexión con el servidor mediante el puerto 21. . El el modo pasivo el cliente inicia la conexión utilizando el puerto que indica el servidor. En el modo activo la conexión es iniciada por el servidor utilizando el puerto indicado por el cliente. Estos modos se denominan activo y pasivo. Tanto en el modo Activo como en el modo Pasivo.Modos de operación FTP FTP admite 2 modos para la conexión de datos.

el cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto. iniciada por el servidor. . Hay dos conexiones distintas: una petición de transferencia por parte del cliente y una atención a dicha petición. 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. En esa conexión establecida se comunica al servidor qué puerto utiliza el cliente para la recepcion de datos.Modo Activo Se establece una conexión utilizada para transmitir órdenes FTP desde cualquier puerto superior a 1024 en el cliente hacia el puerto 21 del servidor. Para ello.

Esquema funcionamiento modo Activo .

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

Esquema funcionamiento modo pasivo .

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

la secuencia <CR>+<LF>. Si el comando FTP tiene un parámetro.Comandos FTP  Los comandos FTP son los mensajes que envía el intérprete cliente. . éste se separa del comando con un espacio (<SP>). Retorno de carro seguido del carácter Avance de línea indicado como <CRLF>). separados por espacios. acabada con un final de línea. seguido de una lista de cero o más argumentos.  Un comando FTP se representa por medio de un código de comando de hasta cuatro letras (que pueden ser indistintamente mayúsculas o minúsculas). y los que envía el intérprete servidor son respuestas a estos comandos.  Los comandos FTP son cadenas de caracteres Telnet que finalizan con el código de final de línea Telnet (es decir.

Almacenar.Comandos FTP Los comandos FTP hacen posible especificar:  El puerto utilizado  El método de transferencia de datos  La estructura de datos  La naturaleza de la acción que se va a realizar (Recuperar.) . Enumerar. etc.

MODE.. CWD.. modificar el nombre. TYPE...  Comandos de parámetros de transferencia. subirlo.. Son las órdenes de lo que se quiere hacer en una sesión como bajar un fichero. . STOU. PORT  Comandos de servicio FTP. CDUP. inicio y finalizacion de sesión. PASV. .. Por ejemplo. LIST. . PWD.. validación de usuario. STRU. RETR. Los que gestionan el acceso al servicio FTP. los puertos... PASS.. STOR. el modo pasivo o activo. Gestionan las opciones realcionadas con la tranferencia de ficheros como el modo de transferencia binario o ASCII....Comandos FTP La especificación RFC 959 define treinta y comandos agrupadas en tres categorías diferentes: tres  Comandos de control de acceso. USER.

Este comando debe ser inmediatamente precedida por el comando USER. si la respuesta es 230. Cadena de caracteres que especifica la cuenta del usuario. sí lo es. Si la respuesta es 332.Comandos de control de acceso Comando USER Descripción Cadena de caracteres que permite identificar al usuario. Change Working Directory (Cambiar el directorio de trabajo): este comando permite cambiar el directorio actual. el servidor espera a que finalice la transferencia en progreso y después proporciona una respuesta antes de cerrar la conexión. Se introdujo para resolver los problemas de denominación del directorio principal según el sistema (generalmente ". Comando que permite abandonar la sesión actual. El cliente debe decidir si esconder la visualización de este comando por razones de seguridad. Change to Parent Directory (Cambiar al directorio principal): este comando permite regresar al directorio principal. El comando generalmente no es necesario. Este comando requiere la ruta de acceso al directorio para que se complete como un argumento. esta etapa no es necesaria. Cadena de caracteres que especifica la contraseña del usuario. Durante la respuesta que acepta la contraseña. PASS ACCT CWD CDUP QUIT .. Si es necesario."). La identificación del usuario es necesaria para establecer la comunicación a través del canal de datos.

P de Page [Página]). PASV Comando que permite indicar al servidor de DTP que permanezca a la espera de una conexión en un puerto específico elegido aleatoriamente entre los puertos disponibles. .Comandos de parámetros de transferencia Comando Descripción PORT Cadena de caracteres que permite especificar el número de puerto utilizado. La respuesta a este comando es la dirección IP del equipo y el puerto. TYPE Este comando permite especificar el tipo de formato en el cual se enviarán los datos STRU Carácter Telnet que especifica la estructura de archivos (F de File [Archivo]. C de Compressed [Comprimido]). MODE Carácter Telnet que especifica el método de transferencia de datos (S de Stream [Flujo]. R de Record [Registro]. B de Block [Bloque].

STOU LIST PWD . Este comando es idéntico al anterior. Esto se envía a través del DTP pasivo. Este comando permite que se vuelva a enviar la lista de archivos y directorios presentes en el directorio actual. Este comando (print working directory [mostrar el directorio actual]) hace posible volver a enviar la ruta del directorio actual completa. sólo le pide al servidor que cree un archivo cuyo nombre sea único. El nombre del archivo se envía en la respuesta.Comandos de servicio FTP Comando Descripción Este comando (RETRIEVE [RECUPERAR]) le pide al servidor de DTP una RETR copia del archivo cuya ruta de acceso se da en los parámetros. Es posible indicar un nombre de directorio en el parámetro de este comando. de lo contrario. lo sobrescribe. el servidor lo crea. 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 parámetros. El servidor de DTP enviará la lista de archivos del directorio ubicado en el parámetro. Si el archivo no existe.

Respuestas FTP  Las respuestas FTP garantizan la sincronización entre el cliente y el servidor FTP. Por lo tanto. . está acompañado de texto (cadena de caracteres Telnet separada del código numérico por un espacio). 220 Sistema preparado.  Las respuestas están compuestas por un código de 3 dígitos que indica la manera en la que el comando enviado por el cliente ha sido procesado. debido a que el código de 3 dígitos resulta difícil de leer para las personas. Sin embargo. por cada comando enviado por el cliente. Todo el diálogo entre el cliente y el servidor tiene forma de órdenes y respuestas. Introduzca nombre de usuario y contraseña. el servidor eventualmente llevará a cabo una acción y sistemáticamente enviará una respuesta.

 El tercer número brinda un significado más específico (relacionado con cada segundo dígito). . cuyos significados son los siguientes:  El primer número indica el estatuto de la respuesta (exitosa o fallida)  El segundo número indica a qué se refiere la respuesta.Respuestas FTP Los códigos de respuesta están compuestos por 3 números.

se debe de configurar el archivo /etc/inetd. 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). . Se ejecuta como proceso del sistema hijo de inetd. En este caso. En modo aislado.conf anadiendo la linea correspondiente al servicio FTP. Ambos modos son excluyentes y se activan de formas concretas en funcion del servicio FTP utilizado. Se ejecuta como proceso del sistema de forma independiente durante el arranque y permanece activo a la espera de peticiones Modo superservidor.Servidores FTP Los servidores FTP se pueden ejecutar en dos modos: Modo aislado (standalone). Este modo es especifico de GNU/Linux y requiere arrancar el proceso cada vez que se establece una nueva conexion.

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

.. ...Clientes FTP Hay muchas implementaciones de clientes FTP:  Clientes gráficos.....) Modo terminal (comando):   ftp (tanto para Linux como para Windows). Interfaz más amigable y fácil  FileZilla CuteFTP gFTP    Navegadores (FireFox... Iexplorer) (ftp://..

MKD i RMD Envia la sequencia RNFR-RNTO Envia el comando QUIT Comando open cd. rmdir rename quit . binary get put control+C delete.Clientes FTP ● Comandos del cliente ftp (modo terminal) Descripción Pide usuario y contraseña Envia los comandos CWD. mkdir. dir ascii. pwd.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.

FTP seguro Los datos de cualquier sesión FTP no van cifrados (es un servicio no seguro). antes de transferir la información – . El cliente asume el modo seguro con TLS o SSL desde el inicio de la conexión. Hay dos opciones:  FTP sobre SSH. SSH proporciona la capacidad de efectuar sesiones remotas seguras  FTP sobre SSL o sobre TLS. Implícito o FTPS. FTPS  La capa de transporte segura proporciona al FTP el grado de seguridad que proporciona a HTTPS. La utilizacion conjunta de FTP y SSL o TLS tiene dos modos: – Explicito o FTPES. La faena de encriptacion y autenticación la realiza SSL o TLS. El cliente se conecta al puerto habitual (21) y cambia al modo seguro para transferir la información . SFTP  Crear un túnel SSH para la conexión FTP.

Solo permite las operaciones de lectura (bajar ficheros) y escritura (subir ficheros). routers.. ..Servicio de transferencia trivial TFTP El protocolo TFTP (trivial file transport protocol) proporciona un servicio de transferencia de ficheros más básico y elemental que el FTP. No permite la autenticación de usuarios ni incorpora ningun mecanismo de seguridad. Escucha las peticiones de los clientes por el puerto 69 Se utiliza para: ● clonar equipos en una red. ● ● ● . Utiliza el protocolo de transporte UDP. una instalación por red obtener los archivos del sistema operativo de un servidor en estaciones sin disco duro Guardar y bajar configuraciones de red.

Los usuarios anonymous solo tienen acceso al directorio que establece el administrador. Tendrá privilegios superiores a los de un usuario anónimo. Usuario dado de alta en el servidor con un login personalizado (un nombre de usuario y una contraseña). Usuario registrado. Usuario anónimo (anonymous). Usuario que se conecta al sistema sin disponer de una cuenta personalizada.Tipos de usuario El servicio ofrecido por un servidor FTP dependerá del tipo de usuario conectado. . Posee una cuenta pero es de carácter genérico.

Sign up to vote on this title
UsefulNot useful