You are on page 1of 17

Protocolo TFTP

Oscar Castillo
Prof. Sergio Valenzuela
Ing. En computación e informática
08 de octubre de 2010
Índice.

1. Introducción……………………………………………………….pag.3
2. Historia……………………………………………………………..pag.4
3. Características……………………………………………………pag.4
4. Paquetes tftp………………………………………………………pag.5
5. Sesión tftp…………………………………………………………pag.6
6. Configuración servidor tftp……………………………………..pag.7
6.1 en Windows……………………………………………………pag.7
6.2 en Linux………………………………………………………..pag.11
7. resumen……………………………………………………………pag.15
8. conclusión…………………………………………………………pag.16
9. bibliografía y web grafia………………………………………..pag.17

2|Página
1. Introducción.

En este informe se mostrara lo respectivo al protocolo TFTP, que es muy común en envío
de información. Este protocolo permite su aplicación en diferentes propósitos los cuales
se dará ejemplo en este informe, como iniciar una sesión, como configurar e instalar
servidores en distintas plataformas. También se dará a conocer las característica de este
protocolo y como es la estructura y el envío de la información.

3|Página
2. Historia

El cliente del Protocolo trivial de transferencia de archivos (TFTP) permite transferir


archivos mediante el protocolo TFTP entre un cliente de TFTP y un servidor de TFTP. El
protocolo TFTP se implementa mediante el Protocolo de datagramas de usuario (UDP)
para enviar y recibir datos. El protocolo TFTP implementa su propio esquema de
confiabilidad mediante UDP.
El protocolo TFTP no admite ningún mecanismo de autenticación ni cifrado, por lo que su
presencia puede suponer un riesgo de seguridad. No se recomienda instalar el cliente de
TFTP en los sistemas con acceso a Internet.
El cliente de TFTP es software opcional y está marcado como obsoleto en Windows
Vista® y las versiones posteriores del sistema operativo Windows. Microsoft ya no
proporciona un servidor de TFTP a causa de problemas de seguridad similares.

3. Características.

Es un protocolo extremadamente simple para transferir ficheros. Está implementado sobre


UDP y carece de la mayoría de las características de FTP. La única cosa que puede
hacer es leer/escribir un fichero de/a un servidor. No tiene medios para autentificar
usuarios: es un protocolo inseguro.
Cualquier transferencia comienza con una petición de lectura o escritura de un fichero. Si
el servidor concede la petición, la conexión se abre y el fichero se envía en bloques de
512 bytes (longitud fija). Los bloques del fichero están numerados consecutivamente,
comenzando en 1. Un paquete de reconocimiento debe reconocer cada paquete de datos
antes de que el próximo se pueda enviar. Se asume la terminación de la transferencia
cuando un paquete de datos tiene menos de 512 bytes.
Casi todos los errores causarán la terminación de la conexión (por falta de fiabilidad). Si
un paquete se pierde en la red, ocurrirá un timeout, después de que la retransmisión del
último paquete (datos o reconocimiento) tuviera lugar.
Actualmente se han definido tres modos de transferencia en el RFC 1350:
NetASCII US-ASCII como se define en el Código estándar USA para Intercambio de
Información con modificaciones específicas en el RFC 854 - Especificaciones del

4|Página
Protocolo Telnet y extendido para usar el bit de orden superior. Esto es, es un conjunto de
caracteres de 8 bits, no como US-ASCII que es de 7 bits. Octet Bytes de 8 bits, también
llamado binario. Mail Este modo se definió originalmente en el RFC 783 y se declaró
obsoleto en el RFC 1350.

4. Paquetes TFTP
Sólo existen cinco tipos de paquetes:
1. Read Request(Solicitud de lectura(RRQ))
2. Write Request(Solicitud de escritura(WRQ))
3. Data (Datos (DATA))
4. Acknowledgment(Reconocimiento(ACK))
5. Error (Error (ERROR))
La cabecera de TFTP contiene el identificador opcode asociado al paquete.

5|Página
5. Sesión tftp.

Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente- servidor, aun
que se considera servidor a aquel que abre el puerto 69 en modo UDP, y cliente a quien
se conecta.
Sin embargo, cada archivo transferido vía TFTP constituye un intercambio independiente
de paquetes, y existe una relación cliente-servidor informal entre la máquina que inicia la
comunicación y la que responde.
Para la instalación del servidor TFTP, debemos descargar de cualquier explorador un
archivo ejecutable llamado “TFTP32”; ya estando descargado lo descomprimimos e
iniciamos el asistente de instalación.

Terminada la instalación, abrimos nuestro icono TFTP, y vamos a darle la ruta para la
base del directorio.
También le agregamos la dirección IP estática de nuestro servidor principal.

6|Página
6. Configurar servidor tftp.
6.1 En Windows.
El servidor TFTP se puede solicitar al Departamento de Ingeniería o se puede descargar
desde la siguiente dirección:
http://www.syscom.com.mx/ingenieria/software/tftpd32m.zip
NOTA: El TFTP Server debe estar descomprimido. Se recomienda que el servidor se
localice en la raíz del disco duro (C:\), en una carpeta llamada “Servidor TFTP”, quedando
la ruta completa como:
C:\Servidor TFTP
En esa carpeta se deben encontrar los siguientes archivos necesarios para el Servidor
TFTP:
• Tftpd32.exe
• Tftpd32.hlp
• Uninst.exe
Pero además, necesitamos el firmware
del equipo al que se lo vamos a cargar,
el cual varía según marca, modelo,
número de líneas, etc. Pero
independientemente del equipo o
firmware que sea, éste se debe
encontrar en la carpeta del Servidor
TFTP (C:\Servidor TFTP).
Ahora, ejecutamos el Servidor TFTP (Tftpd32.exe) y nos debe aparecer una pantalla
como la siguiente:

Ventana Principal del Servidor TFTP.


Como podemos observar, en el parámetro “Current Directory” tenemos la dirección
desde la que estamos ejecutando el servidor tftp (C:\Servidor TFTP) y en el parámetro
“Server interfaces” el servidor toma la IP de nuestra PC. En este momento, la IP de mi
PC es 192.168.0.130

7|Página
IMPORTANTE: Es necesario que el equipo al que le cargaremos el firmware y nuestra PC
estén en el mismo segmento de red (IP y Sub Máscara), por ejemplo:
PC Equipo VoIP
IP 192.168.0.130 192.168.0.10
Sub Máscara 255.255.255.0 255.255.255.0
Puerta de N/A N/A
Enlace

La Puerta de Enlace (Gateway) no es necesario, pero si tienen una puerta de enlace,


debe de ser la misma.
No se debe cambiar la IP de la PC o del equipo VoIP mientras se este cargando o
descargando información entre los equipos (PC->VoIP, VoIP->PC), tampoco se debe
apagar o interrumpir este proceso para evitar daños a nuestro equipo VoIP.
Si necesitamos cambiar la IP de nuestra PC, debemos seguir estos pasos:
1.- Es necesario cerrar el Servidor TFTP.
2.- Hacer el cambio de IP a la PC.
3.- Abrir nuevamente el Servidor TFTP el cual nos mostrará errores como los siguientes:

8|Página
Después de todos los errores que nos arroja el Servidor TFTP empezará a arrojarnos otra
serie de continuos errores.

Pero no hay de que preocuparse, es normal al hacer el cambio de IP, y esto se soluciona
configurándole la nueva IP al servidor o cambiando a la IP que teníamos. En este caso, le
vamos a configurar la nueva IP (puede ser de cualquier clase o segmento), por lo que
hacemos clic en el botón “Settings”:

En cuanto presionemos el botón, automáticamente nos mostrará nuevamente una


ventana de aviso donde nos informa que la IP de nuestra PC ha cambiado.

9|Página
Después de de “Aceptar” la ventana de aviso, nos mostrará las configuraciones del
Servidor TFTP, en las cuales debemos revisar que el “Base Directory” sea C:\Servidor
TFTP y que en el parámetro “Use tftpd32 only on this interface” aparezca la nueva IP
de nuestra PC (en mi caso, la 192.168.0.129).

Después de verificar esos cambios, se procede a dar clic en el botón “OK” para que se
apliquen los cambios al Servidor TFTP. El mismo programa nos indicará que es necesario
reiniciar el programa.

10 | P á g i n a
Al reiniciar el programa (cerrarlo y volver a ejecutarlo), ya tenemos funcionando al 100%
nuevamente nuestro Servidor TFTP.

6.2 En Linux.

En esta etapa veremos como instalar y configurar un servidor TFTP, el cual en este caso
será utilizado para proveer la imagen del firmware para algunos teléfonos IP, este tipo de
servidores también es usado como medio de respaldo y repositorio de configuraciones de
routes, switches y otros equipos de red que soportan TFTP, también es utilizado para
proyectos como Linux Terminal Server Project (LTSP) para almacenar la imagen para
sistemas tipo terminal “tonta” que soporta Arranque por red usando PXE.
Hay muchas versiones de aplicaciones para servidores TFTP, en nuestro caso
utilizaremos el servidor tftp HPA, y en Debian/Ubuntu lo instalaremos así:

11 | P á g i n a
Instalar el paquete:
# apt-get install tftpd-hpa
Después de instalar el paquete debemos de configurar los parámetros de arranque el
demonio tftpd, el archivo de configuración /etc/default/tftpd-hpa tiene configuraciones
globales para el arranque del demonio tftpd, entre ellas la forma como será inicializado,
por default esta así:

# cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-l -s /var/lib/tftpboot"

Lo cual dice que por default no será iniciado como un demonio standalone, esto es porque
puede ser inicializado por el súper demonio inetd o xinetd.
En nuestro caso lo configuraremos para que sea iniciado como demonio standalone, or lo
que cambiaremos la variable RUN_DAEMON a yes, así:

RUN_DAEMON="yes"

Por default el demonio tftpd esta configurado con algunas opciones y un directorio de
archivos predeterminado, a continuación se explican las opciones predeterminadas con
las que será inicializado el demonio tfptd:

-l Correr el servidor en modo standalone, es decir, en modo de escucha, en lugar de


correr desde inetd
-s Cambia el directorio raíz del servidor tftp al inicio. Esto significa que los hosts
remotos no tendrán que pasar la ruta del directorio como parte de las transferencias.

En nuestra configuración el directorio /var/lib/tftpboot/ es nuestro directorio raíz y ahí es


donde estarán almacenados los archivos que los clientes tftp descargarán, veamos los
permisos de este directorio:

# ls -ld /var/lib/tftpboot

12 | P á g i n a
drwxr-xr-x 2 root root 4096 2007-05-25 05:49 /var/lib/tftpboot

Por default el directorio pertenece al usuario y grupo root y otros no tienen permiso de
escritura, solo acceso de lectura. Además el servidor tftp por default inicia en modo read
only, es decir, solo permite que los archivos sean leídos pero no podrán subir archivos por
tftp, si queremos que los clientes tftp puedan almacenar archivos en el directorio
/var/lib/tftboot deberemos de configurar tftpd para que se puedan crear archivos en el
directorio raíz de tftpd.

La opción -c permite que los clientes tftp puedan crear nuevos archivos.

Si por ejemplo, tenemos algunos teléfonos, routers, switches u otro tipo de aparatos de
red que pueden hacer respaldo de sus configuraciones en un servidor tftp, sería deseable
que el servidor tftp permitiera la escritura de archivos.

Agregaremos la opción -c al archivo de config /etc/default/tftpd-hpa así:

#Defaults for tftpd-hpa


RUN_DAEMON="yes"
OPTIONS="-c -l -s /var/lib/tftpboot"

Además tendremos que poner permisos de escritura al directorio /var/lib/tfptboot así:

# chmod 777 /var/lib/tfptboot

Después no queda más que iniciar/reiniciar el servidor tftpd-hpa, así:

# /etc/init.d/tftpd-hpa start
Starting HPA's tftpd: in.tftpd.

Para confirmar que el proceso esta corriendo corremos:

# ps aux | grep tftpd

13 | P á g i n a
root 9446 0.0 0.0 2200 308 ? Ss 12:58 0:00
/usr/sbin/in.tftpd -v -l -s /var/lib/tftpboot

Como vemos, el demonio in.tftpd esta corriendo con las opciones que especificamos en el
archivo:

/etc/default/tfptd-hpa

Y para confirmar que el demonio tfptd abrió el puerto para conexiones, es decir, esta en
modo listening, usamos netstat así:

# netstat -plun | grep tftp


udp 0 0 0.0.0.0:69 0.0.0.0:* 9446/in.tftpd

Si tienes un firewall que este filtrando las conexiones entrantes al sistema, entonces
debes de abrir el puerto UDP/69.
Por default el servidor tftpd-hpa será iniciado al inicio del sistema, si queremos desactivar
el servidor tftp para que solo sea iniciado manualmente ejecutamos el comando:

# update-rc.d -f tftpd-hpa remove


Removing any system startup links for /etc/init.d/tftpd-hpa ...
/etc/rc1.d/K20tftpd-hpa
/etc/rc2.d/S20tftpd-hpa
/etc/rc3.d/S20tftpd-hpa
/etc/rc4.d/S20tftpd-hpa
/etc/rc5.d/S20tftpd-hpa

Cuando un cliente tftp descarga un archivo del servidor tftp veremos algo así en los logs:
==> /var/log/daemon.log <==
May 22 13:05:08 tftp in.tftpd[9547]: RRQ from 192.168.1.102 filename snom300.bin

==> /var/log/syslog <==


May 22 13:05:08 tftp in.tftpd[9547]: RRQ from 192.168.1.102 filename snom300.bin

14 | P á g i n a
7. Resumen.

El protocolo TFTP se implementa mediante el Protocolo de datagramas de usuario (UDP)


para enviar y recibir datos. El protocolo TFTP implementa su propio esquema de
confiabilidad mediante UDP.
El protocolo TFTP no admite ningún mecanismo de autenticación ni cifrado, por lo que su
presencia puede suponer un riesgo de seguridad. No se recomienda instalar el cliente de
TFTP en los sistemas con acceso a Internet.
Es un protocolo extremadamente simple para transferir ficheros. Está implementado sobre
UDP y carece de la mayoría de las características de FTP. La única cosa que puede
hacer es leer/escribir un fichero de/a un servidor. No tiene medios para autentificar
usuarios: es un protocolo inseguro.
Cualquier transferencia comienza con una petición de lectura o escritura de un fichero. Si
el servidor concede la petición, la conexión se abre y el fichero se envía en bloques de
512 bytes (longitud fija). Los bloques del fichero están numerados consecutivamente,
comenzando en 1. Un paquete de reconocimiento debe reconocer cada paquete de datos
antes de que el próximo se pueda enviar. Se asume la terminación de la transferencia
cuando un paquete de datos tiene menos de 512 bytes.
Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente- servidor, aun
que se considera servidor a aquel que abre el puerto 69 en modo UDP, y cliente a quien
se conecta.

15 | P á g i n a
8. Conclusión.

Con lo visto anteriormente se concluye que el protocolo TFTP es una forma fácil de envío
de información, pero no muy segura, al carecer de autentificación de usuario, ni al tener
conocimiento de a quien en realidad la envía. Este protocolo es simple en la transferencia
de ficheros ya que su método de codificación lo más eficiente.

16 | P á g i n a
8. Bibliografía y web grafía.

_ Monografías
_ wiki pedía
_ iSeries IBM Servidor TFTP.
_ Departamento de Ingeniería Electrónica E.T.S.I. de Telecomunicación
Universidad Politécnica de Madrid “MANUAL TÉCNICO DEL CLIENTE DE TFTP”

17 | P á g i n a

You might also like