Teoría servidor FTP

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 12,55 KB

UT04. FTP



Servicio FTP:

Es un protocolo de capa de aplicación (capa 7) diseñado para ofrecer un servicio estándar de transferencia de ficheros entre sistemas conectados a redes TCP/IP.

Carácterísticas:

Permite a los usuarios:  Acceder a sistemas remotos y listar directorios y ficheros. Transferir ficheros desde o hacia el sistema remoto. Realizar acciones adicionales en el sistema remoto.

Componentes y funcionamiento:

Su funcionamiento se basa en el modelo cliente/servidor y está formado por los siguientes componentes:

Clientes FTP

Acceden al sistema de ficheros del equipo donde están instalados y establecen conexiones con los servidores FTP para subir o descargar archivos.

Servidores FTP

Acceden al sistema de ficheros del equipo donde están instalados, manejan las conexiones de los clientes y en función de los privilegios definidos permiten la descarga y/o la subida de ficheros.  

Protocolo FTP

Conjunto de normas y reglas en base a las cuales "dialogan" los clientes y los servidores FTP. Usa TCP como protocolo de transporte (capa 4).

Servidores FTP

Un servidor FTP es un programa que atiende y procesa las conexiones de los clientes FTP y que puede acceder al sistema de ficheros del equipo donde está instalado permitiendo la subida y bajada de archivos.

Clientes FTP

Programas que acceden al sistema de ficheros del equipo donde están instalados y establecen conexiones con los servidores FTP para subir o descargar archivos. Se pueden clasificar según el interfaz de usuario que ofrecen:  

Clientes en línea de comandos:

La mayoría de los sistemas operativos integran un cliente que se puede invocar desde la línea de comandos con la orden ftp.
Para iniciar una conexión se emplea la sintaxis ftp servidor. Una vez establecida la conexión el cliente pone a disposición del usuario una serie de comandos (por ejemplo, ls, get, put, mget, mput, cd, lcd...) para listar el contenido de los directorios del servidor, iniciar bajadas y subidas de ficheros, etc.

Clientes gráficos:

Ofrecen al usuario un interfaz gráfico que facilita la conexión al servidor y la transferencia de ficheros. Suele integrar múltiples funciones adicionales. (FileZilla)

Navegadores y exploradores:

Los navegadores (Firefox, Chrome...) y los exploradores de archivos (Explorer, Nautilus,...) actuales pueden actuar como clientes ftp.
Para utilizaros hay que indicar en la dirección que se realizará la conexión a un servidor FTP: Formato general: ftp://[usuario] [ : password] @servidor.  Para realizar conexiones con el usuario anonymous no hay que indicar ni usuario ni contraseña. Usan el modo activo por defecto. Ofrecen un cliente FTP limitado pero sencillo de usar.

Protocolo FTP

El protocolo FTP determina el conjunto de normas y reglas en función de las cuales "dialogan" los clientes y los servidores FTP. La comunicación se basa en el envío de mensajes de texto que contienen comandos y respuestas. Utiliza TCP como protocolo de transporte. Los comandos FTP son cadenas de caracteres que finalizan con el código de final de línea (< cr=""> + < lf="">).  Las respuestas FTP son enviadas por el servidor como consecuencia de la acción ejecutada al recibir un comando. Están compuestas por un código de 3 dígitos, que indica cómo se ha procesado el comando enviado, y un mensaje de texto descriptivo. Los dígitos determinan el tipo de respuesta.  El primer dígito indica si la acción solicitada por el comando fue exitosa o fallida.El segundo dígito indica a qué se refiere la respuesta. El tercer dígito ofrece información más específica relacionada con el segundo dígito.

Tipos de acceso:

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, 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 está instalado el servidor FTP.  Usuarios "virtuales", creados para el acceso FTP. Sus credenciales se pueden almacenar en bases de datos, etc.  Una vez que se ha autenticado, el usuario accede a un directorio del servidor en el que puede estar o no "enjaulado". En el servidor se configuran los privilegios que tiene cada usuario.

Conexiones y modos:

FTP es un servicio basado exclusivamente en TCP que utiliza varias conexiones y puertos.

Conexión de control y conexiones de datos:

Los servidores y los clientes mantienen conexiones TCP independientes para control y transferencia de datos.

Conexión de control:

Inicialmente el cliente establece una conexión con el servidor para "dialogar" con él. Le envía comandos de descarga (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 sesíón o hasta que el servidor la finalice porque caduca el tiempo de espera a causa de la inactividad (timeout). Los servidores pueden atender múltiples conexiones de control simultáneamente, tantas como se configuren en el servidor para evitar su sobrecarga.

Conexiones 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 simultáneas, tantas como transferencias simultáneas 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. Los clientes utilizan puertos mayores a 1023 (en el ejemplo 3003, 2100,...) para iniciar o atender conexiones. Un cliente FTP puede iniciar una conexión a un servidor de dos formas distintas que se conocen como modo activo y modo pasivo.

Modo activo


Es el modo nativo del servicio FTP , es el servidor el que inicia las conexiones de datos y el cliente tiene que abrir puertos para atender dichas conexiones. La máquina 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 Modo Pasivo:
En el modo pasivo es siempre el cliente el que inicia las conexiones con el servidor. El modo pasivo resuelve el problema de que el cliente tenga que aceptar conexiones en puertos mayores a 1023 pero lo traslada al servidor.

Resumen y comparativa de modos


 

Modo activo


 Conexión de control: Cliente ( >1023) Servidor (21) , Conexiones de datos: Cliente ( >1023) Servidor (20)

Modo pasivo

Conexión de control: Cliente ( >1023) Servidor (21)  Conexiones de datos: Cliente ( >1023) Servidor (>1023). El modo activo facilita la configuración y la administración del servidor FTP pero presenta problemas de seguridad a los clientes y problemas de acceso si están detrás de un cortafuegos y/o encarninador NATP. El modo pasivo favorece al cliente pero implica una configuración más compleja en el servidor.

Tipos de transferencia de archivos

En FTP existen dos modos de transferencia de archivos, ASCII y binario:  Formato ASCII (type ascii). Se transmite byte a byte, para textos. Formato binario (type bin). Se transmite bit a bit.Los clientes FTP permiten definir el formato de transmisión (ascii o bin) a utilizar en función del tipo de archivo a transferir. Algunos clientes, actualmente casi todos, ofrecen modo automático que detecta el tipo de archivo y establece el tipo de transferencia adecuado.

Seguridad

FTP no es un protocolo seguro. Fue diseñado 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 (spoofing).  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 tráfico de red (sniffing).Los clientes y servidores FTP pueden tener vulnerabilidades y ser aprovechadas por potenciales atacantes para comprometer los datos y los equipos donde se ejecutan.

FTPS (o FTP/SSL)

 Conjunto de especificaciones que determinan cómo encapsular FTP en SSL (Secure Sockets Layer) o en TLS ( Transport Layer Security) para ofrecer comunicaciones seguras. Gracias a la 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 (se usan como puertos estándar el 990/TCP para control y el 989/TCP para datos).

FTPS Explicito

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 criptográficos 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.

Protocolo FXP

FXP (File eXchange Protocol) es un protocolo de transferencia de datos directa entre servidores FTP, utilizando un cliente solo para conectarlos inicialmente.

Servicio TFTP:

Es un protocolo de capa de aplicación (capa 7) diseñado para ofrecer un servicio de transferencia de ficheros simple y rápido basado en el modelo cliente/servidor. Al igual que en FTP existen clientes TFTP y servidores TFTP. Sus carácterísticas principales son: TFTP utiliza UDP como protocolo de nivel de transporte (capa 4). Los servidores TFTP usan el puerto 69/UDP como puerto estándar.No existen mecanismos de autenticación o cifrado.

Servicios SFTP/SCP

SSH es un protocolo de capa de aplicación diseñado para ofrecer un servicio de acceso a terminales de equipos remotos. Está basado en el modelo cliente/servidor. El cliente SSH permite establecer conexiones a terminales del equipo donde ejecuta el servidor SSH. Los servidores SSH usan el puerto 22/TCP como puerto estándar. SSH, a diferencia de otros protocolos de acceso remoto, como por ejemplo Telnet, ofrece autenticación, confidencialidad e integridad. Se autentifica a los dos extremos de la conexión El servidor se autentica, ante el cliente con una clave. El cliente se autentica ante el servidor. Se cifran los datos intercambiados Se basa en los protocolos:

SFTP

 Permite la transferencia de ficheros entre sistemas remotos, listar ficheros y directorios del servidor y realizar funciones adicionales en el servidor como renombrar, borrar, crear archivos y carpetas, cambiar permisos, descomprimir,...

SCP

Permite la "copia" de ficheros entre sistemas remotos. Los servidores SSH atienden peticiones de transferencia de ficheros desde clientes SFTP y/o SCP.

Entradas relacionadas: