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:
Comando | Descripción |
---|---|
? | Muestra las órdenes disponibles. |
ASCII | Indica que la transferencia de archivos se realizará en modo ASCII (texto plano). Es el valor por defecto. |
BINARY | Indica que la transferencia de archivos se realizará en modo binario. |
CD | Cambia el directorio de trabajo en el servidor FTP remoto. |
LCD | Cambia el directorio de trabajo en la máquina local. |
CHMOD | Permite modificar los permisos de los archivos y directorios en el servidor remoto utilizando la sintaxis de Unix (ej. chmod [modos] [archivo] ). |
LCHMOD | Modifica los permisos de los archivos y directorios en la máquina local utilizando la sintaxis de Unix. |
CLOSE | Cierra la conexión FTP actual, pero no el cliente FTP. |
DELETE | Borra un archivo específico en el servidor FTP remoto. |
MDELETE | Borra múltiples archivos en el servidor FTP remoto. |
MKDIR | Crea un nuevo directorio en el servidor FTP remoto. |
DIR | Visualiza el contenido de un directorio en el servidor FTP remoto. |
LDIR | Visualiza el contenido de un directorio en la máquina local. |
GET | Copia un archivo especificado del servidor remoto a la máquina local con el mismo nombre. |
MGET | Copia múltiples archivos del servidor remoto al directorio local. |
LS | Sin argumentos, muestra un listado de archivos en el servidor remoto. |
PUT | Copia un archivo especificado de la máquina local al servidor remoto. |
PROMPT | Activa o desactiva el modo interactivo. En 'on', solicita confirmación antes de transferir cada archivo. En 'off', no lo hace. |
PWD | Muestra el directorio de trabajo actual en el servidor remoto. |
LPWD | Muestra el directorio de trabajo actual en la máquina local. |
QUIT | Termina la sesión y cierra la conexión FTP. |
RENAME | Renombra un archivo o directorio en el servidor remoto. |
RMDIR | Elimina un directorio vacío en el servidor remoto. |
SIZE | Muestra el tamaño de un archivo en el servidor remoto. |