Tp 1 - Protocolos TFTP y SMTP

Anuncio
Escuela de Graduados de Electrónica y
Telecomunicaciones
Maestría en Ingeniería en Telecomunicaciones
Laboratorio TCP-IP
Profesores:
Marcelo Utard
Javier Bozzuto
Integrantes del grupo:
Rafael Javier Collazos Medina
Julio Cesar Ramirez Mora
Edgar Alberto Sáenz Bolívar
Flavio Alejandro Soto Linares
2008
INTRODUCCIÓN
TFTP (Trivial file transfer Protocol) y SMTP (Simple Mail Transfer Protocol) son dos protocolos
de la capa de aplicación que se utilizan para transferir pequeños archivos por medio de UDP
(TFTP) e intercambiar mensajes de correo electrónico entre computadoras u otros dispositivos
(SMTP).
USO DE TFTP
La orden:
TFTP <nombre_host>
lleva a la línea de órdenes donde se pueden introducir las siguientes subórdenes:
Connect <host>
especifica el ID del host de destino
Mode <ascii/binary>
especifica el tipo del modo de transferencia
Get <nombre_fichero remoto> [<nombre_fichero local>]
recupera un fichero
Put <nombre_fichero remoto> [<nombre_fichero local>]
almacena un fichero
Verbose
cambia a modo verboso, que muestra información adicional durante la transferencia de
ficheros, on o off
Quit
sale de TFTP
DESCRIPCIÓN DEL PROTOCOLO TFTP
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.
PAQUETES TFTP
Sólo existen cinco tipos de paquetes:
Código de Operación Operación
1
Petición de lectura (RRQ)
2
Petición de escritura (WRQ)
3
Datos (DATA)
4
Reconocimiento (ACK)
5
Error (ERROR)
La cabecera TFTP contiene el código de operación asociado con el paquete.
DESCRIPCION DEL PROTOCOLO SMTP
Cuando un cliente establece una conexión con el servidor SMTP, espera a que éste envíe un
mensaje “220 Service ready” o “421 Service non available”
Se envía un HELO desde el cliente. Con ello el servidor se identifica. Esto puede usarse para
comprobar si se conectó con el servidor SMTP correcto.
El cliente comienza la transacción del correo con la orden MAIL. Como argumento de esta
orden se puede pasar la dirección de correo al que el servidor notificará cualquier fallo en el
envío del correo. El servidor responde “250 OK”.
Ya le hemos dicho al servidor que queremos mandar un correo, ahora hay que comunicarle a
quien. La orden para esto es RCPT TO:<destino@host>. Se pueden mandar tantas órdenes
RCPT como destinatarios del correo queramos. Por cada destinatario, el servidor contestará
“250 OK” o bien “550 No such user here”, si no encuentra al destinatario.
Una vez enviados todos los RCPT, el cliente envía una orden DATA para indicar que a
continuación se envían los contenidos del mensaje. El servidor responde “354 Start mail input,
end with <CRLF>.<CRLF>” Esto indica al cliente como ha de notificar el fin del mensaje.
Ahora el cliente envía el cuerpo del mensaje, línea a línea. Una vez finalizado, se termina con
un <CRLF>.<CRLF> (la última línea será un punto), a lo que el servidor contestará “250 OK”, o
un mensaje de error apropiado.
Tras el envío, el cliente, si no tiene que enviar más correos, con la orden QUIT corta la
conexión. También puede usar la orden TURN, con lo que el cliente pasa a ser el servidor, y el
servidor se convierte en cliente. Finalmente, si tiene más mensajes que enviar, repite el
proceso hasta completarlos.
Puede que el servidor SMTP soporte las extensiones definidas en el RFC 1651, en este caso, la
orden HELO puede ser sustituida por la orden EHLO, con lo que el servidor contestará con una
lista de las extensiones admitidas. Si el servidor no soporta las extensiones, contestará con un
mensaje "500 Syntax error, command unrecognized".
PAQUETES SMTP
En el ejemplo pueden verse las órdenes básicas de SMTP:
HELO, para abrir una sesión con el servidor
MAIL FROM, para indicar quien envía el mensaje
RCPT TO, para indicar el destinatario del mensaje
DATA, para indicar el comienzo del mensaje, éste finalizará cuando haya una línea únicamente
con un punto.
QUIT, para cerrar la sesión
RSET Aborta la transacción en curso y borra todos los registros.
SEND Inicia una transacción en la cual el mensaje se entrega a una terminal.
SOML El mensaje se entrega a un terminal o a un buzon.
SAML El mensaje se entrega a un terminal y a un buzon.
VRFY Solicita al servidor la verificación del argumento.
EXPN Solicita al servidor la confirmación del argumento.
HELP Permite solicitar información sobre un comando.
NOOP Se emplea para reiniciar los temporizadores.
TURN Solicita al servidor que intercambien los paquetes.
De los tres dígitos del código numérico, el primero indica la categoría de la respuesta, estando
definidas las siguientes categorías:
2XX, la operación solicitada mediante el comando anterior ha sido concluida con éxito
3XX, la orden ha sido aceptada, pero el servidor esta pendiente de que el cliente le envíe
nuevos datos para terminar la operación
4XX, para una respuesta de error, pero se espera a que se repita la instrucción
5XX, para indicar una condición de error permanente, por lo que no debe repetirse la orden
Una vez que el servidor recibe el mensaje finalizado con un punto puede bien almacenarlo si es
para un destinatario que pertenece a su dominio, o bien retransmitirlo a otro servidor para
que finalmente llegue a un servidor del dominio del receptor.
DESCRIPCION GENERAL DEL TRABAJO
En este trabajo se intenta mostrar el funcionamiento de cada uno de estos protocolos y
describir cada uno de los componentes que participan en sus respectivos funcionamientos.
El desarrollo del trabajo se basa en laboratorios, para esto definimos una maqueta de trabajo y
planteamos una serie de escenarios para cada uno de los protocolos que vamos a estudiar. Se
instalo el software necesario y se desarrollaron las pruebas para cada uno de los escenarios
propuestos
El análisis de cada una de las pruebas se realizo con la ayuda de un analizador de protocolos,
mostrando detalladamente cada una de las tramas y facilitando la comprensión del
funcionamiento de los protocolos estudiados. Finalmente mostramos los resultados y las
conclusiones que nos arrojaron las pruebas.
OBJETIVOS
•
•
•
•
•
Observar el comportamiento de las instrucciones GET y PUT del comando TFTP
Observar el comportamiento del servidor SMTP en la recepción de correos
electrónicos
Analizar todos y cada uno de los resultados mostrados en el wireshark tanto en TFTP
como en SMTP
Comprender cada una de las instrucciones de la trama TFTP y SMTP
Comparar cada uno de los comportamientos de las tramas según los escenarios
propuestos
TFTP
MAQUETA
PLANIFICACION
En este caso se plantea realizar la lectura y escritura de archivos por medio del
comando GET Y PUT para interactuar con el protocolo TFTP. Para esto se piensa
utilizar dos PC actuando como cliente y una maquina servidor encargada de alojar los
archivos. Las tres maquinas se hallan conectadas a un router y utilizan el rango de red
192.168.1.0 con mascara 255.255.255.0.
La prueba se establece con el reinicio de las maquinas y el router, para asegurar que las tablas
se encuentran vacías. Una de las máquinas asumirá el papel de servidor y tendrá instalado y
configurado el software encargado de gestionar el servicio TFTP ( SolarWinds TFTP Server). Los
clientes harán uso de las opciones GET y PUT correspondientes al comando TFTP para poder
enviar y capturar archivos de la máquina servidor .El servidor cuenta con una carpeta donde
se alojan los archivos tanto para envío como para la recepción.
Se examinará el funcionamiento del protocolo TFTP, utilizando un analizador de tramas en
cada uno de los equipos – Wireshark -. Los clientes podrán acceder al servidor por medio del
editor de comandos.
EJECUCIÓN
Para la ejecución de la prueba, se realizó primero la identificación de los roles. En esta
parte se definió como servidor al equipo con dirección ip 192.168.1.2 al cual se le
instaló el programa SolarWinds TFTP Server trabajando sobre el puerto 69 UDP. Este
permitirá a la máquina realizar las funciones de servidor. Al cliente se le asigno la
dirección 192.168.1.6, quien se encargará de enviar y capturar archivos.
Durante la configuración del servidor TFTP se definió el directorio “C:\TFTP-Root”
como el encargado para alojar los archivos que los clientes pueden colocar y capturar.
Se plantearon tres escenarios:
•
•
•
Envío y captura exitosa de un archivo
Envío y captura de un archivo estando el servidor inactivo
Obtención de un archivo inexistente
Escenario 1 (Envio y captura éxitosa de un archivo)
Para este escenario se plantearon dos pruebas, la primera consiste en el envío del
archivo 27.jpg al servidor, donde se espera que el fichero sea alojado exitosamente en
la carpeta definida en el servidor para tal fin. El cliente ingresa al editor de comandos y
ejecuta la secuencia:
C: \ TFTP –i 192.168.1.2 PUT 27.jpg
En este caso se utiliza la opción –i para indicar que es un archivo binario, para un archivo de
texto se ejecuta el comando sin esta opción. En las dos máquinas se instalaron el analizador de
tramas Wireshark para revisar el comportamiento de la prueba.
En la segunda prueba la maquina cliente intenta obtener un archivo que se encuentra alojado
en el directorio definido en el servidor TFTP (C:\TFTP-Root), el nombre del archivo es
prueba.jpg y en este caso se ejecuta el comando:
C: \ TFTP –i 192.168.1.2 GET prueba.jpg
Analizando las tramas, inicialmente el cliente envía una petición ARP solicitando la
MAC del servidor (192.168.1.2), este envía el ARP reply informando su dirección MAC.
Seguido a esto el cliente envía un paquete WRQ (write request/petición de escritura),
cuando se ejecuta el comando con la opción PUT, indicando el nombre del archivo y
el modo de transferencia.
El servidor envía un ACK y después de esto el cliente inicia el envío del archivo dividido
en paquetes de 512 bytes. El servidor envía un ACK por cada bloque de datos enviado.
En el momento en que el servidor recibe un paquete con menos de 512 bytes, este le
está indicando que ha finalizado la transferencia el archivo
El archivo que se utilizó para la prueba (27.jpg) ocupa 137.929 bytes, por lo tanto el
cliente envía al servidor 269 paquetes de datos cada uno con 512 bytes, para un total
de 137.728 bytes, el paquete restante es enviado con 201 bytes y por ser menor de
512 el servidor asume la finalización del archivo. Para cada paquete enviado el servidor
responde con un ACK
En la segunda prueba, para la opción GET el cliente envía un paquete RRQ (read
request/petición de lectura) y se repite la misma secuencia que en la prueba realizada con la
opción PUT.
En este caso el archivo capturado (prueba2.jpg) ocupa un total de 508.700 bytes, el cliente
captura 993 paquetes de 512 bytes y finaliza con un paquete de 284 bytes.
Escenario 2 (Envío y captura de un archivo estando el servidor inactivo.)
La prueba consiste en el envío de un archivo por parte del cliente al servidor, estando el
servidor TFTP inactivo. Se espera que al servidor(pc) le llegue del cliente la solicitud RRQ o
WRQ, dependiendo del comando que se utilice(PUT o GET)como el servidor TFTP esta inactivo
no podrá responder a ninguna de las solicitudes antes mensionadas .
Al revisar las tramas se encontró que el cliente después de realizar la consulta ARP, envía el
paquete RRQ (read request/petición de lectura) indicando el nombre del archivo. De igual
manera sucede con el paquete WRQ (write request/petición de escritura) indicando el
nombre del archivo.En ambos casos el servidor retorna un mensaje ICMP de tipo “Destination
Unreachable” con código “Port Unreachable” .
Escenario 3 (Obtención de un archivo inexistente.)
En este caso se intentara la captura de un archivo que no existe en la carpeta del
servidor TFTP utilizando el comando GET , se espera que el servidor envie un
mensaje de error diciendo que dicho archivo no se encuentra en el registro de sus
archivos.
Ejecución
se ejecuta desde la pc cliente 192.168.1.6 el comando get , además se analiza con el
wireshark instalado en el servidor su comportamiento:
Luego de recibir el servidor la petición de lectura se pudo notar que la maquina servidor envía
un error de mensaje TFTP de archivo no encontrado.
SMTP
MAQUETA
PLANIFICACION
En este caso se plantea realizar el envío de un correo electrónico por medio de un
protocolo de transferencia simple de correos SMTP. Para esto se piensa utilizar dos PC
actuando como cliente y otro como cliente/ servidor, encargado este ultimo de la
retransmisión de los correos electrónicos. Las dos maquinas se hallan conectadas a un
router y utilizan el rango de red 192.168.1.0 con mascara 255.255.255.0.
La prueba se establece con el reinicio de las maquinas y el router, para asegurar que
las tablas se encuentran vacías. Una de las máquinas asumirá el papel de
servidor/cliente y tendrá instalado y configurado el software encargado de gestionar
el protocolo SMTP
En el servidor SMTP se creara un dominio donde estarán vinculadas las cuentas de
correo con las que se realizara la prueba, a su vez, en el cliente se va configurar el
Microsoft Outlook con la cuenta perteneciente al dominio creado en el servidor con el
fin de verificar el envío de un correo .
Se examinará el funcionamiento del protocolo SMTP, utilizando un analizador de
tramas en cada uno de los equipos – Wireshark -. Cliente y servidor
Ejecución
Para la realización de la prueba se definió a la maquina 192.168.1.2 como el servidor SMTP y a
la vez como uno de los clientes de correo. A este equipo se le instaló el programa “Argosoft
Mail Server” para que pudiera servir como servidor de correo. La maquina 192.168.1.6 será el
otro cliente y por medio de este se realizará el envío de correos.
El primer paso para la realización de la prueba es configurar el servidor SMTP, para esto es
necesario crear un dominio y los usuarios que harán parte de este. El dominio creado se llama
“casa.com” y se le agregaron dos usuarios rafael@casa.com y julio@casa.com.
Para la configuración de los clientes se utilizó el programa “Microsoft Outlook”, en la máquina
servidor se agregó el usuario julio@casa.com y en el equipo cliente se especificó el usuario
rafael@casa.com.
Teniendo configuradas las máquinas se definen los siguientes escenarios:
•
•
Envío exitoso de un correo electrónico.
Envío de un correo a una dirección desconocida.
Escenario 1 (Envío exitoso de un correo electrónico.)
La prueba consiste en el envío de un correo electrónico desde el cliente con nombre de
cuenta rafael@casa.com a la a otra máquina con nombre de cuenta julio@casa.com, pasando
primero por un servidor de correo SMTP .
Se analizan cada una de las tramas resultantes de este proceso utilizando el analizador
“Wireshark”. Con esto se puede determinar cuáles son los pasos que se realizan durante el
envío de un correo electrónico por medio del protocolo SMTP. Como las cuentas se
encuentran creadas en el servidor SMTP, se espera que el correo se gestione de forma exitosa
y sea entregado al destinatario.
Las tramas muestran que inicialmente se inicia la negociación TCP entre el cliente y el servidor.
El cliente le envía una trama con el flag SYN en 1 y este le responde con el flag SYN y ACK. El
cliente le indica que se va a realizar la conexión por el puerto 25 TCP correspondiente a SMTP.
Revisando la RFC de SMTP y revisando las tramas, se puede resumir el funcionamiento del
protocolo de la siguiente manera:
•
Cuando se finaliza el establecimiento de conexión, el servidor envía un mensaje “220
Service ready”, y en el caso en que no esté disponible envía un mensaje “421 Service non
available”
•
El cliente envía un mensaje EHLO. Con ello el servidor se identifica. Esto puede usarse para
comprobar si se conectó con el servidor SMTP correcto.
•
El servidor responde cada trama éxitosa con un mensaje “250 OK”, para el caso EHLO
responde “250 – Welcome Pleased to meet you”
•
El cliente comienza la transacción del correo con la orden MAIL. Como argumento de esta
orden se puede pasar la dirección de correo al que el servidor notificará cualquier fallo en
el envío del correo. El servidor responde “250 OK”.
•
Con la orden RCPT el cliente le indica al servidor cuales son los destinatarios del correo, el
cliente de igual forma confirma con una orden 250-OK la existencia del destinatario de
correo.
•
Una vez enviados todos los RCPT, el cliente envía una orden DATA para indicar que a
continuación se envían los contenidos del mensaje. El servidor responde (354 Start mail
input, end with “.” ) Esto indica al cliente que debe finalizar el mensaje con una línea de
puntos “.” .
•
Ahora el cliente envía el cuerpo del mensaje, línea a línea. Una vez finalizado, se termina
con un “.” (la última línea será un punto), a lo que el servidor contestará “250 OK Message
accepted for delivery”.
•
Tras el envío, el cliente, si no tiene que enviar más correos, con la orden QUIT corta la
conexión, finalmente el servidor cierra la conexión con un comando “221 aba he”.
Por cada comando SMTP enviado entre el cliente y el servidor se envían una trama tcp de
confirmación de recepción de cada comando.
Escenario 2 (Envío de un correo a una dirección desconocida.)
La prueba consiste en el envío de un correo electrónico desde el cliente con nombre de
cuenta de correo rafael@casa.com a otra máquina con nombre de cuenta de correo
Flavio1@casa.com, pasando primero por un servidor de correo SMTP.
Analizando cada una de las tramas resultantes de este proceso utilizando el sniffer
“Wireshark”, se puede determinar cuáles son los pasos que se realizan durante el envío de un
correo electrónico por medio del protocolo SMTP. Como la cuenta flavio1@casa.com no se
encuentran creada en el servidor SMTP, se espera que el correo no se gestione de forma
exitosa ya que dicha cuenta no se encuentra registrada, por este hecho el servidor devolverá al
que envía el mensaje una respuesta de error o que no se puede enviar dicho correo a la
cuenta de destino.
Analizando las tramas, el proceso inicial es similar al estudiado en el escenario 1, se realiza la
negociación TCP y se envían las tramas SMTP, que también se estudiaron en el escenario 1 ,
en este caso enviamos un correo con dirección de destino flavio1@casa.com que se puede ver
cuando el cliente le envía el paquete RCPT al servidor.
El servidor compara la cuenta de correo entrante (flavi01@casa.com) con las que se
encuentran registradas en el servidor de correo SMTP , al ver que la cuenta no se encuentra
registrada el servidor envía una respuesta al cliente (Rafael@casa.com) con un código de error
550 diciendo cuenta de usuario flavio1@casa.com no existe.
Al final de el análisis podemos notar que se cierra la sesión TCP donde el cliente le envía un
comando QUIT y el server contesta finalmente el cliente cierra la conexión con un comando
“221 aba he”.
CONCLUSIONES.
En el siguiente laboratorio pudimos comprobar la utilización de los comandos de tftp y la
manera de cómo se envía y obtienen archivos por medio de las herramientas PUT y GET . Asi
mismo pudimos analizar en las tramas la diferencia de lo protocolos UDP,TCP , y las
instrucciones PUT y GET , se pudo ver de manera satisfactoria el desarrollo de cada uno de los
escenarios propuestos.
En el caso de SMTP se pudo analizar en las tramas la utilización del protocolo TCP , los
diferentes tipos de paquetes, códigos que intercambian el cliente y el servidor , dependiendo
de cada uno de los escenarios propuestos. Llevándonos a concluir que el laboratorio cumplió
todas nuestras expectativas
Descargar