Sendmail

Propaganda
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
Download