Diferencia entre FTP, FTPS y SFTP

Diferencia entre FTP, FTPS y SFTP

Algunas veces nos complicamos con estos terminos. Elegir el protocolo de transferencia que debe usar para subir su sitio web. Es más confuso cuando casi todos se parecen en el nombre, existen algunas diferencias entre ellos, en particular, cómo se produce el intercambio de datos, los niveles de seguridad y el firewall del servidor o del cliente.

FTP

El protocolo FTP (Protocolo de transferencia de archivos) ha existido durante bastante tiempo. Se propuso por primera vez en RFC 114, hace más de 40 años, y finalmente evolucionó a RFC 959, que es el estándar que los clientes y servidores de FTP siguen hoy.

El intercambio de datos

El protocolo FTP intercambia datos usando dos canales separados conocidos como el canal de comando y el canal de datos.

El canal de comando normalmente se ejecuta en el puerto del servidor 21 y es responsable de aceptar las conexiones del cliente y de manejar el intercambio de comandos simples entre un cliente FTP y un servidor. Los comandos USER y PASS utilizados para autenticar a un usuario de FTP son ejemplos de comandos que se intercambian en el canal de comandos. El canal de comando permanece abierto hasta que el cliente envíe el comando QUIT para desconectarse, o el servidor desconecte al cliente debido a inactividad u otra razón.

El canal de datos se ejecuta utilizando puertos temporales a pedido en el servidor (modo pasivo) o en el cliente (modo activo) y es responsable del intercambio de datos en forma de listas de directorios y transferencias de archivos. Los comandos LIST, STOR y RETR utilizados para obtener una lista de directorios del servidor, cargar un archivo y descargar un archivo son ejemplos de comandos (enviados mediante el canal de comandos) que abren un canal de datos. A diferencia del canal de comando que permanece abierto durante toda la sesión de FTP, el canal de datos se cierra una vez que se completa la transferencia de datos. Para manejar transferencias de archivos concurrentes o listados de directorios, se debe utilizar un rango de puertos de canales de datos.

Seguridad

Usando FTP, tanto el comando como los canales de datos no están encriptados. Cualquier dato enviado a través de estos canales puede ser interceptado y leído. Una vulnerabilidad común que aprovecha esta vulnerabilidad en particular es el ataque de hombre en medio (mitm o man in the middle) que usa el envenenamiento ARP y un detector de paquetes.

Firewall

Servidor: permite conexiones entrantes en el puerto 21. Defina el rango de puertos pasivos (por ejemplo, 2000-2500) para transferencias de archivos y listados de directorios y permita conexiones entrantes en el rango de puertos pasivos. Consulte la documentación de su servidor para obtener instrucciones sobre cómo configurar un rango de puerto pasivo.

Cliente: permite las conexiones salientes al puerto 21 y al rango de puertos pasivos definidos por el servidor.

Muchos de los problemas de firewall encontrados al usar FTP son causados ​​por una mala comprensión de los dos modos de FTP: el modo activo y el modo pasivo. La configuración que tendrá que realizar en su servidor de seguridad del lado del servidor o su servidor de seguridad del lado del cliente dependerá en gran medida del modo que elija. Para evitar estos problemas, le sugerimos que tome tiempo para una discusión más profunda sobre el FTP activo y pasivo.

FTPS

Cuando el protocolo FTP se redactó inicialmente, la seguridad no era una preocupación. Desde entonces, muchas cosas han cambiado y el envío de datos a través de cualquier red pública sin cifrado se considera muy riesgoso y, en algunos casos, está prohibido. Regulaciones como PCI-DSS y HIPAA, por ejemplo, contienen disposiciones que requieren que las transmisiones de datos estén protegidas por encriptación.

Para abordar este problema, se propuso un conjunto de extensiones de seguridad al protocolo FTP original en el RFC 2228 que protege los datos de FTP mientras viaja a través de la red utilizando el cifrado SSL.

El intercambio de datos

Lo mismo que FTP

Seguridad

Las variantes seguras de FTP incluyen FTPS Implícito SSL y FTPS Explicit SSL. Ambos utilizan cifrado SSL.

SSL implícito de FTPS

En el modo SSL implícito, se establece una sesión SSL requerida entre el cliente y el servidor antes de intercambiar los datos. Como su nombre lo sugiere, el uso de SSL está implícito y cualquier intento de conexión realizado por un cliente sin usar SSL es rechazado por el servidor. Los servicios SSL implícitos de FTPS generalmente se ejecutan en el puerto 990. Aunque todavía se usan en la actualidad, muchos consideran que el SSL implícito de FTPS está obsoleto a favor del SSL explícito de FTPS.

FTPS Explicit SSL

En el modo SSL explícito, el cliente y el servidor negocian el nivel de protección utilizado. Esto es muy útil porque el servidor puede admitir sesiones FTP sin cifrar y sesiones FTPS cifradas en un solo puerto. En una sesión SSL explícita, el cliente primero establece una conexión no cifrada al servicio FTP. Antes de enviar las credenciales de usuario, el cliente solicita que el servidor cambie el canal de comando a un canal cifrado SSL mediante el envío del comando AUTH TLS o AUTH SSL. Luego de la configuración exitosa del canal SSL, el cliente envía las credenciales de usuario al servidor FTP. Estas credenciales, junto con cualquier otro comando enviado al servidor durante la sesión de FTP, se encriptan automáticamente por el canal SSL. De forma similar a la forma en que se puede proteger el canal de comandos, el nivel de protección utilizado en el canal de datos se negocia entre el cliente y el servidor mediante el comando PROT.

Firewall

Servidor: permita conexiones entrantes en el puerto 21 y / o 990. Defina el rango de puertos pasivos (por ejemplo, 2000-2500) para transferencias de archivos y listados de directorios y permita conexiones entrantes en el rango de puertos pasivos. Consulte la documentación de su servidor para obtener instrucciones sobre cómo configurar un rango de puerto pasivo.

Cliente: permite las conexiones salientes al puerto 21 y al rango de puertos pasivos definidos por el servidor.

SFTP

SFTP se confunde a menudo con FTPS y viceversa, aunque estos protocolos no comparten nada en común, excepto su capacidad para transferir archivos de forma segura. SFTP se basa en realidad en el protocolo SSH (Secure Shell), que es más conocido por su uso para proporcionar acceso seguro a cuentas shell en servidores remotos.

El intercambio de datos

A diferencia de FTP/S, SFTP no utiliza comandos y canales de datos separados. Tanto los datos como los comandos se transfieren en paquetes especialmente formateados a través de una sola conexión.

Seguridad

Todos los datos enviados entre el cliente y el servidor se cifran utilizando un cifrado de cifrado acordado. Las sesiones SFTP también pueden protegerse aún más mediante el uso de claves públicas y privadas, que ofrecen una forma alternativa de autenticación conocida como autenticación de clave pública. Esto se puede usar como una alternativa o junto con la forma tradicional de autenticación de nombres de usuario y contraseñas.

Firewall

Servidor – Permitir conexiones entrantes en el puerto 22.

Cliente: permite las conexiones salientes al puerto 22.

Deja un comentario