Correio Eletrônico & Sendmail Sendmail Índice • • • • Parte A: Introdução Parte B: Configuração Parte C: Referências Parte D: Atividades Práticas Sendmail Introdução Parte A: Introdução • • • • • Objetivo Funcionalidades Roteamento de Mensagens Formato de Mensagens SMTP Sendmail Roteamento de Mensagens Parte A: Introdução mail uux TCP/IP Local Sendmail mh UUCP Sendmail SMTP Protocol Parte A: Introdução Connecting to npd1.npd.ufpe.br HELO mail.di.ufpe.br MAIL FROM: [email protected] RCPT TO: [email protected] DATA ... <CR><LF>.<CR><LF> QUIT 220 npd1.npd.ufpe.br Ready 250 npd1.npd.ufpe.br 250 OK 250 OK 354 Start mail 250 OK 221 npd1.npd.ufpe.br Closing Sendmail Componentes do Email Parte A: Introdução SMTP/TCP Área de saída (spool directory) Usuário envia mail Interface do Usuário Email Server SMTP/TCP Usuário lê mail Mailboxes (incomming mail) Agente de Entrega Sendmail POP Server Parte A: Introdução POP request/TCP ok User/passwd Usuário lê mail Interface do Usuário ok Send the mailbox Mailboxes (incomming mail) Email Server SMTP/TCP Lê Mailbox do usuário Sendmail Objetivo Parte A: Introdução • Processamento e roteamento de mensagens do correio eletrônico em plataformas UNIX: – Mecanismos de Entrega: • SMTP (Simple Message Transfer Protocol) • UUCP (User-to-User Copy Program) • Local Mail – Formatação de Endereços: [email protected] root!netbbs Sendmail Funcionalidades Parte A: Introdução • Processamento e roteamento de mensagens: – – – – Aceitar a mensagem do agente do usuário ou SMTP Interpretar o endereço do usuário destinatário Escrever o endereço no padrão do programa de entrega Rotear a mensagem para o programa de entrega • Manipulação de base de dados de aliases: – Permite implantação de listas de distribuição Sendmail Formato das Mensagens Parte A: Introdução Cabeçalho From [email protected] Sat Feb 7 08:11:44 1993 Delivery-Date: Sat, 07 feb 93 08:11:45 PST Return-Path: [email protected] Received: from recife.di.ufpe.br by npd1.npd.ufpe.br (4.1/1.11) id AA04599; Sat, 7 Feb 93 08:11:44 PST Date: Sat, 7 Feb 93 08:11:43 PST From: [email protected] (Gledson Elias) Message-Id: <[email protected]> Subject: Teste To: [email protected] Corpo Esta é uma mensagem para teste Sendmail MIME Extensions • • • • • Parte A: Introdução Multipurpose Internet Mail Extensions Permite transmitir arquivos que não são ASCII Não altera ou substitui o SMTP Permite codficar um dados no formato ASCII Cada mensagem inclui informações que descrevem o formato dos dados codificados – Exemplo de header.... • Mensagem com Múltiplas partes – Exemplo de mensagem.... Sendmail MIME Extensions • Informações do header: Parte A: Introdução – MIME-Version – Content-Type • Content-type • Subtype – image/gif – Content-Transfer-Encondig • “base64” • Interface do usuário é capaz de decodificar a mensagem automaticamente e executar a aplicação adequada Sendmail Configuração Parte B: Configuração • • • • • • • • • Informações Estrutura de Arquivos Aliases Compilando o Sendmail Primitivas de Configuração Processamento de Endereços Integração com DNS Configurando o Check_* Executando o Servidor Sendmail Informações Parte B: Configuração • Sendmail 8.?.? http://www.sendmail.org • Spam de mail: – Evitar spam de mail compilando o sendmail junto com pacote check_*: http://www.sendmail.org Sendmail Estrutura de Arquivos Parte B: Configuração / var etc mqueue mail Pacote Check_* Fila de Mensagens aliases sendmail.cf sendmail.cw Sendmail Etrutura de Arquivos Parte B: Configuração • Fila de Mensagens: – Armazenar mensagens para processamento – Implementada no diretório /var/spool/mqueue: • Diretório da fila de mensagens pode ser definido na configuração do sendmail qf df lf tf xf Cabeçalho da mensagem e o arquivo de controle Corpo da mensagem Lock para a mensagem Versão temporária do arquivo qf Arquivo temporário de mensagens de erro do mailer Sendmail Aliases Parte B: Configuração • Objetivo: – Definir apelidos (alias) para usuários individuais – Definir forwarding de mensagens – Implementar Listas de Discussão • Configurados no arquivo /etc/aliases: – O arquivo de aliases pode ser definido na configuração do sendmail Sendmail Aliases Parte B: Configuração • Formato: alias: recipient [, recipient, ...] • Exemplos: postmaster: ari Mailer-daemon: postmaster gledson: [email protected] instrutores: ari, gledson, teresa Sendmail Aliases Parte B: Configuração • Construção do Mapa dbm: – Sendmail não utiliza o arquivo /etc/aliases diretamente – Definições de aliases devem ser processadas para gerar mapa dbm utilizado pelo Sendmail: newaliases sendmail -bi Sendmail Compilando o Sendmail Parte B: Configuração # cd /usr/local # zcat sendmail.8.8.8.tar.gz | tar xvf # cd sendmail-8.8.8/src # sh makesendmail # sh makesendmail install Sendmail Compilando o Sendmail Parte B: Configuração • Geração do arquivo /etc/sendmail.cf: OSTYPE(bsd4.4)dnl HACK(spammers) HACK(spamdoms) HACK(check_mail) HACK (use_ip) HACK(use_names) HACK(use_relayto) HACK(check_rcpt4) Sendmail Compilando o Sendmail Parte B: Configuração • Geração do arquivo /etc/sendmail.cf: – Gerar o sendmail.cf com o pré-processador m4 – Copiar sendmail.cf para /etc/sendmail.cf # cd /usr/local/sendmail-8.8.8/cf/cf # m4 ../m4/cf.m4 generic-bsd4.4.mc > sendmail.cf # cp sendmail.cf /etc/sendmail.cf Sendmail Primitiva de Configuração Parte B: Configuração • Ambiente de execução do sendmail • Regras para escrever endereços na sintaxe apropriada do mecanismo de entrega • Regras para mapeamento de endereços em instruções necessárias para enviar as mensagens Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – Estrutura Geral: • Informações Locais • Macros • Classes • Regras de Mapeamento • Mailers Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – Macros & Classes: • Domínios de recepção: Cwlab.ufpe.br Fw/etc/sendmail.cw • Nome oficial do host: Dj$w.lab.ufpe.br – Definido somente se o sendmail não conseguir determinar automaticamente Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – Macros & Classes: • Domínio do endereço origem de mensagens enviadas: DMlab.ufpe.br • Usuários que enviam identificação do host nos endereços origem de mensagens enviadas: CE root Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – Opções: • Evitar execução de EXPN e VRFY: O PrivacyOptions=goaway | noexpn,novrfy • Arquivo de Aliases: O AliasFile=/etc/aliases • Diretório da Fila de Mensagens: O QueueDirectory=/var/spool/mqueue Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – Mailers: Mmailer, {field=value} Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u Msmtp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h Sendmail Primitiva de Configuração Parte B: Configuração • Modificando o arquivo /etc/sendmail.cf: – RuleSets: Sn Rpattern transformation comment R$*<$+>$* $2 Gledson Elias $* $1 < < user@domain [email protected] $+ $2 [email protected] > > $* $3 Sendmail Processamento de Endereços Parte B: Configuração Agente de Entrega mailer, host, user 0 Endereço Origem 1 S 3 4 2 R Endereço Destino Sendmail Integração com o DNS Parte B: Configuração • Configuração: – Administrador dever cadastrar no DNS um Servidor de Mail para o domínio: • Mail Exchanger (MX) • Consultas: – Sendmail utiliza o DNS para descobrir o endereço IP do Servidor de Mail do endereço destinatário: [email protected] [email protected] Sendmail Configurando o Check_* Parte B: Configuração /etc mail LocalIP Spammer LocalNames RelayTo SpamDomains Sendmail Configurando o Check_* Parte B: Configuração • Arquivos do check_*: – /etc/mail/LocalIP: • Endereços IP utilizados na rede local 150.161.6 – /etc/mail/LocalNames: • Domínios que o servidor responde como mailserver lab.ufpe.br Sendmail Configurando o Check_* Parte B: Configuração • Arquivos do check_*: – /etc/mail/RelayTo: • Domínios que o servidor redireciona mensagens lab.ufpe.br – /etc/mail/SpamDomains: • Domínios bloqueados por serem fonte de spamming abc.def.br Sendmail Configurando o Check_* Parte B: Configuração • Arquivos do check_*: – /etc/mail/Spammer: • E-mails de spammers que devem ser bloqueados [email protected] Sendmail Executando o Servidor Parte B: Configuração • Executado como daemon no boot do sistema: /usr/sbin/sendmail [-bd] [-bi] [-bp] [-bt] [-q] [-Cfile] -bd: Executar como daemon -bi: Reconstruir a base de dados de aliases -bp: Mostrar status da fila de mensagens -bt: Executar em modo de teste de endereços -q: Intervalo de processamento da fila de mensagens -C: Utilizar arquivo de configuração file Sendmail Referências Bibliográficas Parte C: Referências Bibliográficas • TCP/IP Network Administration Craig Hunt O’Reilly & Associates • Sendmail Bryan Costales, Eric Allman e Neil Rickert O’Reilly & Associates • Como evitar os famigerados Spams de Mail http://www.rnp.br/newsgen/9712/spam.shtml • RFC’s 822, 821, 1123, 819, e 976 Sendmail