Aplicaciones FTP y TFTP

Sitio: Facultad de Ingeniería U.Na.M.
Curso: Redes II - IC421
Libro: Aplicaciones FTP y TFTP
Imprimido por: Invitado
Día: miércoles, 4 de diciembre de 2024, 23:38

1. Introducción.

FTP y TFTP son protocolos de la capa de aplicación. Ambos se utilizan para transferir un archivo del cliente al servidor o del servidor al cliente. Pero FTP es más complejo que TFTP.

Hay muchas diferencias entre FTP y TFTP, pero la principal diferencia entre los dos es que FTP establece dos conexiones para transferir un archivo entre el cliente y el servidor que son el puerto 20 de TCP para la conexión de datos y el puerto 21 de TCP para la conexión de control. Por otro lado, TFTP utiliza solamente una conexión en el puerto 69 de UDP para transferir un archivo entre cliente y servidor.

FTP->TCP

TFTP-> UDP

En este archivo de Linux, que se muestran los servicios habilitados y sus puertos podemos ver en qué puerto atienden, estos son puertos por defecto.

Vemos en ambos casos que el servicio de sistema en Linux reserva ambos puertos udp/tcp. Pero en realidad como se fijó FTP utiliza TCP y TFTP UDP.

2. TFTP

El protocolo trivial de transferencia de archivos (TFTP Trivial File Transfer Protocol) es un protocolo simple que proporciona una función básica de transferencia de archivos sin autenticación de usuario.

Sirve para el intercambio de información y pequeños archivos entre dos equipos. Funciona a través de UDP. Se destaca especialmente por ser sencillo y simple, por lo que a diferencia de otros protocolos no cuenta con funciones complejas de transferencia.

Surgió a principios de la década de los ´80, no es nuevo. Al transferir archivos y no tener que autenticarse, hace que puedan aparecer riesgos. Un punto importante a destacar y que permite realizar el protocolo TFTP es el de crear copias de seguridad. Es común que se use cuando los dispositivos están conectados dentro de una misma red ya que hemos visto que no se necesita autenticación, por lo que fuera de esa red podría ser un problema importante de seguridad. 

Utiliza generalmente el puerto UDP 69 para realizar la transferencia de archivos.

Vemos que el servicio reserva tanto el puerto 69 tcp como 69 udp pero utiliza solo este último.

Se utiliza también en dispositivos que no tienen un disco duro para almacenar archivos. Esto permite que TFTP use una pequeña parte de la memoria y por ejemplo poder arrancar una red o un sistema. (BOOTP).

Para Windows la implementación es bastante sencilla, basta habilitarlo.

Para Linux se instala con:
 sudo apt install tftpd-hpa
Podemos verificar si está instalado y ofreciendo el servicio:
 sudo systemctl status tftpd-hpa
Luego restaría configurar algunos parámetros en /etc/default/tftpd-hpa.

A modo de ejemplo (dependiendo el sistema), enviar y recibir un archivo sería tan simple como esto:

recibir: tftp 10.1.1.1 get app.exe

enviar: tftp 10.1.1.1 put backup.zip
 

3. FTP


FTP (File Transfer Protocol) permite a los hosts transferir datos entre hosts diferentes, así como archivos entre dos hosts externos de forma indirecta.

FTP proporciona tareas tales como listar directorios remotos, cambiar el directorio remoto actual, crear y eliminar directorios remotos y transferir varios archivos en una sola petición. FTP mantiene el transporte seguro pasando contraseñas de usuario y cuenta al sistema principal externo. Aunque FTP está principalmente diseñado para que lo utilicen las aplicaciones, también permite sesiones interactivas orientadas al usuario.

FTP utiliza un envío fiable de paquetes (TCP/IP) para enviar los archivos, y utiliza una conexión Telnet para enviar comandos y respuestas. FTP posee dos modos de transmisión de datos. Modo ASCII (para archivos de caracteres imprimibles, ejemplo txt, html, ps, etc...) y modo Binario (Para documentos, imágenes, etc...)


Tabla Comparativa
Servidor de FTP en Linux.
Para instalar un Server FTP en Linux, en particular en Ubuntu se debe ejecutar el siguiente comando en una terminal:
sudo apt-get install vsftpd
Luego se configura el servidor:
sudo nano /etc/vsftpd.conf
Descomentamos las líneas:

Agregamos el/los usuario/s que pueden usar este Server de FTP.
Supongamos que el usuario ftpuser es el que se va a permitir que use el FTP:
Agregamos el usuario para que pueda usar el servicio de FTP.
sudo nano /etc/vsftpd.chroot_list
El proceso de instalación pedirá una contraseña del usuario y luego instala el software necesario.
Luego se puede instalar el filezilla, que sirve para acceder al FTP Server, solo debemos saber la IP del Server FTP.