En el ámbito de Internet, FTP (File Transfer Protocol, Protocolo de transferencia de archivos) es un protocolo de red que permite transferir archivos a través de redes TCP/IP, de tal manera que los archivos pueden ser transferidos desde el servidor al cliente, lo que se denomina descargar o bajarse archivos (download), o del cliente al servidor, llamado subir archivos (upload).
Qué es FTP
FTP (File Transfer Protocol, protocolo de transferencia de archivos), hace referencia a un protocolo de transferencia de archivos entre sistemas conectados a una red, mediante TCP/IP, basado en una arquitectura cliente-servidor.
Una de las ventajas del protocolo FTP es que permite la transferencia desde el nodo servidor al cliente para descarga de archivos, pero también desde el nodo cliente al servidor para subida de los mismos.
El servicio FTP pertenece a la capa de aplicación del modelo de capas de red TCP/IP, utilizando generalmente los puertos de red 20 y 21.
El principal problema de FTP es que está diseñado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, y todo el intercambio de información se realiza en texto plano sin ningún tipo de cifrado, tanto el login y password del usuario como la transferencia de archivos. Esto supone un grave riesgo de que un posible atacante puede capturar dicho tráfico, apropiarse de los archivos transferidos o acceder al servidor.
Para solucionar este problema usualmente se utilizan servidores SFTP (Secure File Transfer Protocol) en lugar de FTP, la versión segura de FTP utilizando SSH, que permiten transferir archivos cifrando todo el tráfico.
Dado que el protocolo FTP basado en una arquitectura cliente-servidor, para su implementación necesita software de servidor y de cliente:
- Servidor FTP: es un software que se ejecuta desde una máquina servidor en red, generalmente a través de Internet. Su funcionalidad radica en la posibilidad de intercambiar datos entre diferentes servidores o equipos mediante el protocolo FTP. Generalmente los servidores FTP son utilizados en los hosting o alojamientos web para brindar servicios de respaldo de archivos mediante protocolos de seguridad cifrados como SFTP.
- Cliente FTP: un cliente FTP es un software que emplea el protocolo FTP para conectarse a un servidor FTP y así realizar la transferencia de archivos, sea de subida o de bajada. Para ser funcional, el cliente FTP requiere datos como el nombre del archivo, el equipo en el que reside, el equipo al que se desea transferir el archivo y el nombre de la carpeta en la que se encuentra. El cliente FTP puede implementarse como aplicación standalone específica para dicha función, o bien integrado en un navegador web, de tal manera que éste actúa como cliente FTP además de como cliente HTTP.
Respecto al modo de acceso, es posible acceder a un servidor FTP de diversas maneras:
- Acceso de usuario: mediante una cuenta de usuario en el servidor FTP, con login y contraseña, se obtienen privilegios de acceso a todo el sistema de archivos del servidor FTP, pudiendo así subir archivos y modificar los archivos existentes.
- Acceso anónimo: algunos servidores FTP permiten acceder a sus archivos sin necesidad de tener una cuenta de usuario, en cuyo caso simplemente con teclear anonymous como usuario se tendrá acceso a ese sistema, sin contraseña, aunque con menos privilegios que un usuario normal. Generalmente sólo se podrán leer y copiar los archivos establecidos como públicos por el administrador del servidor. Es una forma cómoda para permitir acceso libre a cierta información sin tener que administrar una cuenta para cada usuario.
- Acceso de invitado: algunos servidores FTP permiten un tipo de acceso denominado invitado (guest), que es una mezcla de los dos anteriores. Consiste en que el usuario se conecta a la máquina mediante su login y su password, pero accede a un entorno restringido en vez de acceder sin restricciones al servidor como permiten las cuentas de usuario, lo que conlleva serios riesgos de seguridad. Se trata de un acceso similar a los accesos anónimos, pero con más privilegios.