Correio Eletrônico E-mail & SMTP Prof. Dr. Adriano Mauro Cansian adriano@acmesecurity.org E- mail Os usuários possuem uma relação amor e ódio com o e- mail: eles amam usá- lo, e oiam quando ele não funciona. Craig Hunt 2 Prof. Dr. Adriano Mauro Cansian 1
Sistema E- mail Apesar das res sociais... O Correio Eletrônico ainda é uma das aplicações mais difundidas da Internet. Facilida uso, velocida e amplo por troca informações. Muitas aplicações críticas usam e-mail. Sistema muito fácil usar. Permite enviar mensagens texto puro, transferir programas, fotos, áudio víos, ou qualquer outro arquivo, praticamente forma instantânea. off-line : não pen da outra ponta estar on-line. 3 Número contas e usuários e- mail Email Statistics Report, 2009-2013 Executive Summary www.radicati.com 4 Prof. Dr. Adriano Mauro Cansian 2
Mercado associado ao correio eletrônico 2015-2019 http://www.radicati.com/wp/wp-content/uploads/2015/02/email_market_2015-2019,_executive_summary.pdf 5 Usuários Res Sociais http://www.radicati.com/wp/wp-content/uploads/2015/02/social_networking_statistics_report_2015-2019_executive_summary.pdf 6 Prof. Dr. Adriano Mauro Cansian 3
Worldwi Daily Email Traffic, 2012 2016 (*) (em bilhões mensagens) (*) estimativas THE RADICATI GROUP, INC. http://www.radicati.com/wp/wp-content/uploads/2012/04/email-statistics-report-2012-2016-executive-summary.pdf (17.11.2014) 7 Worldwi Daily Email Traffic, 2015 2019 (*) (em bilhões mensagens) (*) http://www.radicati.com/wp/wp-content/uploads/2015/02/email_market_2015-2019,_executive_summary.pdf 8 Prof. Dr. Adriano Mauro Cansian 4
QuanWda contas corporawvas e pessoais(*) (em milhões) (*) estimativas THE RADICATI GROUP, INC. http://www.radicati.com/wp/wp-content/uploads/2012/04/email-statistics-report-2012-2016-executive-summary.pdf (17.11.2014) 9 Mas, nem todo mundo domina... 10 Prof. Dr. Adriano Mauro Cansian 5
...nem um pouco.... Received: from edutec.unesp.br (edutec.unesp.br [IPv6:2801:88:1000:ead::66]) by ceti.nead.unesp.br (Postfix) with ESMTP id 81204EE16D for <adriano@ibilce.unesp.br>; Fri, 14 Nov 2014 16:30:01-0200 (BRST) Date: Fri, 14 Nov 2014 16:30:01-0200 To: adriano@ibilce.unesp.br From: Root User <root@localhost.acmesecurity.org> Reply-To: no_reply@nead.unesp.br Subject: Informe: Ambientes Virtuais Aprendizagem Message-ID: e261931cbe32f90066829a84298ba3a8@edutec.unesp.br... 11 Conceitos e fundamentos E- mail e SMTP Prof. Dr. Adriano Mauro Cansian 6
Componentes do Correio eletrônico MUA: Mail User Agent MTA: Mail Transfer Agent MDA: Mail Delivery Agent MAA: Mail Access Agent 13 Componentes Veremos inicialmente o dois principais componentes à MUA e o MTA. Depois entenremos o protocolo SMTP. Em seguida veremos os outros dois componentes à MDA e MAA. 14 Prof. Dr. Adriano Mauro Cansian 7
Componentes do Correio eletrônico 15 Definições dos componentes O sistema e-mail é formado duas entidas principais à MUA e MTA MUA - Mail User Agent MUAs são quaisquer dos programas utilizados para ler, compor, responr e dispor mensagens eletrônicas. Exemplos: pine, mail, Mail, elm, Pegasus Mail, Eudora, etc... MTA - Mail Transport Agent (em alguns textos Mail Transfer Agent) MTAs são programas que se encarregam entregar mensagens a vários usuários e redirecionar mensagens entre computadores. Os programas MTAs mais conhecidos são o sendmail e o postfix. Exemplo: Postfix (http://www.postfix.org) e Sendmail (http://www.sendmail.org) 16 Prof. Dr. Adriano Mauro Cansian 8
MUA e MTA 17 MUA (1) MUA que normalmente existe em todos os ambientes unix chama-se mail. Geralmente o mail é apenas para os iniciados vido à sua complexida. Existem outros programas tais como mutt, pine e elm que tornam o trabalho com o correio eletrônico extremamente simples para usuários comuns. Opções, tanto domínio público como comerciais, são numerosas. Interfaces gráficas com suporte a MIME (Multipurpose Internet Mail Extensions) também são populares. à veremos mais adiante 18 Prof. Dr. Adriano Mauro Cansian 9
MUA (2) Exemplo um MUA com interface gráfica no sistema Mac OS X 19 MTA (1) O programa MTA é necessário à a entrega correio eletrônico em res raramente é uma tarefa simples. Como a tarefa transportar mensagens frequentemente se esten além dos domínios da máquina local à aumenta a necessida um MTA separado um MUA. MTAs mais usados: No Unix: Postfix e Sendmail. No Windows: Windows SMTP server(*) e hmailserver(**) (*) não instalado por Default no Windows 7 e Windows 8 (**) https://www.hmailserver.com/ 20 Prof. Dr. Adriano Mauro Cansian 10
MTA (2) O MTA implementa o protocolo transporte mensagens (SMTP). Po enviar mensagens uma máquina para outra na mesma re. Po também redirecionar mensagens da re em que se encontra para outras res. Eventualmente res arquitetura radicalmente diferentes. Lembrar que não existem somente conexões e-mail através da Internet! O MTA também RECEBE as mensagens vindas do protocolo SMTP e eventualmente outros. O MTA não é apenas o SMTP. Existem muitas outras res, com arquiteturas diferentes, além diferentes camadas aplicação, que necessitam se comunicar aquadamente. 21 MTA (3) O MTA roteia a mensagem recebida do programa do usuário, com base no enreço eletrônico do stino. Toma cisão do que fazer. Para as mensagens em SAÍDA: O MTA recebe a mensagem vinda do programa do usuário (MUA); Interpreta o enreço eletrônico; Re-escreve o enreço das maneira apropriada para a entrega; e Roteia a mensagem através do método correto. Para as mensagens em ENTRADA: O MTA interpreta o enreço; Envia para o módulo entrega ao usuário (MDA à visto mais adiante); Ou redireciona para outro enreço. 22 Prof. Dr. Adriano Mauro Cansian 11
MTA (4) Além do roteamento entre programas usuário e programas entrega à o MTA realiza mais duas funções: Implementa o protocolo SMTP Simple Mail Transfer Protocol Padrão para mensagens na Internet à RFC-821. Permite criação aliases. Sinônimos enreços. 23 MTA (5) 24 Prof. Dr. Adriano Mauro Cansian 12
SMTP [RFC 821] Usa TCP para a transferência confiável mensagens correio do cliente ao servidor (porta 25/TCP). Transferência direta servidor remetente envia direto ao servidor receptor. Três fases da transferência (do SMTP / Não confunda com TCP!): Handshaking (cumprimento). Transferência das mensagens. Encerramento. Interação comando/resposta Comandos: texto ASCII Resposta: código e frase status. Mensagens precisam ser em ASCII 7-bits. 25 SMTP na Internet (1) Na Internet à a recepção e-mail ocorre na porta 25/TCP da máquina stino. Ou na 465/TCP ou 587/TCP se for ssl/autenticado. (exercício: administração best practice SMTP) O processo daemon nesta porta ve implementar o protocolo SMTP. Processo (daemon) aceita as mensagens que chegam e tenta encaminhá-las à caixa postal stino, reportando eventuais erros à máquina origem. 26 Prof. Dr. Adriano Mauro Cansian 13
SMTP na Internet (2) transmissão direta pelo servidor 27 SMTP na Internet (3) transmissão via SMTP server intermediário ISP 28 Prof. Dr. Adriano Mauro Cansian 14
Operação do SMTP (1) SMTP à todo baseado em texto. Uma vez estabelecida uma conexão à porta 25 do servidor, a máquina cliente aguarda uma resposta do servidor. O servidor envia uma linha texto indicando se está ou não preparado para receber email. Se o servidor aceita receber email, significa que o cliente SMTP aceita a recepção. Ocorre o livery. 29 Operação do SMTP (2) (diálogo SMTP) 30 Prof. Dr. Adriano Mauro Cansian 15
Operação do SMTP (3) 31 Exemplo diálogo e interação SMTP S: 220 doces.br C: HELO consumidor.br S: 250 Hello consumidor.br, pleased to meet you C: MAIL FROM: <ana@consumidor.br> S: 250 ana@consumidor.br... Senr ok C: RCPT TO: <bernardo@doces.br> S: 250 bernardo@doces.br... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Voce gosta chocolate? C: Que tal sorvete? C:. S: 250 Message accepted for livery C: QUIT S: 221 doces.br closing connection Observe a linha em branco terminando com um. 32 Prof. Dr. Adriano Mauro Cansian 16
Observe a linha em branco terminando com um. Fonte: hgp://computernetworkingsimplified.com/applicawon- layer/overview- email- works/ (17.11.2014) 33 SMTP Reply cos 34 Prof. Dr. Adriano Mauro Cansian 17
Alguns códigos SMTP agrupados por comando 35 SMTP SMTP usa conexões persistentes. SMTP requer que a mensagem (cabeçalho e corpo) sejam em ASCII 7-bits à já mencionado. Portanto, algumas caias caracteres não são permitidas numa mensagem. Por exemplo: <CR/LF>.<CR/LF> Uma vez que é usado pelo servidor SMTP para reconhecer o final da mensagem. Assim, em alguns casos, a mensagem necessita ser codificada. Geralmente em base-64 ou quoted printable. 36 Prof. Dr. Adriano Mauro Cansian 18
Exemplos interação Entre computadores sempre on- line Remetente Destinatário Editor Mensagem Agente Transporte De: A@origem.dom Para: B@stino.dom SMTP Visualizador Mensagem Agente Transporte Notificador Caixa Postal Agente Distribuição Local Computador A em origem.dom Computador B em stino.dom 38 Prof. Dr. Adriano Mauro Cansian 19
Dois computadores via ISP (1) Remetente Editor Mensagem Agente Transporte Computador A envio Agente Transporte SMTP ISP De: A@origem.dom Para: B@stino.dom SMTP Destinatário Agente Transporte Agente Distribuição Local Visualizador Mensagem Computador B ISP Agente Transporte recepção Caixa Postal..... Caixa Postal Agente Transporte POP ou IMAP 39 Dois computadores via ISP (2) 40 Prof. Dr. Adriano Mauro Cansian 20
Processo completo via ISP com POP3 41 Mail Relay ou bounce empresa.dom De: A@p1.empresa.dom Para: xxxxxxxxxxxxx Remetente A Editor Mensagem Agente Transporte SMTP Agente Transporte RELAY SMTP Caixa Postal........ Agente Distribuição Local Remetente B Caixa Postal.... Editor Mensagem Agente Distribuição Local De: B@p2.empresa.dom Para: xxxxxxxxxxxxx Caixa Postal Caixa Postal p1.empresa.dom p2.empresa.dom 42 Prof. Dr. Adriano Mauro Cansian 21
SPAM e relays abertos relay1.dom Spammer Agente Transporte De: spammer@relay1.dom Para: xxxxxxxxxxxxxx Editor Mensagem Agente Transporte De: spammer@ilegal.dom Para: xxxxxxxxxxxxxx............... Agente Transporte De: spammer@relay9.dom Para: xxxxxxxxxxxxxx relay9.dom 43 Entrega final: MDA e MUA MDA: Mail Delivery Agent MAA: Mail Access Agent 44 Prof. Dr. Adriano Mauro Cansian 22
MDA e MAA (1) Já mencionado: MTA e MUA: Agora veremos os outros dois componentes do sistema correio eletrônico: MDA: Mail Delivery Agent MAA - Mail Access Agent: 45 MDA e MAA (2) Agora veremos os outros dois componentes do sistema correio eletrônico: MDA: Mail Delivery Agent Entrega no mailbox Processamento filtragem Mais usado: Procmail MAA - Mail Access Agent: Acesso a servidores remotos para recuperação mensagens ( recebimento ). POP (Post Office Protocol) porta 110 Transmite mensagens apenas da caixa postal do servidor para a do cliente. IMAP (Internet Message Access Protocol) porta 143 Sincroniza as caixas postais do servidor e do cliente. 46 Prof. Dr. Adriano Mauro Cansian 23
MDA: Mail Delivery Agent Agente Distribuição Local. Responsável por entregar e arquivar a mensagem na caixa postal correta. Tem capacida filtrar mensagens. Alguns tem capacida processamento retorno (auto-responrs). Agentes mais conhecidos: Maildrop (fault). Procmail. Binmail. Safecat. 47 MAA - a entrega final Os mecanismos apresentados até aqui funcionam em máquinas capazes enviar ou receber e-mail. Na maior parte dos casos, essa premissa é falsa. Usuário tem o seu PC conectado a uma LAN. A LAN é que tem os servidores email. A transferência do email numa caixa postal para o PC do usuário é feita através dos protocolos POP3 (Post Office Protocol) ou IMAP (Internet Message Access Protocol). 48 Prof. Dr. Adriano Mauro Cansian 24
Entrega final: MDA e MUA Procmail ou outros 49 MAA: Mail Access Agent agente usuário SMTP SMTP POP3 ou IMAP agente usuário servidor correio do remetente servidor correio do receptor SMTP à entrega (armazena?) no servidor do receptor. MAA: Mail Access Agent : recupera do servidor. POP3: Post Office Protocol [RFC 1939] Mecanismo simples cliente servidor transferência. IMAP: Internet Message Access Protocol [RFC 1730] Mais comandos e mais opções (mais complexo). Acesso a mensagens armazenadas no servidor. 50 Prof. Dr. Adriano Mauro Cansian 25
POP3 51 Até aqui vimos todos os componentes do Correio eletrônico Procmail ou outros 52 Prof. Dr. Adriano Mauro Cansian 26
Anatomia um E- mail Cabeçalho, envelope, body MIME Formato uma mensagem e- mail RFC 822: padrão para formato mensagem texto: Linhas cabeçalho, p.ex., To: (obwdo do ENVELOPE) From: Subject: São diferentes dos comandos smtp! Corpo a mensagem, somente caracteres ASCII. Termina com um. ponto cabeçalho corpo linha em branco 54 Prof. Dr. Adriano Mauro Cansian 27
Envelope e hear (2) 55 Envelope e hear (1) 56 Prof. Dr. Adriano Mauro Cansian 28
Campos hear (1) 57 Campos hear (2) 58 Prof. Dr. Adriano Mauro Cansian 29
Exemplo hear E- mail Delivered-To: adriano.cansian@sjrp.unesp.br Received: by 10.70.38.201 with SMTP id i9csp238353pdk; Mon, 14 Oct 2014 14:46:10-0700 (PDT) X-Received: by 10.58.207.15 with SMTP id ls15mr3600453vec.17.1381787170131; Mon, 14 Oct 2014 14:46:10-0700 (PDT) Return-Path: xxxa@gmail.com Received: by angel.acmesecurity.org (Postfix) id 217BCDEBAC; Mon, 14 Oct 2014 18:46:07-0300 (BRT) Delivered-To: adriano@acmesecurity.org Received: by angel.acmesecurity.org (Postfix, from userid 65534) id 1FC24DEBAF; Mon, 14 Oct 2014 18:46:07-0300 (BRT) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on angel.acmesecurity.org X-Spam-Level: X-Spam-Status: No, score=0.9 required=4.0 tests=freemail_from,html_message, RCVD_IN_DNSWL_LOW,SUBJ_ALL_CAPS,T_FREEMAIL_DOC_PDF autolearn=no version=3.3.2 Received: from mail-qe0-f49.google.com (mail-qe0-f49.google.com [209.85.128.49]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by angel.acmesecurity.org (Postfix) with ESMTPS id CD606DEBAC for <adriano@acmesecurity.org>; Mon, 14 Oct 2014 18:46:00-0300 (BRT) Received: by mail-qe0-f49.google.com with SMTP id a11so639104qen.8 for <adriano@acmesecurity.org>; Mon, 14 Oct 2014 14:45:58-0700 (PDT) Mon, 14 Oct 2014 14:45:58-0700 (PDT) Received: by 10.49.35.137 with HTTP; Mon, 14 Oct 2014 14:45:57-0700 (PDT) Date: Mon, 14 Oct 2014 18:45:57-0300 Message-ID: <CAEEv5YB=fTMxeUaj=Ht4PrfEFvfT5hVotipuWF0qXJdRWjsr5g@mail.gmail.com> Subject: NADA COMO SER FAMOSO ;-) From: Otavio Cunha <xxxa@gmail.com> To: Adriano Cansian <adriano@acmesecurity.org> Content-Type: multipart/mixed; boundary=001a11c2c0d4b66504e8ba64b6 59 Formato MIME Ou: enviando mensagens mulwmídia em algo que foi feito pra enviar texto puro. Prof. Dr. Adriano Mauro Cansian 30
MIME (Mul@purpose Internet Mail Extension) Além texto, po ser necessário enviar e receber outros tipos informação, tais como: Mensagens em linguagens com caracteres especiais. Mensagens em outros alfabetos. Mensagens em linguagens pictográficas (ex. chinês). Mensagens com outras mídias. Propósito do MIME é acrescentar regras codificação para outros tipos informação que não sejam texto puro. 61 Evolução RFC-821: Protocolo SMTP (1982) RFC-822: Standard for the Format ofarpa Internet Text Messages (1982) RFC-2045 e RFC-2046- Multipurpose Internet Mail Extensions (MIME) Part-I e Part-II (1996) RFC-2822: Internet Message Format (2001) Revisa e atualiza o RFC-822 (torna este obsoleto). 62 Prof. Dr. Adriano Mauro Cansian 31
Formato uma mensagem MIME MIME: multimedia mail extension: RFC 2045 e 2046 Linhas adicionais no cabeçalho da mensagem. claram tipo do conteúdo MIME. versão MIME método usado para codificar dados tipo, subtipo dados multimídia, claração parâmetros Dados codificados From: ana@consumidor.br To: bernardo@doces.br Subject: Imagem uma bela torta MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encod data.........base64 encod data 63 Tipos MIME Fomato: Content-Type: tipo/subtipo; parâmetros Text sub- Wpos: plain, html, charset= iso-8859-1, ascii Image sub- Wpos exemplos : jpeg, gif, tiff. Vio sub- Wpos exemplos : mpeg, quicktime, MP4 Audio Sub- Wpos exemplos : basic (8- bit codificado mu- law), 32kadpcm (codificação 32 kbps), MP3 ApplicaWon Outros dados que precisam ser processados por um leitor para serem visualizados. subwpos exemplos : msword, octet-stream 64 Prof. Dr. Adriano Mauro Cansian 32
Delimitador MIME From: ana@consumidor.br limitador To: bernardo@doces.br Subject: Imagem uma bela torta MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain caro Bernardo, Anexa a imagem uma torta liciosa. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encod data.........base64 encod data --98766789-- 65 MIME 66 Prof. Dr. Adriano Mauro Cansian 33
Tipos e subwpos 67 Aliases Prof. Dr. Adriano Mauro Cansian 34
Aliases (1) Aliases são sinônimos enreços e-mail à muito importantes para o servidor MX. São usados para: Criar nomes falsos ou apelidos para contas usuários verdairos. Redirecionar (forward) e-mail para outros hosts ou enreços. Criar listas distribuição mensagens. Os aliases são finidos no arquivo /etc/aliases (ou equivalente no seu sistema). Em alguns sistemas este arquivo aliases po ser /usr/lib/aliases 69 Aliases (2) Sintaxe configuração /etc/aliases nome_do_alias: stinatario [, stinatario,...] Nome_do_alias à é o nome para on o e-mail é enreçado (o enreço para o qual ele chega). recipient à é o nome verdairo para on o e-mail ve ser entregue. O recipient po ser à um username válido, o nome outro alias, ou um enreço e-mail completo, contendo username e hostname. Vários recipients pom ser associados a um único alias à forma-se uma lista distribuição. 70 Prof. Dr. Adriano Mauro Cansian 35
Exemplo /etc/aliases 71.forward Em adição ao redirecionamento fornecido pelo /etc/ aliases o sistema e-mail permite finir enreços redirecionamento pessoal (forward). Usuário à po finir o redirecionamento sejado em seu arquivo ~/.forward (no seu home-dir pessoal). O MDA verifica este arquivo após verificar os aliases do sistema, e antes realizar a entrega final para o usuário. Se o.forward existe para o usuário, ele realiza a entrega conforme a configuração ste arquivo. A sintaxe é a mesma usada no /etc/aliases. 72 Prof. Dr. Adriano Mauro Cansian 36
Esquema geral do e- mail 73 74 Prof. Dr. Adriano Mauro Cansian 37
Resumo Neste tópico vimos: 1. Todos os fundamentos importantes sobre e-mail. Todos os componentes: MUA, MTA, SMTP, MDA, MAA, 2. Funcionamento talhado do e-mail e do SMTP. Interações para envio uma mensagem, hears e envelope. 3. Anatomia um email. 4. Formato MIME. 5. Aliases e forward. 75 Créditos e orientações para estudo Créditos - este material foi produzido a partir do livro: Hunt, Craig TCP/IP Network Administration Edit. O Reilly & Associates, Inc. - 1.a Edição - Capítulo 10. e outros materiais em: http://computernetworkingsimplified.com/application-layer/overview-email-works/ Figuras e textos outros autores utilizados com finalida didática. 76 Prof. Dr. Adriano Mauro Cansian 38
Exercício / AWvida / Homework DANE DNS- Based Authen@ca@on of Named En@@es Maneira autenwcar chaves enwdas TLS clientes e servidores, sem a necessida uma autorida cerwficadora, armazenando- as no sistema DNS. UWliza recursos do DNSSEC. RFC- 6698 up://up.registro.br/pub/gter/gter39/11- SmtpReforcado.pdf 77 Prof. Dr. Adriano Mauro Cansian 39