FTP o Archivo Transfer Protocol es uno de los métodos de transferencia de datos mucho más populares libres para varias aplicaciones.
FTP tiene diferentes variantes seguras disponibles, conocidas como FTPS y SFTP, que poseen algunas diferencias sutiles y no tan sutiles en su desempeño. Estas diferencias se relacionan con la forma en que se intercambian los datos, el nivel y el género de seguridad de la comunicación y los inconvenientes del cortafuegos.
Entender cómo funcionan estos protocolos y las diferencias en medio de estos mecanismos de transferencia comunes puede guiarte a escoger el que mejor se amolda a tus pretensiones.
FTP
FTP es un protocolo de transferencia de archivos con décadas de antigüedad propuesto originalmente en RFC 114. Más tarde evolucionó como RFC 959, que es el estándar que se utiliza hoy en dia.
FTP trabaja en dos canales para canjear información: uno para comandos y otro para datos. Esto necesita 2 puertos para la operación de FTP: el canal de comando y el canal de datos.
El canal de comando se ejecuta en el puerto 21, que acepta conexiones de clientes y maneja el reenvío de comandos. El canal de comando permanece abierto durante la duración de la sesión FTP hasta el momento en que el cliente envía un comando QUIT o el servidor fuerza una desconexión debido a la inacción o cualquier otra viable razón.
El canal de datos emplea un puerto temporal de escucha de solicitudes en el servidor (modo pasivo) o en el cliente (modo activo). Este canal es quien se encarga de comunicar los datos reales entre el servidor y el cliente en forma de listas de directorios y transferencias de archivos.
A diferencia del canal de comando, el canal de datos solo continúa abierto durante la transferencia de archivos y se cierra tan rápido como finaliza la transferencia. Se necesitan múltiples puertos de canales de datos para transladar múltiples archivos o listados de directorios simultáneamente.
FTP es inherentemente un protocolo inseguro por el hecho de que tanto los canales de comando como los canales de datos transmiten información en una forma no encriptada que es fácilmente interceptada por cualquier persona que use ataques de intermediario.
Como se mencionó previamente, FTP requiere una conexión entrante en el puerto 21/tcp en el lado del servidor para el canal de comando. El rango de puertos pasivos se define para transferencias de archivos y listados de directorios y permite conexiones entrantes. Este proceso de definición puede variar según el servidor FTP que esté usando. Se puede encontrar mucho más información en su documentación. En el lado del cliente, se debe aceptar la conexión saliente en el puerto 21/tcp adjuntado con el rango de puertos pasivos definido en el servidor.
autenticación FTP
La información de autenticación de FTP se pasa por el canal de comando a lo largo de la conexión inicial. FTP puede usar un nombre de usuario y una contraseña para la autenticación, o puede ser anónimo para permitir que cualquier persona empiece sesión y acceda al servidor.
Modos FTP activo y pasivo
FTP usa el modo perfecto activo o pasivo para modificar las conexiones.
EN modo activo, el usuario se conecta desde un puerto de cliente FTP aleatorio al puerto FTP 21/tcp en el servidor y envía un comando PORT que especifica el puerto de cliente al que debe conectarse el servidor. Este puerto se usará para el canal de datos.
Entonces, el servidor se conecta desde el puerto 20/tcp al puerto del cliente previamente concretado por el cliente con el comando PORT. Este canal de datos se utiliza entonces para transferir ficheros entre el servidor y el cliente.
EN Modo pasivo, el cliente se conecta desde un puerto aleatorio del cliente FTP al puerto 21/tcp en el servidor y manda un comando PASV. Entonces, el servidor responde con un puerto aleatorio que debe emplearse para el canal de datos. Luego, el cliente usa un puerto aleatorio diferente para conectarse al puerto al que respondió el servidor en un paso previo. Esta conexión de canal de datos se emplea entonces para transferir archivos entre el servidor y el cliente.
De este modo, en el modo activo, el cliente inicia la solicitud de conexión inicial, mientras que el servidor inicia la solicitud de conexión del canal de datos.
Por otra parte, en el modo perfecto pasivo, tanto las solicitudes de conexión iniciales como las posteriores solicitudes de canales de datos son iniciadas por el cliente al servidor. Esta sutil diferencia a veces perjudica la manera en que el cortafuegos permite o inhabilita las peticiones FTP tradicionales gracias a la dirección del género de conexión entrante/saliente.
FTPS
Aun si está dispuesto a correr el peligro de FTP con transmisión de datos sin cifrar y asaltos de tipo primordial en el medio, los requisitos de la industria lo fuerzan a usar alternativas más seguras, como FTPS y SFTP, que son relativamente considerablemente más seguras.
En 1990, con el dinámico panorama de la seguridad, Netscape creó el protocolo SSL o Secure Sockets Layer (SSL, en este momento popular como TLS) para proteger las comunicaciones de la red. Se aplicó SSL a FTP que se convirtió en FTPS o Protocolo seguro de transferencia de ficheros. FTPS o FTP/S generalmente se ejecuta en el puerto 990/tcp, pero también se puede ver ejecutándose en el puerto 21/tcp. De forma similar, para el canal de datos, el puerto 989/tcp es el puerto común empleado por FTPS. Si el puerto de comando es 21/tcp, su puerto de datos ha de ser 20/tcp.
Al igual que FTP, FTPS usa dos canales de comunicación: el canal de comando y el canal de datos. El canal de datos se puede codificar mediante FTPS, o tanto los canales de comando como los canales de datos se pueden cifrar para mayor seguridad.
FTPS, como FTP, asimismo emplea múltiples puertos para canales de comando y datos. En consecuencia, el puerto 21/tcp se usa para la conexión inicial y la transmisión de información de autenticación. Posteriormente, se necesitarán diferentes puertos para configurar los canales de datos para cada transferencia de ficheros o petición de lista de directorios del cliente. Entonces, como FTP, requiere ingreso a una sucesión de puertos en el cortafuegos.
autenticación FTPS
La autenticación para FTPS funciona con un nombre de usuario y una contraseña adjuntado con un certificado de servidor para el cifrado. Cuando el cliente FTPS se conecta al servidor, verifica si el certificado del servidor es de confianza para continuar la conexión. Este certificado se puede pedir al cliente y al servidor.
SFTP
A diferencia de FTP y FTPS, SFTP (Protocolo de transferencia de archivos SSH) es un protocolo totalmente diferente construido sobre SSH (o Secure Shell). SFTP se ejecuta en el puerto 22/tcp de forma predeterminada, igual que SSH, más allá de que se puede configurar para utilizar un puerto libre personalizado en el servidor.
SFTP es un protocolo FTP seguramente utiliza SSH debajo para enviar y recibir ficheros. SSH está absolutamente encriptado, SFTP es un procedimiento robusto y seguro para transladar ficheros a través de la red.
SFTP, en contraste a FTP y FTPS, emplea un único canal de comunicación para los comandos y el tráfico de datos, todo lo cual se cifra adjuntado con la autenticación anterior.
autenticación SFTP
La autenticación en SFTP se puede realizar con un simple nombre de usuario y contraseña, pero en contraste a FTP, toda la información, incluyendo las credenciales, se envía cifrada por medio de la red.
SFTP también admite la autenticación a través de unos cuantos claves SSH, una combinación de claves públicas y privadas, donde el cliente proporciona la clave privada para un usuario específico y el servidor debe tener la clave pública correspondiente a fin de que la autenticación sea triunfadora. Esto es mucho más seguramente emplear una combinación de nombre de usuario y contraseña. Es viable autenticar al mismo usuario con una contraseña y claves SSH si los dos métodos están configurados en el servidor SFTP.
resumen
Este artículo resume las características básicas de varios protocolos populares de transferencia de archivos, a entender, FTP, FTPS y SFTP, y destaca las diferencias sutiles y principales entre estos protocolos. Comprende los puertos que se tienen que aceptar en el cortafuegos para modificar un servidor FTP/FTPS/SFTP que funcione, al tiempo que resalta la necesidad de cambiar a protocolos más seguros, como FTPS y SFTP.
Cuando digo FTP aquí, quiero decir que cualquier protocolo discutido en el artículo. La razón por la cual FTP es antiguo tiene décadas de antigüedad, e inclusive las versiones seguras más novedosas a veces se nombran FTP en vez de su nombre designado para el uso períodico.
También puede estar interesado en aprender sobre el mejor software de servidor FTP y clientes del servicio FTP/SFTP.
Fikiri.net es el sitio perfecto para encontrar las últimas noticias y reseñas sobre dispositivos y apps tecnológicas, así para obtener consejos y trucos para sacar el máximo provecho de tu tecnología.
Etiquetas
comprensión FTP FTPS SFTP