¿Conoces qué es FTP? Con esta denominación se conoce al Protocolo de Transferencia de Archivos, es una codificación que sirve para hacer transferencia de archivos entre varios sistemas que se encuentren conectados, pero si quiere conocer más acerca de este protocolo, le invitamos a que continúe leyendo este artículo, en donde podrá aclarar todas sus dudas en relación a este tema.
¿Qué es el Protocolo de Transferencia de Archivos FTP?
El File Transfer Protocol (Protocolo de Transferencia de Datos), como se conoce por sus siglas en inglés FTP es un método de codificación que se usa para poder transmitir datos entre varios sistemas que se encuentran conectados a través de una red TCP y que tiene una arquitectura de Cliente-servidor. Esto quiere decir que hay un equipo que se denomina cliente que se conecta a otro equipo ubicado en otro sitio que se llama servidor y entre ellos puede efectuarse una descarga de archivos y datos, sin importar cuál sea el sistema operativo que cada uno de ellos tenga.
El sistema se ofrece por tener una mayor velocidad en su conexión, pero no necesariamente quiere decir que tenga la mejor seguridad, porque la transferencia de los datos se hace desde un login y password que sale del usuario servidor, en formato de texto plano sin tener ningún tipo de cifrado, por lo que puede ser un blanco de ataque de hackers en el transcurso de esta transmisión.
Este formato de transmisión usa los mismos niveles OSI, pero se hace cuando se desea enviar grandes paquetes de datos. Un servidor que deba hacer una transferencia debe tener ciertas características, con este protocolo para hacer el envío de los datos a través de las redes de archivos, y que además no solo se pueda enviar el texto, sino también las gráficas y las imágenes que estén relacionados.
Anteriormente cada red de ordenadores tenía su propio sistema o modelos de transmisión, pero entre cada uno de ellos no había ningún tipo de compatibilidad con los modelos de las otras redes. El modelo OSI se propuso para quitar ese desorden que había en las redes. Este modelo hizo una organización en siete niveles o capas: física, de enlace de datos, de red, de transporte, de sesión, de presentación y de aplicación.
No es el único modelo que existe pero es el que más uso tiene con la ventaja de que no necesita de ningún tipo de protocolo en concreto sino que hace especificaciones de las propiedades que cada uno de los archivos debe tener. El protocolo FTP es un método muy rustico de trasladar archivos desde un punto de partida a otro, pero se ha ido sustituyendo por los protocolos de Internet (IP) que se basan en Protocolos de control de Transmisión (TCP) que surgió en la década de 1980.
Pero aún así este protocolo aun es usado y para el año 2016 se estimó que más de 22 millones de servidores usaban el FTP como protocolo, en donde se encuentran incluidas muchas grandes empresas. Un protocolo de internet es una conexión física entre dos o más ordenadores para hacer una red. Para que se haga la transmisión de los datos, debe haber un cable físico que los conecte, la transmisión se debe hacer de manera ordenada y organizada. Así el receptor de los datos puede tenerlos y hacer un duplicado de los mismos de la misma manera en que fueron enviados.
Para ello debe haber ciertas reglas que se cumplan durante la transmisión y que el proceso se pueda hacer de la manera en que se especifican en los comandos o protocolos. En internet se establecen los protocolos para hacer los envíos de datos a través de la red informática y sobre todo mantener el control, durante todo el proceso. En cada uno de los niveles se pueden hacer las definiciones del modelo OSI que es un estándar de programación, o en TPC/IP, este último se encarga de tener un control de los parámetros para asegurar que una transmisión llegue de manera segura.
Arquitectura servidor-cliente
Hacemos referencia a estos términos cuando denominamos un ordenador que suministra un número determinado de servicios a otros ordenadores a los que llama clientes. La ventaja de este sistema es que se puede hacer una división de los diferentes programas y de la manera en que se puede conseguir la optimización de los recursos disponibles en la red. Así un cliente puede hacer la solicitud de una información a un servidor para que este se la envíe o le permita el acceso a ver el mismo.
En este sentido un servidor debe tener almacenada la información, los programas y las aplicaciones que le puedan servir a los clientes en la misma medida en que estos la estén solicitando. Un ordenador puede hacer las veces de servidor pero debe tener una gran potencia para procesar datos y hacer el suministro del servicio que se le hace en un intervalo de tiempo que sea razonable o breve. Y su capacidad de almacenamiento de datos debe ser tan grande para que la transmisión de los mismos se haga de manera rápida.
Historia del FTP
Este protocolo FTP se comenzó a utilizar en abril del año 1971 bajo el nombre de RFC 114, para ese entonces la pila TCP/IP no existía. Su estructura en general se estableció dos años después y fue modificado en varias oportunidades colocando comandos y más funciones, ya para 1985 fue publicado el protocolo RFC 959 que es el que se usa en la actualidad.
El modelo del Protocolo de Transmisión de Datos se destaca por tener un Intérprete de protocolo (PI) de un usuario que comienza la conexión con el control de puerto 21, las ordenes de FTP se van transmitiendo a un servidor por la conexión de control, enviando respuestas estándar desde el PI del servidor hasta el PI del usuario. Cada una de estas órdenes es la especificación de un parámetro de conexión a un puerto, bien sea de datos, de modo de transferencia, de representación o estructura.
A la vez cada uno de ellos tiene una naturaleza de operación sobre el sistema de archivo que va desde almacenar, recuperar, añadir, borrar. Este proceso de transferencia de datos (DTP) tiene que esperar a que un servidor comience la conexión en el puerto de datos especificado y comenzará a hacer la transferencia de acuerdo a los parámetros que se hayan establecido.
La comunicación que hay entre el cliente y el servidor es de tipo independiente del sistema de archivos que use cada uno en su computadora, ya que la transmisión se hace a través de los PI y los DTP, porque ambos deben usar el mismo protocolo estandarizado que es el FTP. La conexión que se hace entre ambos debe ser bidireccional, es decir que cada uno de ellos pueda enviar y recibir información, y la misma no debe estar conectada durante todo el tiempo con el Protocolo de Transmisión de Datos.
Al comienzo de la aplicación de este protocolo el mayor problema que representaba era la localización de los servidores de la red, cuando un usuario quería hacer la descarga de algún archivo tenía que saber cuál era la maquina en donde estaba ubicada la misma y la única manera de conseguir esta información era usando el Gopher. El significado del mismo era “Lanzarse sobre” la información.
Este fue un servicio que permitía obtener la localización de archivos partiendo de sus títulos. El mismo tenía un menú de recursos que se ubicaban en diferentes maquinas que se encontraban intercomunicadas. Cada una de ellas tenía un área de información específica, pero en la organización que tenían debían tener una función en donde trabajaran como si fuese una sola computadora. Cuando un usuario navegaba en estos menús para conseguir una información y no sabía exactamente en donde estaba ubicada, este programa Gopher descargaba la información.
Cuando llega el Internet con los diferentes motores de búsqueda que eran más potentes, se dejó de usar el Gopher, y encontrar en donde estaban ubicados los servidores con el Protocolo de Transmisión de datos dejó de ser un problema para los usuarios. Hoy día cuando un usuario quiere hacerla descarga de un archivo, parte de un enlace de página web, sin saber exactamente en donde está el archivo, porque el motor de búsqueda lo encuentra de una manera muy rápida gracias a su FTP.
Cómo podemos ver este protocolo ha evolucionado de la misma manera que las computadoras, y es usado en muchas redes corporativas y en sistemas de Intranets, puesto que soporta cualquier sistema operativo y se puede conseguir una gran cantidad de software que se basan en este tipo de protocolo.
Servidor FTP
Este es un equipo con un programa especial que se puede como un servidor que se encuentra conectado a un servicio de internet o de redes LAN, MAN, o cualquier otro y su función principal es poder permitir el intercambio de datos entre diferentes servidores u ordenadores. Los programas que son servidores FTP no se pueden colocar en ordenadores personales, pero se puede hacer una conexión remota para poder intercambiar información.
Su aplicación más habitual es un alojamiento en la red en donde un grupo de clientes usan este servicio para abrir páginas web o diferentes archivos, con un servidor de backup que hace copias de seguridad de todos los documentos o archivos de más o importancia para que queden en resguardo de la empresa. Estos protocolos de comunicación deben ser enviados a través de cifrados como el SFTP (Secure File Transfer Protocol).
Un Protocolo de Transmisión de Datos funciona con un modelo de cliente FTP hacia un servidor FTP, el servidor en este caso es un daemon que debe estar atento a las solicitudes FTP de cada cliente. Cuando un cliente hace un pedido de información en FTP este se configura a través de una sesión de control que es la hace el inicio de la sesión para establecer la conexión.
Esta se puede hacer de manera autenticada en donde el cliente verifica la identidad del usuario con una contraseña, o de manera anónima en donde le cliente usa un usuario ftp y da una dirección de correo electrónico con contraseña, después que la sesión sea iniciada el servidor se encargará de ejecutar los comandos que le sean solicitados.
Cliente FTP
Un cliente FTP es un programa que se puede instalar en una computadora de un usuario, para que use el protocolo FTP y tener conexión a un servidor del mismo tipo, y de esta manera hacer transferencia de archivos, ya sea bajo descarga o para subirlos a una red. Si un equipo no tiene la función del protocolo FTP debe usar un programa de Cliente FTP para poder trabajar.
Para trabajar bajo este protocolo se debe conocer el nombre de los archivos, en que ordenar se encuentra y a cual ordenador se va a transferir el mismo para saber en cual carpeta debe estar contenida. Los sistemas operativos de Microsoft Windows, DOS, GNU/Linux y Unix ya viene integrados como clientes de FTP básicos y es más recomendable conectarse a otros servidores FTP que no sean anónimos usando un programa cliente.
Cliente FTP basado en web
Así se denomina a un cliente que puede acceder a su navegador web son tener que usar alguna aplicación para hacerlo, esto lo puede hacer usando un HTPP de un servidor de la web y este consigue conectarse a través de los protocolos en un servidor FTP de archivos. Este servidor web es un intermediario que hace pasar la información desde el servidor en los puertos 20 y 21 hacia el puerto 80 HTPP que puede ver el usuario. Este tipo de acceso es útil cuando estamos usando un ordenador que no es nuestro y cuyas redes de acceso son públicas, y que por tanto no tenemos allí instaladas las aplicaciones que debemos usar.
Cuando tenemos a nuestra disposición de un cliente FTP basado en web podemos acceder a ellos de manera remota como si estuviéramos realizando una navegación en la red, con este tipo de servicio se puede no solo copiar información, sino también crear, renombrar, eliminar archivos y hasta directorios, hacer cambios de permisos, editar, ver, subir o descargar archivos, y cualquier otra función que el protocolo nos permita.
Seguridad de la Transferencia de Datos en Protocolo FTP
Por sí solo este programa no es seguro, a pesar de tener como ventaja que es fácil de usar, esta es también su punto débil. Se le puede configurar para que tenga un acceso sin necesidad de ser autenticado válidamente, mientras los archivos se van almacenando sin ningún tipo de cifrado, y los datos que se transfieran pueden de una manera fácil ser interceptados por hackers mientras hacen su recorrido en un internet abierto.
Cualquier hacker con un mínimo conocimiento puede establecer una sesión de control y entrar en cualquiera de los archivos y hasta de un servidor completo. En el año 2016 el FBI emitió una alerta de seguridad para plantear este tipo de riesgos y que la información que esté contenida bajo estos protocolos fuera protegida.
Acceso Anónimo
Un servidor FTP anónimo es el que puede ofrecer sus servicios de manera libre a un grupo de usuarios, permitiendo que tenga acceso a sus archivos son tener que usar una contraseña o “USER ID” o una cuenta de usuario. Esta es una manera muy sencilla de poder conseguir información en la web sin el uso de un administrador de sistemas. Por lo general cuando se hace el ingreso a estas fuentes solo pide que coloquen una dirección de correo electrónico para permitir el acceso.
Con ello puede tener ingreso a las páginas pero siempre tendrá menos privilegios que un usuario normal que tenga su cuenta cliente. Por lo menos puede tener acceso a una lectura y copia de los archivos que son públicos. Estos servidores anónimos usan esta opción para poder tener una gran cantidad de información o de archivos que deban ser vistos, y que si no son transferidos a otra computadora se considera que no son útiles, entre ellos existen muchos programas y servidores de páginas web de tipo HTPP.
Acceso de Usuario
Un acceso de usuario es una cuenta que se crea para hacer usos de archivos que se encuentran en un servidor FTP, pero con más privilegios que solo los de lectura y copia de ciertas partes de la información. Además esta opción también le pude permitir a u usuario a que pueda subir sus propios archivos a la red. Esta cuenta debe tener un login o usuario y un password o contraseña que son los que identifican a un cliente de esta cuenta.
Acceso de Invitado
Tener un acceso a un servidor con Protocolo de Transmisión de datos con una cuenta de usuario puede presentarnos un problema de seguridad, por lo que se puede tener un acceso de otro tipo denominado Acceso de Invitado (Guest), que es una mezcla de los dos accesos anteriores. Este mecanismo funciona permitiendo que un usuario pueda tener acceso a una computadora a través de su login y password, pero evita que pueda acceder a potras partes del sistema o de archivos que no son necesarios para hacer sus funciones, y así tiene un entorno restringido.
Modos de Conexión de Clientes FTP
Se puede acceder a cliente FTP de dos maneras una de ellas se denomina activa o estándar, se le designa como PORT, y pasivo o PASV, en cualquiera de los dos modos el cliente debe establecer una conexión hacia el servidor por el puerto 21 para poder tener un canal de control.
Modo activo: el canal de datos se crea en el puerto 20, mientras que el del cliente se le asocia a un puerto de tipo aleatorio (1024), el cliente debe enviar un comando PORT hacia el servidor a través del canal de control para pedir el número del puerto y así el servidor puede hacer la apertura de la conexión de los datos para hacer la transferencia de los archivos o listados hacia el puerto que se la ha indicado.
Este tipo de modo presenta problemas de seguridad y es que la computadora del cliente debe estar presta a tener cualquier conexión de entrada en un puerto que sea superior al 1024, y más problemas se presentan si el equipo se encuentra conectado a una red insegura del internet. Lo más seguro es que los firewalls de la computadora rechacen estas conexiones que son aleatorias.
Modo pasivo: cuando se envía un comando de tipo PASV en el canal de control el mismo servidor FTP le va a indicar por ese canal cual es el puerto mayor al que debe conectarse el cliente, este después debe iniciar la conexión desde el puerto siguiente al de control hacia el del servidor que se le ha especificado. En cada transferencia que se hace de el cliente debe enviar comandos de control bien sea PORT o PASV para que reciba la información de la conexión.
Tipos de Transferencia en Archivos FTP
Los archivos se pueden transferir en dos formas ASCII y Binarios. Se debe conocer como se debe hacer el transporte de estos archivos en la red para usar la opción adecuada y que no se destruya la información del mismo. Por eso cuando se haga la ejecución de un archivo o aplicación FTP debe saber cuál de los dos comandos debe ejecutar.
Tipo ASCII
Este tipo de formato es adecuado para hacer la transferencia de archivos que tengan caracteres que sean de impresión, como son las paginas HTML, pero no podrá hacerlos con las imágenes que estas puedan contener. Se debe hacer una transformación de algunos símbolos para hacerlos compatibles en sistemas diferentes:
- En un servidor Linux, el salto de la línea en los archivos de texto debe ser “n” (byte 10 en decimal).
- En sistemas operativos Mac debe ser “r” (byte 13 en decimal)
- .En Windows es “rn” (dos bytes, 13 y 10).
- Al hacer este cambio en los símbolos de control hace que el archivo sea legible para cualquier sistema en caso contrario el mismo no podrá ejecutarse.
- Los archivos que se envían en este formato son los txt, html, ps, hqx.
Tipo Binario
Esta manera se usa para el envío de datos comprimidos, que sean ejecutables en computadoras personas, imágenes, audios, vídeos, etc. En este tipo de formato se envían todos aquellos que tengan extensiones doc, Z, ZIP, ZOO, Sit, pit, shar, uu, ARC, tar. De la misma manera en la web se pueden conseguir software que hacen el desarrolla de estos archivos entre los que se encuentran Filezilla y Cute FTP. Los comandos que usan estos formatos son los siguientes:
Open puerta: para iniciar una conexión a través de un servidor FTP
Close o disconnect; finalizar la conexión FTP pero no cerrar el programa cliente.
Bye o quit: finalizarla conexión y la sesión de trabajo en el programa cliente.
Cd directorio: hacer cambio de directorio para trabajar en el servidor.
Delete archivo: hacer el borrado o eliminación de un archivo en el servidor.
Mdelete patrón: sirve para borrar varios archivos a través de un patrón con el mismo nombre.
Dir: mostrar el contenido que se encuentra en el directorio con el cual estamos conectados en el servidor.
Get archivo: conseguir un archivo
Noop No Operation: es una comunicación al servidor en donde el cliente se coloca en modo de no operación, el servidor debe enviar una respuesta con ZZZ y hacer un refrescamiento en el contador de tiempo que este inactivo el usuario.
Mget archivos: conseguir varios archivos
Hash: activación de la impresión de caracteres #, de la misma manera en que se hace la transferencia de los archivos, como una barra de progreso de envío.
Icd directorio: hacer cambio de directorio en el trabajo local.
Is: mostrar todo el contenido del directorio que se encuentra en el servidor.
Promt Activa/desactiva: es una confirmación que debe hacer el usuario para hacer la ejecución de los comandos.
Put archivo: envío de un archivo a un directorio que este activo en el servidor.
Mput archivos: enviar varios archivos.
Pwd: mostrar el directorio activo que se encuentra en el servidor.
Rename archivo: hacer el cambio del nombre de un archivo que se encuentre en el servidor.
Rmdir directorio: hacer la eliminación de un directorio que esté en el servidor si este se encuentra vacío.
Status: mostrar el estado actual de una conexión.
Bin o binary: hacer la activación del modo de transferencia binario
Ascii: hacer la activación del modo de transferencia de texto ASCII
¡: Este símbolo permite la salida a una línea de comandos de manera temporal sin tener que hacer el corte de la conexión, para regresar se debe teclear exit en la línea de comandos.
? nombre del comando: nos da la información que tiene que ver con el comando que se está ejecutando.
? o help: nos muestra cual es la lista de los comandos que se encuentran disponibles.
Append nombre del archivo: hacer una descarga que se haya roto con anterioridad.
Bell activa/desactiva: hace la reproducción de un sonido cuando se termina de hacer una transferencia de archivos.
Glob activa/desactiva: visualizar los nombres largos en la computadora personal.
Literal: es una orden que se puede dar para hacer la ejecución de comandos de un servidor de manera remota. Para saber cuáles son los disponibles se usa literal help.
Mkdir: es la creación de un directorio que se ha indicado de manera remota.
Quote: es la misma funciona que se hace con literal.
Send nombre del archivo: el envío de un archivo a un directorio activo que se encuentre en el servidor.
User: hacer el cambio del nombre del usuario y de las contraseñas sin tener que salirse de la sesión FTP.
Los códigos de respuesta en FTP
De la misma manera como se hace la ejecución de comandos también hay un tipo de respuesta de códigos FTP que se devuelven del servidor, estos se han estandarizado en RFC 959 por la IETF. Este código de valor debe tener tres dígitos, el primero de ellos es para indicar si hay resultado, éxito o fracaso, o para decir si hay un error o una respuesta incompleta.
2yz: respuesta exitosa
4yz o 5yz: sin respuesta
1yz o 3yz: error o respuesta incompleta
X0z – Sintaxis: respuestas con errores de redacción.
X1z – Información: respuestas a la solicitud de la información pedida.
X2z – Conexiones: una respuesta e referencia al control y las conexiones de datos disponibles.
X3z – Autenticación y contabilidad: respuesta para los procesos cuando se inicia una sesión o se hace un procedimiento contable.
X4z: no definido
X5z – Sistema de archivos: respuestas que son enviadas en códigos en un estado del sistema de archivos que se encuentra en el servidor.
¿Para qué sirven los Cifrados?
En el transcurso del tiempo se debieron implementar protocolos de seguridad a través de cifrados o códigos que tuvieran la seguridad que no fueran violados, estos se establecieron a través de siglas: FTPS, SFTP y HTTPS. Después llegaron otras opciones de cifrado como la SSL (Secure Sockets Layer), SSH (Secure Shell). Todos ellos se usan para hacer aumentos en la seguridad y la confiabilidad de aquellas transferencias de archivos que requerían de un código para prevenir que los mismos se visualizaran y se modificaran sin una autorización previa.
FTPS: Es una opción rápida que asegura que los archivos que sean enviados a través de una FTP tendrán una seguridad de capa de transporte. Este sistema requiere del uso de canales de transmisión y control que estén separados.
SFTP: es un protocolo de transferencia de archivos SSH, con este la transferencia de los archivos se hace a través del uso de un solo canal con el protocolo SSH-2. Tiene algunas características adicionales con las que se puede continuar una trasferencia de archivos que se haya interrumpido y también hacer la eliminación de archivos de forma remota con mucha seguridad. Debe confiar en otro protocolo subyacente o secundario como el SSH para que tenga una autenticación y seguridad.
HTTPS: es la versión de más seguridad de HTPP usa un cifrado TLS para hacer las transferencias de archivos, en un comienzo se usaba para hacer pagos a través de la web, pero en la medida en que los datos comenzaron a tener más privacidad o se volvían más importantes las industrias comenzaron a implementarlas, hasta que Google la uso para sus sistemas de motores de búsqueda.
Ventajas y Desventajas del FTP
La principal ventaja es que la conexión hacia un servidor se hace de una manera muy rápida, por lo que es especial para hacer la subida de pocos o muchos archivos dependiendo de lo que el usuario desee hacer o necesite. Cómo es una multiplataforma se diseñó para que fuera usada en cualquier computador independientemente de su sistema operativo. Trabaja de una manera bidireccional, soportando las conexiones que vengan encriptadas y con certificados SSL, no requiere de tener comandos para ser usados en una terminal, posee clientes gráficos y no hace falta ser un experto para usar el protocolo.
Dentro de sus desventajas se tiene que si no se posee una SSL, los datos que se envíen incluyendo los del usuario y las contraseñas se envían sin ningún tipo de encriptación, lo que representa un riesgo de seguridad, además lo deja que se haga una automatización de otros procesos. Siendo un protocolo muy viejo que ha tenido muchas modificaciones para ser actualizado todavía no se ha adaptado completamente a la web moderna que se tiene hoy día.
De la misma manera cada subida o descarga de archivos se debe hacer de uno a la vez por lo que no debe subirse archivos que estén resumidos o que presenten alguna falla porque el protocolo los considerará corruptos y presentara errores en la red.
Si quieres conocer otros temas interesantes te invitamos a que veas los siguientes enlaces: