Fundamentos y Operación del Protocolo FTP: Una Visión Completa

Clasificado en Informática

Escrito el en español con un tamaño de 10,61 KB

Introducción al Protocolo FTP

El Protocolo de Transferencia de Archivos (FTP) es un mecanismo estándar para la transferencia de archivos entre sistemas en redes TCP/IP. Este protocolo, especificado en el RFC 959, establece una comunicación robusta y eficiente.

Durante una conexión FTP, se abren dos canales de transmisión:

  • Un canal de comandos (control): Utilizado para enviar instrucciones y recibir respuestas.
  • Un canal de datos: Dedicado a la transferencia real de archivos.

Para utilizar FTP, es fundamental tener en cuenta la máquina que recibirá o enviará los archivos. Cabe destacar que muchos servidores FTP en Internet permiten su uso con cuentas anónimas, facilitando el acceso público a ciertos recursos.

Objetivos Fundamentales de FTP

El FTP fue diseñado con los siguientes propósitos clave:

  • Promover el intercambio de archivos entre máquinas remotas.
  • Fomentar el acceso a sistemas remotos.
  • Independizar las necesidades del usuario de los sistemas de archivos específicos.
  • Conseguir una transferencia de datos rápida y fiable.

Consideraciones de Seguridad en FTP

A pesar de sus ventajas, FTP presenta importantes limitaciones de seguridad:

  • Utiliza un mecanismo de login normal, sin autenticación robusta.
  • Las credenciales (usuario y contraseña) se transfieren en texto plano.
  • Un sniffer puede capturar fácilmente las tramas de la sesión.
  • FTP no cifra la sesión ni las transferencias de datos, que también se realizan en texto plano.

Por estas razones, para entornos donde la seguridad es crítica, se recomienda el uso de protocolos como FTPS o SFTP.

Funcionamiento de la Conexión FTP

El cliente se conecta al servidor utilizando un puerto local efímero (mayor a 1024) como origen y el puerto 21 del servidor como destino (puerto de escucha para comandos). Para la transferencia de datos, el servidor abre el puerto 20.

Es importante recordar que sobre un puerto TCP/UDP, solo puede haber un programa escuchando a la vez.

Modos de Conexión FTP

FTP soporta dos modos principales de conexión para la transferencia de datos:

  • Modo Activo: La conexión para la transferencia de datos es iniciada por el servidor, utilizando un puerto indicado por el cliente FTP.
  • Modo Pasivo: El cliente FTP inicia la conexión para la transferencia de datos, utilizando un puerto indicado por el servidor. El comando PASV es crucial en este modo, ya que solicita al servidor FTP que escuche en un puerto de datos distinto al por defecto y espere a recibir una conexión en lugar de iniciarla. La respuesta a este comando incluye la IP y el puerto donde el servidor espera la conexión.

Tipos de Usuarios FTP

Existen diferentes categorías de usuarios para acceder a un servidor FTP:

  • Usuarios FTP Estándar: Tienen una cuenta de usuario en la máquina que ofrece el servicio FTP.
  • Usuarios Anónimos: No tienen una cuenta específica. Para acceder, utilizan una clave simbólica que suele ser una dirección de correo electrónico. Su acceso es generalmente limitado a directorios públicos.
  • Usuarios Virtuales: No son usuarios del sistema operativo. Sus cuentas se crean y gestionan en una base de datos (por ejemplo, MySQL) y solo se autentican para usar el servicio FTP.

Modos de Ejecución de Servidores FTP

Los servidores FTP pueden ejecutarse en dos modos principales:

  • Modo Aislado (Standalone): El servidor se ejecuta como un proceso del sistema de forma independiente durante el arranque y permanece activo continuamente, a la espera de peticiones.
  • Modo Superservidor (a través de Inetd): El servidor se ejecuta como un proceso hijo de Inetd. Inetd es un proceso del sistema que redirige las peticiones TCP o UDP a sus respectivos servicios. En este caso, se debe configurar el archivo /etc/inetd.conf añadiendo la línea correspondiente al servicio FTP. Este modo es específico de GNU y requiere arrancar un nuevo proceso cada vez que se establece una nueva conexión. Ambos modos de ejecución son excluyentes.

Un ejemplo de servidor FTP popular es vsftpd (very secure FTP daemon).

Tipos de Archivos y Protocolos Relacionados

Tipos de Archivos en FTP

FTP agrupa los archivos en dos tipos principales para la transferencia:

  • ASCII (Texto plano): Utilizado para archivos de texto.
  • Binarios: Incluye todo lo que no sea archivos de texto, como ejecutables (.exe, .bin), imágenes, documentos, etc.

TFTP (Trivial File Transfer Protocol)

TFTP es un protocolo más simple que FTP, utilizado principalmente para la transferencia de pequeños archivos entre equipos de una red local. A diferencia de FTP, que utiliza TCP (puertos 21 y 20), TFTP utiliza UDP en el puerto 69.

Comandos FTP Esenciales

A continuación, se presenta una lista de comandos FTP comunes y su función:

ComandoDescripción
?Muestra las órdenes disponibles.
ASCIIIndica que la transferencia de archivos se realizará en modo ASCII (texto plano). Es el valor por defecto.
BINARYIndica que la transferencia de archivos se realizará en modo binario.
CDCambia el directorio de trabajo en el servidor FTP remoto.
LCDCambia el directorio de trabajo en la máquina local.
CHMODPermite modificar los permisos de los archivos y directorios en el servidor remoto utilizando la sintaxis de Unix (ej. chmod [modos] [archivo]).
LCHMODModifica los permisos de los archivos y directorios en la máquina local utilizando la sintaxis de Unix.
CLOSECierra la conexión FTP actual, pero no el cliente FTP.
DELETEBorra un archivo específico en el servidor FTP remoto.
MDELETEBorra múltiples archivos en el servidor FTP remoto.
MKDIRCrea un nuevo directorio en el servidor FTP remoto.
DIRVisualiza el contenido de un directorio en el servidor FTP remoto.
LDIRVisualiza el contenido de un directorio en la máquina local.
GETCopia un archivo especificado del servidor remoto a la máquina local con el mismo nombre.
MGETCopia múltiples archivos del servidor remoto al directorio local.
LSSin argumentos, muestra un listado de archivos en el servidor remoto.
PUTCopia un archivo especificado de la máquina local al servidor remoto.
PROMPTActiva o desactiva el modo interactivo. En 'on', solicita confirmación antes de transferir cada archivo. En 'off', no lo hace.
PWDMuestra el directorio de trabajo actual en el servidor remoto.
LPWDMuestra el directorio de trabajo actual en la máquina local.
QUITTermina la sesión y cierra la conexión FTP.
RENAMERenombra un archivo o directorio en el servidor remoto.
RMDIRElimina un directorio vacío en el servidor remoto.
SIZEMuestra el tamaño de un archivo en el servidor remoto.

Entradas relacionadas: