LABORATORIO DE FTP PRESENTADO POR: Diana Maritza Aragón Marta Moreno Luis Miguel Pérez PRESENTADO A: Marcelo Utard Javier Bozzuto ESCUELA DE GRADUADOS DE ELECTRÓNICA Y TELECOMUNICACIONES LABORATORIO DE TCP/IP TABLA DE CONTENIDO INTRODUCCIÓN OBJETIVOS 1. FTP (File Transfer Protocol) 1.1. El modelo FTP 1.2. Servidor FTP 1.3. Cliente FTP. 1.4. Tipos de Acceso 1.4.1. Acceso Anónimo 1.4.2. Acceso Usuario 1.4.3. Acceso de Invitado 1.5. Modos de conexión del cliente FTP 1.5.1. Modo Activo 1.5.2. Modo Pasivo 1.6. Guía de comandos FTP 1.7. PLANIFICACIÓN FTP 1.8. EJECUCIÓN CONCLUSIONES INTRODUCCIÓN Las redes de ordenadores se crearon para el intercambio de información y la compartición de recursos. Aunque, utilizando el correo electrónico es posible el intercambio de información, hay ocasiones en las que necesitamos mover archivos por la red. Los nuevos estándares de correo nos permiten realizar esta operación, pero existe un servicio especial en Internet dedicado a la transferencia de archivos entre dos equipos. El protocolo FTP es un protocolo de aplicación que promociona el uso compartido de archivos, a través del uso de servidores remotos y a través del proceso cliente/servidor. Este protocolo realiza de forma transparente al usuario las variaciones de almacenar los archivos en diferentes ordenadores y transferir de manera confiable los datos. Con este protocolo se intenta satisfacer las necesidades de las estaciones de trabajo. Este protocolo utiliza conocimientos del protocolo de transporte TCP (Transmision Control Protocol) y del protocolo Telnet. Este tipo de protocolo define controles de acceso para el usuario para el uso de un sistema y de los archivos que se encuentran allí. Asimismo, evita el uso no autorizado de archivos. La conexión de control que utiliza para el intercambio de solicitudes y respuestas sigue el protocolo Telnet entre el usuario y el servidor. Toda la comunicación se que realiza es bidireccional para la transferencia de datos en un modo y tipo especificados. |/--------\| || || ---- ----||Interfaz|<->|Usuario| |\----^---/| ---- -------------| | | |/------\| Ordenes FTP |/----V---\| ||Server|<---------------->| User || || PI || Respuestas FTP || PI || |\--^---/| |\----^---/| | | | | | | |/--V---\| Conexión |/----V---\| -----------------|Sistema |<-->|Server|<---------------->| User |<->|Sistema| | de | || || de datos || || | de | |ficheros| || DTP || || DTP || |ficheros| ---------|\------/| |\--------/| ----Server-FTP User-FTP El intérprete de protocolo de usuario es el que inicia la conexión de control siguiendo el protocolo Telnet. Las solicitudes las envía al servidor y las respuestas a esas solicitudes se realizan a través de la conexión de control. Las solicitudes especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación, entre otros). El servidor inicia la conexión al puerto de datos especificados. Cabe destacar que la conexión de datos se puede usar simultáneamente para enviar y para recibir. El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP al usuario, utilizando 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, o apropiarse de los archivos transferidos. Para utilizar este servicio necesita un cliente FTP, que es el que establece la conexión con el programa servidor FTP situado en la máquina remota. Este indica al cliente la máquina remota a la que quiere conectarse. Cuando se conecte a este tipo de máquinas necesitará permiso para poder acceder a sus ficheros. Es decir, el servidor FTP le solicitará un nombre de usuario (login) y una contraseña (password). OBJETIVOS Analizar y realizar el procedimiento que realiza el protocolo FTP entre dos equipos con el fin de determinar todas las solicitudes y respuestas para el establecimiento de sesión y para la transferencia de archivos entre estos equipos. 1.1. El modelo FTP En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso servidor a través de la conexión de control. Las respuestas estándar se envían desde el PI del servidor al PI de usuario por la conexión de control como respuesta a las órdenes. Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros que se hayan especificado. La comunicación entre cliente y servidor es independiente del sistema de archivos utilizado en cada ordenador, 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: el FTP. También hay que destacar que la conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP. Figura 1.1. Conexión FTP. 1.2. Servidor FTP Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet. Su función es permitir el intercambio de datos entre diferentes servidores/ordenadores. Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores personales, por lo que un usuario normalmente utilizará el FTP para conectarse remotamente a uno y así intercambiar información con él. Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos correspondientes; o como servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa. 1.3. Cliente FTP Cuando un navegador no está equipado con la función FTP, o si se quiere cargar archivos en un ordenador remoto, se necesitará utilizar un programa cliente FTP. Un cliente FTP es un programa que se instala en el ordenador 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 ordenador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra. Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica 1.4. Tipos de Acceso 1.4.1. 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 'USERID' 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. 1.4.2. Acceso de usuario 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 un login y un password que nos identifica unívocamente. 1.4.3. 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 máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de 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 anónimos, pero con más privilegios. 1.5. Modos de conexión del cliente FTP 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. 1.5.1. 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. 1.5.2. Modo Pasivo Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP abre un puerto efímero (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, 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). 1.6. Guía de comandos FTP COMANDOS Y ARGUMENTOS Open servidor ACCIÓN QUE REALIZA Inicia una conexión con un servidor FTP Close o disconnect Finaliza una conexión FTP sin cerrar el programa cliente. Bye o quit Finaliza una conexión FTP y la sesión de trabajo con el programa cliente. Cd directorio Cambia el directorio de trabajo en el servidor Delete archivo Borra un archivo en el servidor. Mdelete patrón Borra múltiples archivos basado en un patrón que se aplica el nombre. dir Muestra el contenido del directorio en el que estamos en el servidor. Get archivo Mget archivos hash Obtiene un archivo. Obtiene múltiples archivos. Activa la impresión de caracteres # a medida que se transfieren archivos, a modo de barra de progreso. Lcd directorio ls prompt Put archivo Mput archivos pwd Cambia el directorio de trabajo local. Muestra el contenido del directorio en el servidor. Activa/desactiva la confirmación por parte del usuario de la ejecución de comandos. Envía un archivo al directorio activo del servidor. Envía múltiples archivos Muestra el directorio activo en el servidor. Rename archivo Cambia el nombre a un archivo en el servidor. Rmdir directorio Elimina un directorio en el servidor si ese directorio está vacío. status ! ? o help Muestra el estado actual de la conexión. Permite salir a línea de comandos temporalmente sin cortar la conexión. Muestra una lista de los comandos disponibles. mkdir Crea el directorio indicado de forma remota. user Para cambiar el nombre de usuario y contraseña sin necesidad de salir de la sesión FTP. Tabla 1.1. Guía de comandos FTP 1.7. PLANIFICACIÓN FTP 00-1A-73-85-B0-95 192.168.0.118 Marta 00-1D-D9-35-2C-9C 192.168.0.114 Diana1 Figura 1.2. Esquema de práctica. 1. Definir cuáles de los equipos son cliente y cuál será el servidor. Las tablas ARP ya se encuentran llenas con la información de cada uno de los equipos que se encuentran en la red. 2. El equipo principal tendrá un servidor FTP llamado FILEZILLA 3. El equipo cliente enviará una solicitud de establecimiento de sesión a través de un mensaje SYN hacia el servidor. 4. El servidor responderá a ese mensaje a través de un ACK confirmando el establecimiento de la sesión con el equipo cliente. 5. El equipo cliente enviará una solicitud vía comando de conexión hacia el servidor FTP para iniciar sesión y eso será a través del puerto 21 y la dirección IP del servidor. 6. El servidor FTP enviará una autenticación con un usuario y contraseña definidos al puerto del cliente que será un valor mayor a 1024. 7. El cliente accederá al servidor autenticándose en el puerto 21. El cliente accederá a las carpetas que el servidor permite dejar entrar. En la configuración del servidor se define que carpetas o discos se quieren dejar a la vista del cliente. 8. Es importante que el servidor FTP tenga claro la dirección IP del cliente para poder asignarle todos los permisos ya que por defecto el servidor bloquea cualquier dirección IP tanto para tráfico entrante como saliente. 9. Para realizar transferencia de archivos existen dos categorías que son: GET y PUT. 10. El cliente podrá obtener un archivo del servidor a través del comando o mensaje GET y el archivo que desea adquirir. El archivo recibido será transferido a la carpeta en la que inicialmente se inició sesión, desde el cliente. 11. El cliente podrá enviar archivos hacia el servidor por medio del comando PUT y el archivo que desea transferir, y será guardado en la carpeta que se comparta para que los clientes puedan acceder. 12. Para un segundo escenario, se tendrá una autenticación fallida debido al ingreso incorrecto de la contraseña. 13. Se tratará de obtener un archivo que no se encuentra en el servidor con el fin de verificar el código de error que el servidor enviará al cliente. 1.8. EJECUCIÓN - Primer Escenario 1. En las siguientes gráficas se puede observar la información de los equipos tanto del servidor como del cliente. El servidor tendrá la dirección 192.168.0.118 y el cliente tendrá una dirección 192.168.0.114. Figura 1.3. Información del servidor Figura 1.4. Información del cliente. 2. En estas gráficas podemos observar cómo en el servidor se debe crear una cuenta de usuario para acceder a éste. Figura 1.5. Interfaz grafica File Zilla Asimismo, se establece la o las carpetas a la cual el cliente diana va a tener acceso. Figura 1.6. Carpetas de acceso al cliente Se definen los diferentes permisos de escritura, lectura, borrado sobre archivos y directorios. Figura 1.7. Permisos 3. Paquetes con los mensajes SYN y ACK Figura 1.8. Captura con el establecimiento TCP. 4. Luego de ser llevado a cabo el proceso de autenticación, se debe establecer la conexión entre el cliente y el servidor, en esta captura se puede observar los flags de SYN y ACK. El cliente envía un flag de SYN al servidor, el servidor responde con un ACK y al tiempo envía su flag de SYN hacia el cliente, por último el cliente le confirma al servidor el establecimiento de la conexión con otro ACK. Todo este establecimiento se lleva a cabo haciendo uso de la conexión de control. El puerto utilizado para el establecimiento de la conexión es el puerto 21 por parte del servidor y un puerto mayor a 1024 para el cliente. Figura 1.9. Establecimiento TCP. 5. En este gráfico se observa la solicitud por parte del usuario hacia el servidor FTP para comenzar la conexión. Figura 1.10. Autenticación del cliente. Figura 1.11. Puerto de control de FTP. Se puede observar que para el establecimiento de la sesión de FTP se utiliza el puerto 21 en el servidor. 6. El servidor envía una solicitud al cliente solicitándole una autenticación con el fin de verificar si es el usuario es el verdadero. Figura. 1.12. Autenticación. 7. Acá se observa el puerto del cliente que utilizará para realizar este servicio y asimismo el puerto 21 del servidor que permitirá el establecimiento a nivel de FTP. Figura 1.13. Vista de la autenticación desde el servidor. Figura 1.14. Captura de la autenticación 8. Podemos ver que durante el proceso de autenticación el cliente utiliza el puerto 21 para comunicarse con el servidor. 9. El cliente puede obtener un archivo del servidor a través del comando. Figura 1.15. Función del get. Figura 1.16. Proceso de obtención del archivo por parte del cliente. Figura. 1.17. Captura get. Se observa el establecimiento de la conexión entre el cliente y el servidor, el cliente esta obteniendo del servidor el archivo llamado Medellín.pps 11. Asimismo, el cliente puede colocar archivos en las carpetas asignadas y permitidas por el servidor. Figura 1.18. Envío de un archivo hacia el servidor. Figura 1.19. Proceso put en el servidor Figura 1.20. Captura put Figura 1.21. Carpeta donde se localiza el archivo enviado por el cliente. Establecimiento de la conexión entre el cliente y el servidor, el cliente esta enviado al servidor el archivo llamado HUYCOLOMBIAAA.pps. Se puede observar el intercambio de paquetes entre el cliente y el servidor, durante el envío de los datos. - Segundo Escenario Escenarios en los cuales se obtiene errores. 12. Login con un usuario y contraseña incorrecta. Figura 1.22. Ingreso de contraseña inválidos. Figura 1.23. No acceso por parte del servidor Podemos observar que el usuario ingresado no es correcto, por tanto no se puede iniciar la sesión. Y que el servidor enviará una respuesta con un código de error reflejando la autenticación fallida. Figura 1.24. Captura de la respuesta por parte del servidor a la contraseña incorrecta. 13. Login correcto pero obteniendo un archivo que no existe. Figura 1.25. Solicitando obtener un archivo inexistente. Figura. 1.26. Respuesta por parte del servidor. El servidor enviará una respuesta que refleja el hecho de un rchivo no encontrado y se lo dará a conocer al cliente como error de flie not found. Figura 1.27. File not found - Códigos de respuesta por grupos funcionales 200 Orden correcta. 500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de orden demasiado larga. 501 Error de sintaxis en parámetros o argumentos. 202 Orden no implementada, no necesaria en este sistema. 502 Orden no implementada. 503 Secuencia de órdenes incorrecta. 504 Orden no implementada para ese parámetro. 110 Respuesta de marcador de reinicio. En este caso, el texto debe ser: MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y mmmm es el equivalente en el servidor (atención a los espacios entre los marcadores y el "="). 211 Estado del sistema o respuesta de ayuda del sistema. 212 Estado del directorio. 213 Estado del fichero. 214 Mensaje de ayuda. Sobre cómo usar el servidor o el significado de una orden particular no estándar. Esta respuesta sólo es útil para una persona. 215 NOMBRE system type. Donde NOMBRE es un nombre de sistema oficial de la lista que hay en el documento Números Asignados. 120 El servicio estará en funcionamiento en nnn minutos. 220 Servicio preparado para nuevo usuario. 221 Cerrando la conexión de control. Desconectado si procede. 421 Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta a cualquier comando si el servidor sabe que debe finalizar. 125 La conexión de datos ya está abierta; comenzando transferencia. 225 Conexión de datos abierta; no hay transferencia en proceso. 425 No se puede abrir la conexión de datos. 226 Cerrando la conexión de datos. La acción sobre fichero requerida ha sido correcta (por ejemplo, una transferencia o interrupción). 426 Conexión cerrada; transferencia interrumpida. 227 Iniciando modo pasivo (h1, h2, h3, h4, p1, p2). 230 Usuario conectado, continúe. 530 No está conectado. 331 Usuario OK, necesita contraseña. 332 Necesita una cuenta para entrar en el sistema. 532 Necesita una cuenta para almacenar ficheros. 150 Estado del fichero correcto; va a abrirse la conexión de datos. 250 La acción sobre fichero solicitado finalizó correctamente. 257 "NOMBRERUTA" creada. 350 La acción requiere más información 450 Acción no realizada. Fichero no disponible (por ejemplo, fichero bloqueado). 550 Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se tiene acceso al mismo). 451 Acción interrumpida. Error local. 551 Acción interrumpida. Tipo de página desconocido. 452 Acción no realizada. Falta de espacio en el sistema de ficheros. 552 Acción interrumpida. Se ha sobrepasado el espacio disponible de Almacenamiento (para el directorio actual). 553 Acción no realizada. Nombre de fichero no permitido. - Códigos de respuesta por número. 110 Respuesta de marcador de reinicio. En este caso, el texto debe ser: MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y mmmm es el equivalente en el servidor (atención a los espacios entre los marcadores y el "="). 120 El servicio estará en funcionamiento en nnn minutos. 125 La conexión de datos ya está abierta; comenzando transferencia. 150 Estado del fichero correcto; va a abrirse la conexión de datos. 200 Orden correcta. 211 Estado del sistema o respuesta de ayuda del sistema. 212 Estado del directorio. 213 Estado del fichero. 214 Mensaje de ayuda. Sobre como usar el servidor o el significado de una orden particular no estándar. Esta respuesta sólo es útil para una persona. 215 NOMBRE system type. Donde NOMBRE es un nombre de sistema oficial de la lista que hay en el documento Números Asignados. 220 Servicio preparado para nuevo usuario. 221 Cerrando la conexión de control. Desconectado si procede. 225 Conexión de datos abierta; no hay transferencia en proceso. 226 Cerrando la conexión de datos. La acción sobre fichero requerida ha sido correcta (por ejemplo, una transferencia o interrupción). 227 Iniciando modo pasivo (h1, h2, h3, h4, p1, p2). 230 Usuario conectado, continúe. 250 La acción sobre fichero solicitado finalizó correctamente. 257 "NOMBRERUTA" creada. 331 Usuario OK, necesita contraseña. 332 Necesita una cuenta para entrar en el sistema. 532 Necesita una cuenta para almacenar ficheros. 350 La acción requiere más información. 421 Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta a cualquier comando si el servidor sabe que debe finalizar. 425 No se puede abrir la conexión de datos. 426 Conexión cerrada; transferencia interrumpida. 450 Acción no realizada. Fichero no disponible (por ejemplo, fichero bloqueado). 451 Acción interrumpida. Error local. 452 Acción no realizada. Falta de espacio en el sistema de ficheros. 500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de orden demasiado larga. 501 Error de sintaxis en parámetros o argumentos. 202 Orden no implementada, no necesaria en este sistema. 502 Orden no implementada. 503 Secuencia de órdenes incorrecta. 504 Orden no implementada para ese parámetro. CONCLUSIONES - Una causa importante en la que el cliente en algunas ocasiones no se puede conectar al servidor FTP es debido a que el equipo se encuentra segurizado y filtrando su tráfico a través del firewall. - FTP es una opción de transferencia de archivos que permite de alguna manera mantener comunicación por un tiempo determinado hacia la información que contiene el servidor. - Hoy en día se presentan muchas aplicaciones gráficas que permite que este servicio sea mucho más dinámico y tener en entorno más amigable para el cliente dirigiéndose al servidor.