220 likes | 366 Views
Servicios de red e Internet Tema 5 : Instalación y administración de servicios de transferencia de ficheros”. Nombre: Adrián de la Torre López. Funcionalidad del servicio de transferencia de archivos.
E N D
Servicios de red e InternetTema 5: Instalación y administración de servicios de transferencia de ficheros” Nombre: Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. 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. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Características. Componentes y funcionamiento. - Características: FTP ofrece uno de los servicios más antiguos de transferencias de ficheros y aun asi sigue ytilizado en Internet y en redes corporativas. Permite a los usuarios. • Acceder a sistemas remotos y listar directorios y ficheros. • Transferir ficheros desde o hacia el sistema remoto, es decir, subir o bajar ficheros. • Realizar acciones adicionales en el sistema remoto como renombrar, borrar, crear archivos y carpetas, cambiar permisos, descomprimir… Es un servicio fácil de mantener y configurar para los administradores, ofrece rapidez en la transferencia de ficheros y abstrae a los usuarios de los detalles de los sistemas operativos empleados. Existen múltiples implementaciones tanto libres como propietarias. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Componentes: • 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 función es permitir el intercambio de datos entre diferentes servidores/ordenadores. A su vez se compone de: - Servidor PI (ProtocolInterpreter): El intérprete de protocolo del servidor “escucha” en el puerto 21 los comandos que le envía el intérprete de protocolo del cliente y controla el proceso de transferencia de datos del servidor. • Servidor DTP (Data Transfer Protocol): El protocolo de transferencia de datos del servidor se utiliza para transmitir los datos entre el servidor y el protocolo de transferencia de datos del cliente. Puede estar en modo “pasivo” a la escucha de conexiones en el puerto 20 de datos. • Cliente FTP: Máquina con la que nos conectamos al servidor 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. Está compuesta por los siguientes elementos: • Interfaz de usuario: conjunto de comandos de “alto nivel” que el usuario puede memorizar más fácilmente que los comandos FTP que se envían entre cliente y servidor. • Cliente PI: El intérprete de protocolo de usuario inicia el control de la conexión a través del puerto 21 con el servidor FTP, envía los comandos FTP una vez codificados por la interfaz de usuario y los envía al intérprete de protocolo del servidor, y controla el proceso de transferencia de los archivos (DTP). • Cliente DTP: El proceso de transferencia de datos “escucha” el puerto de datos (20) aceptando conexiones para la transferencia de ficheros. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Funcionamiento: El funcionamiento es sencillo. Una persona desde su ordenador invoca un programa cliente FTP para conectar con otro ordenador, que a su vez tiene instalado el programa servidor FTP. Una vez establecida la conexión y debidamente autenticado el usuario con su contraseña, se pueden empezar a intercambiar archivos de todo tipo. Cuando un cliente FTP se conecta con un servidor FTP, el USUARIO PI inicia la conexión con el servidor de acuerdo con el protocolo Telnet. El cliente envía comandos FTP al servidor, el servidor los interpreta, ejecuta su DTP y después envía una respuesta estándar. Una vez que se establece la conexión, el servidor PI proporciona el puerto por el cual se enviarán 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 información entre dos procesos del servidor conectados en el puerto correcto. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Protocolo FTP FTP (File Transfer Protocol) significa "Protocolo de trasferencia de archivos", y también se encuentra dentro de la capa de aplicación. Este protocolo se utiliza para poder trasferir archivos entre el cliente y el servidor. Normalmente se necesita un cliente FTP (cliente) y un servidor FTP (servidor) para poder realizar dicha transferencia de archivos. Tenemos que saber que FTP necesita de dos conexiones entre el cliente y el servidor; una para trasferir los archivos y otra para comandos y respuestas. Estas dos conexiones las realiza el cliente, siendo una sola y permanente para los comandos y la segunda conexión se abre y se cierra cada vez que se envíe un archivo. Desde el punto de vista de un usuario de FTP, el enlace está orientado a conexión. En otras palabras, es necesario que ambos hosts estén activos y ejecutando TCP/IP para establecer una transferencia de ficheros. FTP usa TCP como protocolo de transporte para proporcionar conexiones fiables entre los extremos. Se emplean dos conexiones: la primera es para el login y sigue el protocolo TELNET y la segunda es para gestionar la transferencia de datos. Como es necesario hacer un login en el host remoto, el usuario debe tener un nombre de usuario y un password para acceder a ficheros y a directorios. El usuario que inicia la conexión asume la función de cliente, mientras que el host remoto adopta la función de servidor Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Tipos de usuarios y accesos al servicio: Acceso anónimo y acceso autorizado. Los servidores FTP permiten, dependiendo de cómo se configuren, dos tipos de acceso desde los clientes. • Acceso anónimo: • El cliente FTP se conecta al servidor con un usuario especial anónimo. Como nombres para este usuario se emplean de forma estándar anonymous y/o ftp. • De manera habitual, (no siendo un requisito ya que el administrador del servidor FTP puede decidir otra cosa) el usuario anónimo solo puede descargar archivos y su acceso se limita a un directorio del servidor. • Acceso autorizado: El cliente FTP se conecta con un usuario que debe existir en el servidor. Los usuarios pueden ser: • Usuarios locales del sistema operativo donde esta instalado el servidor FTP. • Usuarios “virtuales”, creados para el acceso FTP. Sus credenciales se pueden almacenar en bases de datos, servicios de directorio, ficheros de texto… Una vez que se ha autentificado, el usuario accede a un directorio del servidor en el que puede estar o no confinado o “enjaulado” (no puede “subir” a directorios superiores). En el servidor se configuran los privilegios que tiene cada usuario (descargar, subir, borrar, limitación de espacio, acceso a unos directorios u otros, limitación de velocidades, etc.). Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • 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, estableciéndose tres tipos de usuarios: Propietario, Grupo y Otros. • El Propietario es normalmente la persona que ha creado o que ha subido el archivo al servidor FTP. • El 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. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Para establecer permisos con el FileZilla, se hace lo siguiente: • Clic con el botón derecho del mouse sobre la(s) carpeta(s) y/o archivo(s) que desees establecer permisos, recuerda que para seleccionar más de un archivo o carpeta, selecciónalos manteniendo pulsada la tecla Ctrl o Alt; haces clic en Atributos del Archivo o FileAttributes, depende el idioma en que lo tengas. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Nos aparecerá una ventana, seleccionaremos los valores que deseemos cambiar, o bien, escribir en el cuadro de abajo los dígitos. • Presionamos en el botón OK, y si nuestras modificaciones fueron procesadas exitosamente, en la parte de arriba aparecerá un mensaje diciendo Directorylistingsuccessful. Cuotas: La cuota limita la cantidad de datos que un usuario puede cargar a su servidor. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Conexiones y modos: Conexión de control y conexión de datos. Modos activo y pasivo. FTP es un servicio basado exclusivamente en TCP que utiliza varias conexiones y puertos. • Conexión de control. Inicialmente el cliente establece una conexión con el servidor para “dialogar” con él. Le envía comandos de descargar (get), subida (put), listado (ls), etc y recibe respuestas del servidor que le informan de cómo atiende las peticiones. Esta conexión permanece activa hasta que el usuario cierra la sesión o hasta que el servidor la finalice porque caduca el tiempo de espera a causa de la inactividad. Los servidores pueden atender múltiples conexiones de control simultáneamente, tantas como se configuren en el servidor para evitar su sobrecarga. • Conexión de datos. Cuando el cliente solicita una transferencia de información se crea una nueva conexión que se cierra al finalizar la transmisión. Asociadas a una conexión de control pueden existir múltiples conexiones de datos simultaneas, tantas como transferencias simultaneas y hasta un máximo que se configure en el servidor para evitar su sobrecarga. Por la conexión de control nunca se envían datos y por las conexiones de datos nunca se envían comandos de control. Inicialmente los servidores FTP usaban el puerto 21/TCP para atender las conexiones de control (esto continua siendo así) y el puerto 20/TCP para iniciar las conexiones de datos. Actualmente, debido a una serie de problemas no usan siempre el puerto 20 para las conexiones de datos. Los clientes utilizan puertos mayores a 1023 para iniciar o atender conexiones. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Modo activo: • Se inicia el cliente y establece una conexión de control. • Abre un puerto superior a 1023. • Establece una conexión TCP con el puerto 21 del servidor. • Cuando se solicita una transferencia de ficheros. • El cliente envía el comando PORT al servidor en el que especifica su dirección IP y un numero de puerto que “abrirá” para usar en la conexión de datos • El servidor inicia una conexión TCP desde su puerto 20 hacia un puerto que le ha indicado el cliente. • Se utiliza la conexión de datos para realizar la transferencia de información. Adrián de la Torre López • En este modo, es el servidor el que inicia las conexiones de datos y el cliente tiene que abrir los puertos para atender dichas conexiones. La maquina que ejecuta el cliente FTP tiene que aceptar conexiones a puertos, usados en las transferencias de datos, superiores a 1023. Esto puede comprometer la seguridad del equipo. • Los cortafuegos instalados en el equipo donde se encuentran el cliente FTP o en la red a la que pertenece evitaran estas conexiones aleatorias para prevenir ataques. • Si el equipo donde esta el cliente esta detrás de un encaminador este descartara las conexiones iniciadas desde el exterior por el servidor FTP a los puertos que abre el cliente.
Funcionalidad del servicio de transferencia de archivos. • Modo pasivo: • El cliente se inicia y establece una conexión de control. • Abre un puerto local superior a 1023. • Establece una conexión TCP con el puerto 21 del servidor. • Cuando se solicita una transferencia de ficheros. • El cliente envía el comando PASV para activar el modo pasivo. Como respuesta a este comando, el servidor retorna un numero de puerto que tenga disponible. • El cliente inicia una conexión TCP, abre un puerto local superior al 1023 hacia el puerto que le envió el servidor. • Se utiliza la conexión de datos para realizar la transferencia de información. Adrián de la Torre López El modo pasivo resuelve el problema de que el cliente tenga que aceptar conexiones en puertos mayores a 1023 pero lo traslada al servidor. La maquina donde se ejecuta el servidor FTP tiene que aceptar conexiones en múltiples puertos y esto es una amenaza para la seguridad del equipo. Los cortafuegos actuales permiten realizar un seguimiento de las conexiones pasivas de datos, comprobando que el cliente que solicita la conexión al puerto especificado por el servidor se corresponde con el cliente al que se le indico ese puerto y que por tanto la conexión se establece para el envió o recepción de datos.
Funcionalidad del servicio de transferencia de archivos. • 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 Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio... Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • 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 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. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. Por modo comando podemos acceder desde un terminal: Mediante un programa que admita la interfaz grafica como filezilla: Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. También se puede realizar mediante un navegador web: Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • 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: • Tipo. El tipo de usuario de panel de control que estableció la sesión: • para usuarios no registrados con el Panel. • para usuarios de FTP anónimo. • para administradores de sitio web. para usuarios web (propietarios de páginas web personales sin nombres de dominio individuales). • 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. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Seguridad en FTP FTP no es un protocolo seguro. Fue diseñador para ofrecer velocidad pero no seguridad. Se utilizan mecanismos de autenticación de usuarios para determinar los privilegios de acceso y transferencia en el servidor, pero: • No se usan mecanismos para garantizar que los equipos involucrados en la transferencia son quienes dicen ser. Es vulnerable a ataques de suplantación de identidad. • Todo el intercambio de información, incluyendo el usuario y password y la transferencia de cualquier archivo, se realiza en “texto plano” sin ningún tipo de cifrado. Es vulnerable a ataques de análisis de trafico de red. Los clientes y servidores FTP pueden tener vulnerabilidades y ser aprovechadas por potenciales atacantes para comprometer los datos y los equipos donde se ejecutan. • 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 port arbitrarios para la conexión de datos. Sin embargo, esto también significa que un hacker puede abrir una conexión a un port 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”. • “Scanning” de ports Un hacker que desea realizar una portscan 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). Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • “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 portscan, un hacker determina que un web server interno en ese sitio está disponible en el acceso 8080, un port 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 port arbitrario, en una máquina no pública del sitio (por ejemplo el web server interno en el port 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 dinamicos 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 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. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • FTPS (FTP/SSL): FTPS Implícito. FTPS Explícito (FTPES) Conjunto de especificaciones que determinan como encapsular FTP en SSL o en TLS para ofrecer comunicaciones seguras. Gracias a las utilización de algoritmos criptográficos y certificados digitales se puede garantizar la confidencialidad y la integridad de la información transmitida, así como la autenticidad de los servidores. Existen dos métodos para implementar FTPS, FTPS Explicito (FTPES) y FTPS Implícito: • FTPS Implícito: • El cliente establece una conexión de control y se establece la conexión SSL/TLS. • Si el servidor no soporta FTPS se cierra la conexión. • Todas las comunicaciones, conexión de control y conexiones de datos, son cifradas. El cliente y el servidor no negocian. • Para mantener la compatibilidad con los clientes FTP que no soporten SSL/TLS se utilizan otros puertos para atender las peticiones FTPS. • FTPS Explicito (FTPES): • El cliente establece una conexión de control al puerto 21, solicita explícitamente que la comunicación sea segura enviado el comando AUTH SSL o AUTH TTL y si el servidor lo soporta se establece una conexión SSL/TLS basándose en algoritmos criptograficos y certificados digitales. • Si el servidor no soporta FTPS le ofrece al cliente la posibilidad de usar FTP “normal” no seguro. • El cliente y el servidor pueden negociar que parte de las comunicaciones, conexión de control y/o conexiones de datos serán cifradas. • Es el método recomendado porque permite mayor control sobre la comunicación. Adrián de la Torre López
Funcionalidad del servicio de transferencia de archivos. • Protocolo FXP (File eXchangeProtocol) FileeXchangeProtocol (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. • Las ventajas: En esencia se trata del método más similar que existe para trasferir datos de un servidor a otro servidor sin permitir el acceso directo a la máquina. • Los inconvenientes: Algunos servidores no soportan FXP o lo tienen desactivado. Es más, los clientes FTP habituales no suelen estar diseñado para este tipo de intercambios. • Lo que no gusta: La razón por la que la mayoría de administradores de servicios de hosting desactivan esta herramienta es obvia: por riesgos de seguridad. FXP podría exponer nuestro servidor a una vulnerabilidad conocida como “FTP bounce”, en la que el hacker puede tomar acceso al servidor a través de un puerto abierto por un usuario inocente, convirtiendo su servidor en un zombie y aprovechándose de sus recursos para sus propios intereses. Adrián de la Torre López