17
Protocolo TFTP Oscar Castillo Prof. Sergio Valenzuela Ing. En computación e informática 08 de octubre de 2010

protocolo TFTP

Embed Size (px)

Citation preview

Page 1: protocolo TFTP

Protocolo TFTP

Oscar Castillo

Prof. Sergio Valenzuela

Ing. En computación e informática

08 de octubre de 2010

Page 2: protocolo TFTP

2 | P á g i n a

Í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

Page 3: protocolo TFTP

3 | P á g i n a

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.

Page 4: protocolo TFTP

4 | P á g i n a

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

Page 5: protocolo TFTP

5 | P á g i n a

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 opcod e asociado al paquete.

Page 6: protocolo TFTP

6 | P á g i n a

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.

Page 7: protocolo TFTP

7 | P á g i n a

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

Page 8: protocolo TFTP

8 | P á g i n a

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

Enlace

N/A N/A

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:

Page 9: protocolo TFTP

9 | P á g i n a

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.

Page 10: protocolo TFTP

10 | P á g i n a

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.

Page 11: protocolo TFTP

11 | 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í:

Page 12: protocolo TFTP

12 | 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

Page 13: protocolo TFTP

13 | 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

Page 14: protocolo TFTP

14 | 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

Page 15: protocolo TFTP

15 | 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.

Page 16: protocolo TFTP

16 | 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.

Page 17: protocolo TFTP

17 | 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”