Tabla de Contenidos

Contenidos

Características de los protocolos de transferencia de ficheros.

Servicio FTP.

■ Características y funcionamiento.
■ Tipos de acceso.
■ Tipos de transferencia de ficheros.
■ Modos de conexión del cliente. Modos activo y pasivo.
■ Clientes FTP.
■ Servidores FTP.
■ Protocolo FTP.
■ Seguridad.
■ FTPS (FTP Secure o FTP/SSL).
■ FXR
■ Servicio TFTP.
■ Servicio SFTP.

Objetivos

Establecer la utilidad y modo de operación del servicio de transferencia de ficheros.

Realizar pruebas con clientes en línea de comandos y con clientes en modo gráfico.

Utilizar el navegador como cliente del servicio de transferencia de ficheros.

Instalar y configurar servidores de transferencia de ficheros.

Configurar el acceso anónimo.

Crear usuarios y grupos para acceso remoto al servidor.

Establecer límites en los distintos modos de acceso.

Comprobar el acceso al servidor, tanto en modo activo como en modo pasivo.

Elaborar documentación relativa a la instalación, configuración y recomendaciones de uso del servicio.

-Este capítulo explica la utilidad, las características y el funcionamiento de los servicios de transferencia de ficheros. Se profundiza en el protocolo FTP y en la administración y uso de servidores y clientes FTP.

1. Introducción

Una de las principales ventajas que ofrecen las redes basadas en TCP/IP es la posibilidad de transferir información entre los equipos que forman parte de ellas.

Existen múltiples servicios de red que permiten a los usuarios enviar ficheros de unos sistemas a otros, por ejemplo, servicio de correo electrónico (adjuntando archivos en los mensajes), servicios web a través de hipervínculos que apuntas a ficheros localizados en un servidor web), servicios p2p (peer to peer) de descarga, servicios para compartir recursos en red (Samba/SMB/CIFS). Algunos de los servicios nombrados anteriormente no están diseñados exclusivamente para transferir ficheros y no suelen estar optimizados para ello.

En este capítulo se explican servicios diseñados con el objetivo principal de transferir archivos entre diferentes sistemas, tratando en profundidad el basado en el protocolo FTP (File Transfer Protocol).

2. Servicio FTP

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

2.1. Características

FTP ofrece uno de los servicios más antiguos (en el año 2011 cumplió 40 años) de transferencia de ficheros y aun así se sigue utilizado 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 (upload) o bajar (download) 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.

2.2. 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 a 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.

2.3. 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 esta instalado permitiendo la subida y bajada de archivos. Ofrecen múltiples opciones de configuración para establecer privilegios de los usuarios, limitaciones de subida y descarga, tiempos de conexión y espera, etc.

Existen múltiples servidores FTP tanto para sistemas propietarios
Algunos de los más utilizados son:
Sistemas Linux/ Unix

■ vsftpd (http://vsftpd.beasts.org/).
■ proftpd (http://www.proftpd.org/).
■pure-ftpd (http://www.pureftpd.org/project/pure-ftpd).
■wu-ftpd (http://www.landfield.com/wu-ftpd/).LOL

Sistemas Windows
• Servidor FTP incluido en Internet Information Server (http://www.iis.net/)
• Fillezilla Server (http://filezilla-project.org/).
• Serv-U (http://www.serv-u.com/).

2.4. 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.

Existen múltiples clientes FTP tanto para sistemas libres como para sistemas propietarios. Se pueden clasificar según el interfaz de usuario que ofrecen.

Actividad 2: Consulta el siguiente enlace de Wikipedia http://en.wikipedia.org/wiki/Comparison_of_FTP_client_software en el que muestra una comparativa de múltiples clientes FTP.

2.4.1. 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. Dependiendo del sistema operativo pueden variar los comandos que podemos utilizar. Con el comando help o ? podemos consultar los comandos disponibles.

Si se quiere ejecutar un comando del equipo local se precede del símbolo !, por ejemplo ls muestra un listado del directorio actual del servidor y !ls o !dir muestran un listado del directorio actual del cliente. Hay una excepción, el comando cd, para ejecutar el comando cd en local hay que usar lcd y no !cd.

2.4.2 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.

Algunos de los más utilizados son:
• Filezilla client (http://filezilla-project.org/).
• WmSCP (http://winscp.net).
• Gftp (http://www.gftp.org/).
• SmartFTP (http://www.smartftp.com/).
• CuteFTP (http: www. globalscape. com/products/ftp_clients. aspx).
==== 2.4.3. Navegadores/exploradores ==== Los navegadores (Firefox, Internet Explorer, Google Chrome, Safari,…) 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
■ Ejemplos: ftp://ftp.rediris.es, ftp://alumno@192.168.100.100.
■ Para realizar conexiones con el usuario anonymous no hay que indicar ni usuario ni contraseña.
■ Usan el modo activo (explicado posteriormente) por defecto.

Ofrecen un cliente FTP limitado pero sencillo de usar. Permiten instalar complementos adicionales que incluyen clientes FTP más completos.

2.5. 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 >, retorno de carro seguido del carácter salto de línea).

■ 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.
Actividad 4: Consulta la Web http://www.networksorcery.com/enp/protocol/ftp.htm y observa los comandos y las respuestas del protocolo FTP. En la web hay enlaces a las RFCs que definen el protocolo FTP

Actividad 5. Inicia una sesión en w7XX con un usuario con privilegios de administrador. Inicia una captura de tráfico de la red con Wireshark en modo “no promiscuo”, abre un terminal y utiliza el cliente ftp en línea de comandos para establecer una conexión como usuario anónimo a ftp.rediris.es.

Para la captura en Wireshark, selecciona una trama que contenga el protocolo FTP, haz clic con el botón derecho del ratón y selecciona Follow TCP Stream.

Observa y analiza los comandos y respuestas FTP ¿Qué modo ha usado el cliente FTP para conectarse?

2.6. 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, (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 está instalado el servidor FTP.
Usuarios “virtuales”, creados para el acceso FTP. Sus credenciales se pueden almacenar en bases de datos (por ejemplo MySQL), servicios de directorio (LDAP). ficheros de texto, etc.

• Una vez que se ha autenticado, 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 espació, acceso a unos directorios u otros, limitación de velocidades, etc.)

2.7- Conexiones y modos

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

2.7.1- Conexión de control y conexiones de datos

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

. Conexión de control. Inicialmente el cliente establece una conexión con el servidor para dialogar con el. 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 sesión o hasta que el servidor la finalice porque caducad 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 (conexión de datos) 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 (incluidos listados de directorios) y por las anexiones 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 se usan siempre el puerto 20 para las conexiones de datos. 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 servidores de dos formas distintas que se conocen como modo activo y modo pasivo.

4.2.7.2. Modo activo

Es el modo nativo del servicio FTP y su funcionamiento es el siguiente:

1. Se inicia el cliente y establece una conexión de control

2. 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 número de puerto que “abrirá” para usar en la conexión de datos

En este modo, 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.

NOTA: Los cortafuegos actuales y versiones modernas de NATP implementan FTP ALG (Application Level Gateway). Es un mecanismo que:

Por lo tanto, si un NATP implementa ALG, los clientes de la red interna podrán iniciar conexiones FTP utilizando el modo activo. Ten en cuenta que no todos los cortafuegos NATP implementan ALG.

Para solventar estos problemas, consecuencia de que sea el servidor el que inicia las conexiones de datos, se desarrolló el modo pasivo.

2.7.3. Modo pasivo

En el modo pasivo es siempre el cliente el que inicia las conexiones con el servidor. El puerto 20 del servidor no se utiliza.

1.- El cliente se inicia y establece una conexión de control

2.- Cuando se solicita una transferencia de ficheros

  1. Configurar en el servidor la IP externa que usa el NATP y un rango de puertos para aceptar conexiones de datos.
  2. Redirigir el rango de puertos del encaminador que hace NATP al equipo donde está el servidor FTP

2.7.4. Cortafuegos y encaminadores/NATP

El uso de servidores y clientes FTP y los modos activo y pasivo implican una configuración adecuada de los cortafuegos y de los encaminadores/NATP que existan en los equipos y redes donde se utilizan. Resumimos a continuación algunas situaciones comunes

  1. Conexión en modo activo
    • El cortafuegos instalado en el equipo cliente tiene que permitir conexiones TCP salientes hacia el puerto 21 y conexiones TCP entrantes a puertos mayores que 1023 desde el puerto 20.
    • Si el cliente está detrás del cortafuegos de red y/o un encaminador/NATP
    • Si el NATP no implementa FTP ALG. Existirán problemas porque se filtrarán las conexiones TCP iniciadas desde el exterior por los servidores FTP a puertos mayores que 1023 del cliente.
    • Si el NATP implementa FTP ALG. Los clientes podrán usar el modo activo porque se permitirán conexiones entrantes a puertos mayores que 1023.
  2. Conexión en modo pasivo.
    • Los cortafuegos existentes tienen que permitir conexiones TCP salientes hacia el puerto 21 y hacia puertos mayores que 1023.

• Servidor FTP

• Acepta conexiones en modo activo
• Los cortafuegos existentes tienen que permitir conexiones TCP entrantes al puerto 21 del servidor.
• Los cortafuegos existentes tienen que permitir conexiones TCP salientes desde el puerto 20 del servidor hacía puertos mayores que 1023.

• Acepta conexiones en modo pasivo
• El cortafuegos instalado en el servidor tiene que permitir conexiones TCP entrantes hacia el puerto 21 y conexiones TCP entrantes a puertos mayores que 1023. Es recomendable que el cortafuegos haga 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 indicó ese puerto.
• Si el servidor está detrás de un cortafuegos de red y/o encaminadores/NATP
• Los cortafuegos de red tienen que permitir las conexiones TCP entrantes al puerto 21.
• Hay que redirigir el puerto 21 del encaminador/NATP al puerto 21 del servidor
• Se tiene que configurar en el servidor la IP externa del NATP y un rango de puertos para aceptar conexiones de datos,
• Los cortafuegos de red deben permitir las conexiones TCP entrantes hacia los puertos definidos en el rango.
• Hay que redirigir el rango de puertos del encaminador/NATP al servidor FTP.

2.7.5. Resumen y comparativa de modos

  1. Conexión de control: Cliente (>1023) → Servidor (21)
  2. Conexiones de datos: Cliente (>1023) ← Servidor (20)
  1. Conexión de control: Cliente (>1023) → Servidor (21)
  2. 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 encaminador NATP.

El modo pasivo favorece al cliente pero implica una configuración más compleja en el servidor.

2.8. Tipos de transferencia de archivos

En FTP existen dos modos de transferencia de archivos, ASCII y binario

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, ofrecen modo automático que detecta el tipo de archivo y establece el tipo de transferencia adecuado.

2.9. 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 v transferencia en el servidor, pero: \\.

Los clientes y servidores FTP pueden tener vulnerabilidades y ser aprovechadas por potenciales atacantes para comprometer los datos y los equipos donde se ejecutan.

NOTA: La mayoría de los protocolos TCP/IP (FTP, HTTP. SMTP. Telnet, POP, IMAP. DNS,…) no son seguros porque en su diseño inicial no se pensó en la seguridad.

2.10. FTPS (o FTP/SSL)

Conjunto de especificaciones que determinan cómo encapsular FTP en SSL (Secare 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 Explícito (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 Explícito (FTPES)

El cliente establece una conexión de control al puerto 21, solícitamente que la comunicación sea segura enviado el comando AUTH SSL o AUTH TTL y si el servar lo soporta se establece una conexión SSL/TLS basándose en algoritmos criptógrafos 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 qué parte de las comunicaciones, conexión de control yo conexiones de datos serán cifradas.

El método recomendado porque permite mayor control sobre la comunicación

No hay que confundir FTPS con SFTP (SSH File Transfer Protocol) el protocolo de transferencia de ficheros basado en SSH. Ni con enviar el protocolo FTP a través de una conexión SSH (túnel FTP sobre SSH) conocido como Secure FTP. Por lo tanto FTPS, SFTP y Secure FTP son diferentes.

enlace diferencias

2.11. Protocolo FXP

FXP (File eXchange Protocol) es un protocolo de transferencia de datos directa entre servidores FTP, utilizando un cliente solo para conectarlos inicialmente. Esto significa que el ancho de banda del cliente es solo para la conexión inicial y no para la transferencia de ficheros que se hace directamente de un servidor a otro. Para que sea posible los servidores FTP tienen que permitirlo.

FTPX se puede utilizar, por ejemplo, si quieres migrar ficheros de un servidor FTP a otro ahorrando la descarga desde un servidor al cliente y posteriormente la subida del cliente al otro servidor (se consigue mayor rapidez y menor sobrecarga de la red)

3. Servicio TFTP

TFTP (Trivial File Transfer Protocol) es un protocolo de capa de aplicación 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 características principales son:

■ TFTP utiliza UDP como protocolo de nivel de transporte. Los servidores TFTP usan el puerto 69/UDP como puerto estándar.

■ No existen mecanismos de autenticación o cifrado.

Al utilizar el protocolo UDP la capa de transporte no garantiza la integridad de la información transmitida pero la velocidad de transferencia es mayor que en FTP.

Se utiliza principalmente en estaciones o dispositivos de red para cargar y hacer copias de seguridad del sistema operativo, archivos de configuración, aplicaciones, etc.

CISCO, una de los principales fabricantes de routers y switches, usa TFTP para realizar copias de seguridad de archivos de configuración y cargar nuevas versiones del sistema operativo en sus dispositivos.

4. Servicios SFTP/SCP

SSH (Secure Shell Protocol) 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.

  1. El servidor se autentica ante el cliente con una clave.
  2. El cliente se autentica ante el servidor.
  1. Nombres de usuarios y passwords viajan cifrados.
  2. La información transmitida viaja también cifrada.

SSH, además de otras funcionalidades, integra mecanismos de transferencia de ficheros garantido igualmente autenticación, confidencialidad e integridad. Se basa en los protocolos SFTP (SSH File Transfer Protocol) y SCP (Secure Copy Protocol).

■ SFTP

■ SCP

Los servidores SSH atienden peticiones de transferencia de ficheros desde clientes SFTP y/o SCP. Ejemplos de servidores SSH son OpenSSH (http://www.openssh.com/) y WinSSHD (http://www.bitvise.com/winsshd).

Existen múltiples clientes SFTP/SCP y se pueden clasificar según el interfaz de usuario que ofrecen: \\. ■ Clientes en línea de comandos

■ Clientes gráficos