Despliegue de Aplicaciones Web
José Juan Sánchez Hernández
Curso 2024/2025
FTP (File Transfer Protocol) es un protocolo de red que se utiliza para transferir archivos entre un cliente y un servidor.
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 del 1024
,
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 comando PASV
. 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.
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 el 998
.
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 comando AUTH TLS
o
AUTH 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.
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
puerto 22
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.
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
o quit
: Cierra la conexión FTP.Ayuda:
help
: Muestra todos los comandos disponibles que se
pueden ejecutar por FTP.