0% encontró este documento útil (0 votos)
43 vistas

Práctica 4 SMTP

El documento describe los protocolos utilizados para el envío y recepción de correo electrónico. Para el envío entre cliente y servidor se usa SMTP o HTTP, mientras que entre servidores siempre se usa SMTP. Para la recepción, los protocolos son POP3, que permite descargar los mensajes, e IMAP, que permite crear carpetas remotas y acceder a los mensajes desde múltiples dispositivos. El documento también incluye capturas de tráfico SMTP que muestran el envío y recepción de correos entre cuentas configuradas en Thunderbird
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas

Práctica 4 SMTP

El documento describe los protocolos utilizados para el envío y recepción de correo electrónico. Para el envío entre cliente y servidor se usa SMTP o HTTP, mientras que entre servidores siempre se usa SMTP. Para la recepción, los protocolos son POP3, que permite descargar los mensajes, e IMAP, que permite crear carpetas remotas y acceder a los mensajes desde múltiples dispositivos. El documento también incluye capturas de tráfico SMTP que muestran el envío y recepción de correos entre cuentas configuradas en Thunderbird
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

Práctica 4 - SMTP

1. ¿Qué protocolos se utilizan para el envío de mails entre el cliente y su


servidor de correo? ¿Y entre servidores de correo?

Existen distintas variantes a la hora de implementar clientes que se comunican con


servidores de correo con el fin de delegarles el envío del email hacia el destinatario
correspondiente:

- SMTP: El user-agent (cliente) efectúa un “push” directo a su servidor remoto para


que este se encargue de asegurar el delivery del correo al destinatario. Este
mecanismo requiere que el user-agent implemente la parte del “cliente” del
protocolo SMTP.
- HTTP: El user-agent (cliente) se comunica con su servidor de emails remoto
mediante HTTP, indicando los detalles del correo a retransmitir. Luego, el servidor
remoto envía dicho correo al servidor destinatario utilizando SMTP.

Entre servidores de correo, la comunicación es siempre mediante SMTP, ya que se


trata de un protocolo “push”.

2. ¿Qué protocolos se utilizan para la recepción de mails? Enumere y explique


características y diferencias entre las alternativas posibles.

Los protocolos utilizados para la recepción de email son del estilo “pull”, es decir, es
el user-agent (client) receptor el cual se encarga de solicitar a su servidor de correo
los nuevos emails recibidos.

Los protocolos pull utilizados son los siguientes:


- HTTP: Como no podía ser de otra forma, HTTP es el estándar de facto en la
modernidad, ya que permite a clientes web/nativos (user-agents) consultar a su
servidor de correo todo su directorio de correo, mediante mensajes HTTP.

- POP3: Protocolo sencillo y legible, definido en RFC 1939. La mecánica del mismo
comienza con el user-agent abriendo una conexión TCP con el servidor de emails,
utilizando el puerto 110. Una vez establecida la conexión TCP, POP3 se vale de las

Práctica 4 - SMTP 1
siguientes tres fases: autorización, transacción, y update. La fase de autorización
es auto-explicativa, el user envía al servidor un user y password para autenticarse.
Luego, en la fase de transacción, el user-agent puede recuperar los mensajes del
mailbox remoto, o bien marcar mensajes como eliminados, eliminar marcas de
eliminación, recuperar estadísticas, etc. Por ultimo, en la fase de update, (ocurrida
luego de que el user-agent emita el quit) el servidor se encarga de aplicar las
marcas de eliminación, si las hubiere.

- IMAP: Por ultimo, el protocolo IMAP, el cual es diseñado para resolver una
problemática que POP3 no resuelve: la posibilidad de crear folders remotos y
asignar a dichos folder correos, y ser accedido desde muchos dispositivos
(teléfonos, desktop, web, etc).
En IMAP, cada mensaje entrante al servidor receptor es asociado al folder INBOX,
y luego el usuario (mediante su user-agent) puede emitir comandos para ordenarle
al mailbox server que cree folders, asignar correos a un folder, marcar mensajes
como leídos, eliminarlos, etc. Este protocolo, a diferencia de POP3, es mucho mas
complejo porque requiere mantener “estado” entre sesiones del user-agent contra
el mailbox server, ya que si no no habría forma de acceder a los folders desde
multiples dispositivos.

3. Utilizando la VM y teniendo en cuenta los siguientes datos, abra el cliente de


correo (thunderbird) y configure dos cuentas de correo. Una de las cuentas
utilizará POP para solicitar al servidor los mails recibidos para la misma
mientras que la otra utilizará IMAP.

A - Verificar el correcto funcionamiento enviando un email desde el cliente de


una cuenta a la otra y luego desde la otra responder el mail hacia la primera.

Todo ok!

B - Captura del TCP stream resultante de comunicar dos servidores SMTP


para el envío de un correo de prueba:

220 mail.redes.unlp.edu.ar ESMTP Postfix (Lihuen-4.01/GNU)


EHLO [172.28.0.1]
250-mail.redes.unlp.edu.ar
250-PIPELINING

Práctica 4 - SMTP 2
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
MAIL FROM:<[email protected]> BODY=8BITMIME SIZE=989
250 2.1.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <[email protected]>
Date: Sun, 23 Apr 2023 20:05:37 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.12.0
Subject: Re: Pruebita desde user-agent flojo de papeles
Content-Language: en-US
To: alumno de redes <[email protected]>
References: <[email protected]>
<[email protected]>
From: alumno de redes <[email protected]>
In-Reply-To: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

este mensaje va mas inseguro que trabajador bajandose en quilmes un


sabado a la noche

On 4/23/23 19:58, alumno de redes wrote:


> Como le va al user-agent mas poronga que existe?
>
> On 4/23/23 19:57, alumno de redes wrote:
>> Hola user imaaaaaaap! vengo desde la garcha de pop3
>>
.
250 2.0.0 Ok: queued as 18AF5600D0
QUIT
221 2.0.0 Bye

C - Usando el cliente de correo thunderbird del usuario


[email protected] envíe un correo electrónico
[email protected] el cual debe tener: un asunto, datos en el
body y una imagen adjunta.

Captura:

Práctica 4 - SMTP 3
220 mail.redes.unlp.edu.ar ESMTP Postfix (Lihuen-4.01/GNU)
EHLO [172.28.0.1]
250-mail.redes.unlp.edu.ar
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
MAIL FROM:<[email protected]> BODY=8BITMIME SIZE=9798
250 2.1.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Content-Type: multipart/mixed; boundary="------------wCXkZsTwSJsWqCcX5Q8rT9aj"
Message-ID: <[email protected]>
Date: Sun, 23 Apr 2023 20:32:19 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.12.0
Content-Language: en-US
To: alumno de redes <[email protected]>
From: alumno de redes <[email protected]>
Subject: Aca va un gatito lindo

This is a multi-part message in MIME format.


--------------wCXkZsTwSJsWqCcX5Q8rT9aj
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Para vos que te pones depre facil

--------------wCXkZsTwSJsWqCcX5Q8rT9aj
Content-Type: image/jpeg; name="cat.jpeg"
Content-Disposition: attachment; filename="cat.jpeg"
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0i
IiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5OjcBCgoKDQwNGg8PGjclHyU3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N//AABEIAIQA
xgMBIgACEQEDEQH/xAAbAAA...==

--------------wCXkZsTwSJsWqCcX5Q8rT9aj--
.
250 2.0.0 Ok: queued as 3680F600D0
QUIT
221 2.0.0 Bye

Práctica 4 - SMTP 4
i. Verifique los fuentes del correo recibido para entender como se utiliza el
header “Content-Type: multipart/mixed“ para poder realizar el envío de
distintos archivos adjuntos.

Un mensaje MIME multipart/mixed se compone de una combinación de diferentes


tipos de datos. Cada parte del cuerpo está delineada por un límite (boundary). El
parámetro de límite es una cadena de texto que se usa para delinear una parte del
cuerpo del mensaje de otra. Todos los límites comienzan con dos guiones (--). El
límite final también concluye con dos guiones (--). El límite se puede componer de
cualquier carácter ASCII, excepto un espacio, un carácter de control o caracteres
especiales.

Cuando un email server envía mensajes MIME, el tipo de contenido depende de si


hay datos adjuntos en el mensaje y del formato del texto del mensaje. Si hay datos
adjuntos, el tipo de contenido es multipart/mixed. En este caso, el texto del mensaje
y cada dato adjunto se convierten en una parte independiente del contenido del
mensaje, cada uno con su propio tipo de contenido. Si no hay datos adjuntos, el
tipo de contenido del mensaje es Texto o Sin formato y el cuerpo del mensaje se
compone de una sola parte.

ii. Extraiga la imagen adjunta del mismo modo que lo hace el cliente de correo
a partir de los fuentes del mensaje.
La imagen adjunta puede encontrarse en el ultimo boundary del mensaje, el cual
inicia de la siguiente forma:

--------------wCXkZsTwSJsWqCcX5Q8rT9aj
Content-Type: image/jpeg; name="cat.jpeg"
Content-Disposition: attachment; filename="cat.jpeg"
Content-Transfer-Encoding: base64

El contenido de la imagen se envía como un string base64, el cual debe ser

Práctica 4 - SMTP 5
decodificado por el user-agent para poder renderizarlo.

4. Análisis del protocolo POP3:

A - Utilizando Wireshark, capture el tráfico de red contra el servidor de correo


mientras desde la cuenta [email protected] le envía una correo
a [email protected] y mientras [email protected]
recepciona dicho correo:

+OK Dovecot ready.


CAPA
+OK
CAPA
TOP
UIDL
RESP-CODES
PIPELINING
AUTH-RESP-CODE
STLS
USER
SASL PLAIN
.
AUTH PLAIN
+
AGFsdW1ub3BvcABhbHVtbm9wb3BwYXNz
+OK Logged in.
STAT
+OK 2 1921
LIST
+OK 2 messages:
1 1113
2 808
.
UIDL
+OK
1 0000000356eaa394
2 0000000456eaa394
.
RETR 2
+OK 808 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from [172.28.0.1] (unknown [172.28.0.1])
by mail.redes.unlp.edu.ar (Postfix) with ESMTP id B0BA1600D0
for <[email protected]>; Mon, 24 Apr 2023 00:55:23 +0000 (UTC)
Message-ID: <[email protected]>

Práctica 4 - SMTP 6
Date: Sun, 23 Apr 2023 21:55:18 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.12.0
Content-Language: en-US
To: alumno de redes <[email protected]>
From: alumno de redes <[email protected]>
Subject: Test de pop reception
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

hola mundo

.
QUIT
+OK Logging out.

B - Descripción de los comandos ejecutados por el cliente POP3:

Command Function

Returns a list of capabilities supported by the


CAPA POP3 server. It is available in both the
AUTHORIZATION and TRANSACTION states.
Permite autenticar a un cliente mediante un
string BASE64 con el formato
AUTH PLAIN
<NULL>user<NULL>password . Esta
disponible en la fase de AUTHORIZATION.
Devuelve la cantidad total de mensajes en el
STAT inbox, así como su tamaño total en octetos.
Disponible a partir de la fase TRANSACTION.
Devuelve una lista indexada de mensajes,
LIST junto con su tamaño en octetos. Disponible a
partir de la fase TRANSACTION.

Práctica 4 - SMTP 7
Command Function

Returns a unique ID for a message index (from


LIST). This ID is used by POP3 clients to
identify previously downloaded messages. A
client would connect, pull a LIST of messages,
then pull a UIDL for each message index
UIDL
listed. If the UIDL had been downloaded prior,
message can be skipped. If UIDL has not yet
been downloaded, use the RETR command to
download this new message. Disponible a
partir de la fase TRANSACTION
Permite recuperar todo el contenido de un
RETR
mensaje, y su tamaño en octetos.
QUIT Logs out and saves any changes

5. Análisis del protocolo IMAP

A - Utilizando Wireshark, capture el tráfico de red contra el servidor de correo


mientras desde la cuenta [email protected] le envía una correo
a [email protected] y mientras [email protected]
recepciona dicho correo:

* 6 EXISTS
* 1 RECENT
DONE
42 OK Idle completed (108.693 + 108.684 + 108.692 secs).
43 noop
43 OK NOOP completed (0.001 + 0.000 secs).
44 UID fetch 8:* (FLAGS)
* 6 FETCH (UID 8 FLAGS (\Recent))
44 OK Fetch completed (0.001 + 0.000 secs).
45 UID fetch 8 (UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (From To Cc Bcc Subject
Date Message-ID Priority X-Priority References Newsgroups In-Reply-To Content-Type Re
ply-To)])
* 6 FETCH (UID 8 RFC822.SIZE 805 FLAGS (\Recent) BODY[HEADER.FIELDS (FROM TO CC BCC S
UBJECT DATE MESSAGE-ID PRIORITY X-PRIORITY REFERENCES NEWSGROUPS IN-REPLY-TO CONTENT-
TYPE REPLY-TO)] {295}
Message-ID: <[email protected]>
Date: Mon, 24 Apr 2023 00:15:07 -0300
To: alumno de redes <[email protected]>
From: alumno de redes <[email protected]>
Subject: test de imap
Content-Type: text/plain; charset=UTF-8; format=flowed

Práctica 4 - SMTP 8
)
45 OK Fetch completed (0.002 + 0.000 + 0.001 secs).
46 UID fetch 8 (UID RFC822.SIZE BODY.PEEK[])
* 6 FETCH (UID 8 RFC822.SIZE 805 BODY[] {805}
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from [172.28.0.1] (unknown [172.28.0.1])
by mail.redes.unlp.edu.ar (Postfix) with ESMTP id 00492600D0
for <[email protected]>; Mon, 24 Apr 2023 03:15:12 +0000 (UTC)
Message-ID: <[email protected]>
Date: Mon, 24 Apr 2023 00:15:07 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.12.0
Content-Language: en-US
To: alumno de redes <[email protected]>
From: alumno de redes <[email protected]>
Subject: test de imap
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

imap boludoooo

)
46 OK Fetch completed (0.001 + 0.000 secs).
47 UID fetch 8 (UID BODY.PEEK[HEADER.FIELDS (Content-Type Content-Transfer-Encoding)]
BODY.PEEK[TEXT]<0.2048>)
* 6 FETCH (UID 8 BODY[HEADER.FIELDS (CONTENT-TYPE CONTENT-TRANSFER-ENCODING)] {91}
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

BODY[TEXT]<0> {18}
imap boludoooo

)
47 OK Fetch completed (0.003 + 0.000 + 0.002 secs).
48 IDLE
+ idling

B - Utilice el filtro IMAP para observar los paquetes del protocolo IMAP en la
captura generada y analice el intercambio de dicho protocolo entre el cliente
y el servidor para observar los distintos comandos utilizados y su
correspondiente respuesta.
IMAP es un protocolo stateful, esto significa que el servidor debe mantener estado
entre sesiones del usuario.

Práctica 4 - SMTP 9
En líneas generales, algunos de los comandos mas importantes son AUTH PLAIN
(si es soportado), CAPABILITIES, LOGIN, LIST, FETCH, SEARCH, IDLE, los
cuales serán descritos en la tabla de abajo.
Adicionalmente, es útil comprender la sintaxis de un comando IMAP:
<tag> <command> [<arg1><arg2>…]

Donde tagrepresenta la etiqueta de un comando para matchearlo en la respuesta,


command es uno de los comandos estándar de IMAP, y [<arg1><arg2>…] son los
argumentos de dicho comando.
Las respuesta del servidor pueden ser de tres tipos:

1. OK indicando que se pudo procesar la solicitud

2. NO indicando que se fallo en completar el requerimiento

3. BAD indicando que el cliente formulo incorrectamente el requerimiento y el


server no entiende.

Por ultimo, es importante entender que desde IMAP4 los correos almacenados en
el inbox remoto tienen asignado un UID. El cliente mantiene en su cache local un
UIDVALIDITY que chequea contra el servidor ante cada conexión, y si el del server
es mas alto, significa que el cliente se encuentra desincronizado y debe eliminar su
cache de UID.

Command Function

Indica que se quiere conocer cuales son las


funcionalidades soportadas por el servidor.
CAPABILITIES
Las capabilities son distintas pre-login y post-
login.
Utilizado para que un cliente pueda
LOGIN
autenticarse
LIST Permite listar las carpetas del inbox remoto.

Permite descargar un correo especificando


un numero de secuencia (IMAP2) o UID
FETCH
(IMAP4), teniendo la posibilidad de solicitar
partes o la totalidad del correo.

Permite obtener los UID o numero de


SEARCH secuencia de todos los correos en el inbox
remoto.

Práctica 4 - SMTP 10
Command Function

Indica al servidor que el cliente se encuentra


interesado en recibir cualquier evento (como
IDLE
un nuevo correo) en tiempo real, sin tener
que utilizar mecanismos como el Polling.

CLOSE Cierra la folder seleccionada actualmente.

Hace un shutdown de la conexión con el


LOGOUT
servidor.

Práctica 4 - SMTP 11

También podría gustarte