bg
Inicio | Diferencias entre FTP, SFTP y FTPS

Diferencias entre FTP, SFTP y FTPS

FTP, SFTP y FTPS son los tres protocolos más comunes que se utilizan para la transferencia de archivos. Si bien los acrónimos de estos protocolos son parecidos, existen algunas diferencias entre FTP, SFTP y FTPS, sobre todo en el nivel de seguridad y en cómo se intercambian los datos. A continuación, veremos cuál elegir en cada caso y cuál es el que más nos conviene.

Es interesante conocer sus diferencias y saber qué hay detrás de ellos para decidir cuál es el que más nos conviene y se adapta a nuestras necesidades. El uso que vayamos a darle condicionará nuestra elección, aunque siempre es aconsejable utilizar un protocolo con una capa de encriptación, por lo que la balanza se decanta hacia un FTPS o STFP.

Un programa gratuito que os recomendamos instalar es Filezilla, un cliente que soporta los protocolos FTP, SFTP y FTP sobre SSL/TLS (FTPS), muy liviano y fácil de configurar.

FTP

Las siglas FTP corresponden a “File Transfer Protocol”. Es un protocolo, creado en la época de los 70, que sirve para transferir ficheros entre sistemas conectados a una red TCP.

Intercambio de datos

Por defecto el puerto que utiliza es el 21 y es el encargado de validar las conexiones de clientes y ejecutar los comandos entre un cliente FTP y un servidor.

La autenticación de los usuarios se realiza con los comandos USER y PASS y el canal permanece abierto hasta que entre en acción el comando QUIT, que hará que el servidor se desconecte.

El responsable de intercambiar datos en forma de listas de directorios y archivos es el canal de datos, que se ejecuta mediante puertos temporales que escuchan en el servidor o en el cliente.

Existen también otros comandos como LIST, STOR y RETR, que se usan para obtener una lista de directorios del servidor, cargar un archivo y descargarlo, cerrando el canal de datos una vez que se completa la transferencia.

Seguridad

Su principal defecto, y que marca las diferencias entre FTP, SFTP y FTPS, es que carece de capa de seguridad, ya que los datos se transfieren como texto plano, sin encriptación. Por lo que interceptar los archivos y los datos de autenticación es relativamente sencillo.

Por otro lado, al no tener encriptación, la transmisión de datos es la más rápida de todos los protocolos que veremos en este artículo.

Firewall

Servidor: permitiremos conexiones entrantes en el puerto 21.

Por ejemplo, podemos definir un rango de puertos pasivos entre el 2000 y el 2500 para listados de directorios y transferencia de archivos y para conexiones entrantes, el rango de los puertos pasivos.

Cliente: admitiremos conexiones salientes al puerto 21 y al rango de puertos pasivos determinado por el servidor.

FTPS

Las siglas FTPS significan “FTP over SSL” y es el protocolo FTP al que se le añade una conexión segura.

La conexión segura se refiere a SSL (Secure Sockets Layer), aunque también soporta el protocolo TLS (Transport Layer Security), aparecido posteriormente.

Intercambio de datos

Es la misma que la de FTP.

Seguridad

FTPS usa dos canales, el de transferencia y el de control, con dos variantes que las diferencia:

FTP implícito sobre SSL. La conexión cifrada va por defecto. Hace uso del puerto 990 para el canal de control y del puerto 998 para datos, quedando el puerto 21 libre si queremos utilizar el FTP estándar.

FTP explícito sobre SSL o FTPES. El cliente y el servidor “negocian” el nivel de protección, por lo que podremos establecer tanto conexiones FTP estándar mediante el puerto 21, como conexiones cifradas con SSL.

Inicialmente el cliente establece una conexión no cifrada con el servicio FTP. Antes de que se envíen las credenciales de usuario, el cliente indica al servidor que cambie el canal de comando a otro cifrado SSL con AUTH TLS o AUTH SSL, y si todo es correcto, el cliente remite las credenciales de usuario al servidor FTP.

El problema que puede tener este protocolo es que al utilizar más de un canal puede causar problemas con algunas configuraciones en los firewalls, por lo que deberemos revisar los parámetros si queremos que funcione correctamente.

Firewall

Servidor: permitiremos conexiones entrantes en el puerto 21 y/o también en el puerto 990.

Por ejemplo, podemos definir para transferencias de listados y transferencias de archivos un rango de puertos pasivos entre el 2000 y el 2500 y que permita conexiones entrantes en el rango de puertos pasivos.

Cliente: admitiremos conexiones salientes al puerto 21 y al rango de puertos pasivos definido por el servidor.

STFP

Las siglas SFTP corresponden a “SSH File Transfer Protocol” y es un protocolo que se comporta como el FTP, pero nada tiene que ver con él. De hecho, está desarrollado desde cero.

La transferencia y los datos de control siempre van encriptados por el puerto 22, el mismo que el protocolo SSH (Secure SHell) sobre el que está construido.

Intercambio de datos

Una de las importantes diferencias entre FTP, FTPS y STFP es que esta última no utiliza conexiones separadas de datos y comandos. Estos se transfieren de forma conjunta en una sola conexión y con un formato especial.

Seguridad

Los datos enviados entre cliente-servidor se cifran utilizando un método de cifrado establecido. Una alternativa a la forma tradicional de identificarse (usuario/contraseña) es hacerlo mediante la autenticación de clave pública, con la que podremos proteger mucho más las sesiones SFTP con claves públicas y privadas.

Firewall

Servidor: permitiremos conexiones entrantes en el puerto 22.

Cliente: permitiremos conexiones salientes al puerto 22.