Introducción al protocolo FTP
Despliegue de Aplicaciones Web
Curso 2024/2025
1 Introducción al protocolo FTP (File Transfer Protocol)
1.1 ¿Qué es el protocolo FTP?
FTP (File Transfer Protocol) es un protocolo de red que se utiliza para transferir archivos entre un cliente y un servidor.
1.2 Modos de transferencia
El protocolo FTP define dos modos de transferencia:
Modo Activo: En este modo, el cliente se conecta al servidor FTP a través del puerto de control
21
y es el cliente el que abre un puerto temporal por encima del1024
, para la transferencia de datos.El cliente informa al servidor sobre el puerto que ha abierto para la transferencia de datos mediante el comando
PORT
.Este modo puede ocasionar problemas cuando el cliente está detrás de un firewall que puede bloquear las conexiones entrantes.
Imagen 1: Modo Activo. Imagen obtenida de Wikipedia.
Modo Pasivo: En este modo, el cliente se conecta al servidor FTP a través del puerto de control
21
y le solicita al servidor que abra un puerto para iniciar la transferencia de datos enviando el comandoPASV
. El servidor responde con la dirección IP y el número de puerto para la conexión de datos.Este modo tiene el inconveniente de que el servidor debe tener abierto un amplio rango de puertos para la transferencia de datos.
Imagen 2: Modo Pasivo. Imagen obtenida de Wikipedia.
1.3 Diferencias entre
FTP
y FTPS
En esta sección vamos a tratar de explicar las principales diferencias que existen entre FTP y FTPS.
FTP (File Transfer Protocol): El protocolo FTP plano no utiliza ningún tipo de cifrado, por lo tanto, las credenciales y los datos se envían en texto plano.
FTPS (FTP over SSL/TLS): Este protocolo añade una capa de seguridad cifrando la comunicación con SSL/TLS. En este protocolo se pueden utilizar dos modos, dependiendo de la forma en la que se establece la conexión segura:
Modo implícito: Se trata de un modo antiguo donde la conexión entre el cliente y el servidor es segura desde el principio. El cliente se conecta al servidor utilizando un puerto dedicado a las conexiones seguras, que suele ser el puerto
990
y el puerto de datos suele ser el998
.Este modo no se suele utilizar actualmente.
Modo explícito (FTPES): En este modo, el inicio de la conexión entre el cliente y el servidor se realiza de forma no segura, utilizando el puerto
21
. Una vez establecida la conexión, el cliente envía al servidor comandoAUTH TLS
oAUTH SSL
para iniciar la negociación de la capa de seguridad (TLS/SSL). Una vez hecho esto, el cliente envía las credenciales de usuario de forma segura.Es el modo recomendado para utilizar FTPS.
1.4 Otros protocolos de
transferencia de archivos: SFTP
y SCP
Existen otros protocolos de transferencia de archivos muy utilizados,
como SFTP
y SCP
.
SFTP (SSH File Transfer Protocol): Es un protocolo para transferir archivos de forma segura sobre el protocolo SSH (Secure Shell). Aunque incluye las siglas FTP se trata de un protocolo totalmente diferente. Un error común, es pensar que SFTP se trata de una versión segura de FTP sobre SSH, pero esto no es así, son protocolos diferentes.
Este protocolo utiliza el puerto
22
que es el puerto de SSH.Se trata de un protocolo más avanzado que permite realizar más operaciones como listar directorios, cambiar permisos y manipular archivos y directorios.
SCP
(Secure Copy): Es un protocolo para transferir archivos de forma segura sobre el protocolo SSH (Secure Shell). Este protocolo utiliza el puerto22
que es el puerto de SSH.Se trata de un protocolo más sencillo que está orientado únicamente a la copia de archivos y no permite realizar más operaciones.
1.5 Comandos básicos del protocolo FTP desde la línea de comandos
Algunos de los comands más utilizados en el protocolo FTP son:
Conexión al Servidor:
ftp
: Conecta con el servidor FTP.
Ejemplo:
ftp ftp.web.celia
Connected to 172.16.14.16.
220 ProFTPD Server (ProFTPD) [10.0.0.145]
Name (172.16.14.16:ubuntu): user
331 Password required for user
Password:
230 User user logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Navegación:
ls
: Obtiene un listado de los archivos del directorio actual.cd
: Permite cambiar de directorio.
Transferencia de Archivos:
put
: Sube un archivo desde el cliente al servidor.get
: Descarga un archivo del servidor al cliente.
Cerrar Sesión:
bye
oquit
: Cierra la conexión FTP.
Ayuda:
help
: Muestra todos los comandos disponibles que se pueden ejecutar por FTP.
1.6 Clientes gráficos de FTP
1.7 Servidores de FTP
2 Referencias
- FTP (File Transfer Protocol). Wikipedia.
- FTPS (FTP over SSL/TLS). Wikipedia.
- SFTP (SSH File Transfer Protocol). Wikipedia.
- ProFTPd. Wikipedia.