Você está na página 1de 49

Prof.

:ErlonSousaPinheiro

Postfix
Message Transfer Agent

Erlon Sousa Pinheiro - 2012


Histria
MTA desenvolvido por Wietse Venema
(Pesquisador da IBM)
Inicialmente conhecido
como Vmailer (1998)
Escrito em C
Bancado pela IBM
Histria
Concebido originalmente como uma
alternativa para o sendmail visando:
Confiabilidade;
Segurana;
Performance;
Flexibilidade;
Facilidade de uso;
Compatibilidade com o Sendmail.
Elementos de um sistema de
Correio Eletrnico
MUA Mail User Agent
Ex.: Thunderbird, Evolution, Outlook
MTA Mail Transport Agent
Ex.: Exim, Qmail, Postfix, Sendmail
MDA Mail Delivery Agent
Ex.: Procmail, Maildrop, Jegue-Filter
MAA Mail Access Agent
Ex.: Courier-Imap, Courier-Pop, Cyrus-Pop
Principais protocolos utilizados por
sistemas de correio eletrnico

SMTP Simple Mail Transport Protocol


Usado para enviar mensagens
Definido na RFC 2821
Porta padro: 25
Exemplo de entrega de correio por smtp

$ telnet 200.212.1.2 25
Efetuada tentativa de conexo no host
200.212.1.2 na porta 25 (smtp)
trying 200.212.1.2
Connected to localhost.
Escape character is '^] '.
Conexo efetuada com xito, o servidor lhe
dar as boas vindas com o banner:
220 mail.cursof13.com.br ESMTP Postfix
Exemplo de entrega de correio por smtp
Aps receber o banner de boas vindas, se
identifique atravs do comando HELO
HELO mail.f13.com.br
O servidor lhe responder com uma
mensagem de sucesso:
250 mail.f13.com.br
Indique de quem esta mensagem esta vindo
com o comando MAIL FROM
MAIL FROM: professor@f13.com.br
O servidor aceitar o remetente:
250 Ok
Exemplo de entrega de correio por smtp

Indique para quem esta mensagem esta indo


com o comando RCPT TO:
RCPT TO: fulano@cursof13.com.br
O servidor aceitar o destinatrio:
250 Ok
Agora o contedo da mensagem pode ser
enviado, o comando DATA informar ao
servidor que voc tem uma mensagem (RFC
2822) para transferir
DATA
Exemplo de entrega de correio por smtp
O servidor responde que aceitou o seu
comando e que est esperando voc iniciar o
envio dos dados:
354 End data with <CR><LF>.<CR><LF>
Nesse ponto voc pode transferir o contedo
de sua mensagem, finalizando-a com o
caracter . na ltima linha.
Teste de envio de mensagem
.
O servidor interpreta o fim da mensagem e a
grava na fila, informando seu identificador:
250 Ok: queued as 5FA21DQW
Exemplo de entrega de correio por smtp

Voc poder finalizar a conexo com o


comando quit:
QUIT
O servidor retornar o sucesso da solicitao e
desconecta:
221 Bye
Connection closed by foreign host.
$
Cdigos de resposta em uma
conexo smtp

2xx A requisio solicitada obteve


sucesso, o cliente pode continuar para
o prximo passo
3xx Comando foi aceito, mas o
servidor espera por informaes
adicionais, o cliente pode enviar outro
comando com tais informaes
Cdigos de resposta em uma
conexo smtp

4xx Comando no obteve sucesso,


mas o problema temporrio, o cliente
pode tentar novamente posteriormente
5xx Comando no obteve sucesso, e
o problema considerado permanente,
o cliente no deve tentar novamente
Principais protocolos utilizados por
sistemas de correio eletrnico

POP Post Office Protocol


Usado para receber mensagens
Definido na RFC 1939
Porta padro: 110
Principais protocolos utilizados por
sistemas de correio eletrnico

IMAP Internet Mail Application Protocol


Usado para ler e gerenciar correio
remotamente no servidor;
Definido na RFC 2060
Porta padro: 143
Instalao a partir do cdigo fonte

$ wget
http://ftp.unicamp.br/pub/postfix/offi
cial/postfix-2.4.0.tar.gz
$ tar zxvf postfix-2.4.0.tar.gz -C
/usr/src
$ make
$ make install
Instalao em sistemas
Debian e derivados
apt-get update
Atualizao da listagem de softwares
disponveis para instalao a partir dos
repositrios debian
apt-get install postfix
Efetua o download do pacote .deb, executa
a instalao do postfix e de suas
dependncias.
Opes para o Daemon Postfix

postfix {start|stop|restart|reload|
flush|check|abort|force-reload}.
start Inicia o Postfix
stop para o Postfix
restart Reinicia (stop ; start)
reload Rel as configuraes
Opes para o Daemon Postfix

postfix {start|stop|restart|reload|
flush|check|abort|force-reload}.
flush Fora o envio das mensagens
check Verifica sintaxe dos arquivos
de configurao
abort Para o postfix naquele
momento
force-reload Rel as configuraes
Arquitetura do Postfix
Dividido em vrios daemons separados
que se comunicam entre si com
responsabilidades diferentes;
Podem ser executados em contextos
diferentes de segurana;
Daemons carregados sob demanda e
supervisionados pelo daemon principal:
master;
Em sistemas Debian: /usr/lib/postfix
Formatos de Caixa Postais -
mbox

Armazena todas as mensagens do


usurio em um nico arquivo;
O arquivo tem o nome do usurio e fica
armazenado em /var/spool/mail ;
Dificulta a excluso de mensagens;
Apresenta obstculos quando mltiplos
processos tentam acessar o arquivo;
Formatos de Caixa Postais -
maildir
Utiliza estrutura de diretrios e 1 e-mail
por arquivo;
A excluso das mensagens sempre
mais rpida;
Leva mais tempo para montar a lista de
e-mails;
No existe dificuldades para acesso
simultneo pelo formato 1 mail/file;
Formatos de Caixa Postais -
maildir
Um diretrio Maildir tem normalmente
3 sub-diretrios:
cur(mensagenslidas)
new(mensagensentreguesmasnolidas)
tmp(diretriotemporrio)
Ferramenta para criao de uma pasta
maildir: maildirmake
Diretrios usados pelo postfix
(em um sistema Debian)
/etc/postfix
Diretriodeconfiguraes
/var/log/postfix
Localondeserogeradososlogs
/var/spool/postfix
Nessediretriosogerenciadastodasasfilasdo
postfix
Diretrios usados pelo postfix
(em um sistema Debian)

/usr/lib/postfix
Diretriocomosdaemonseagentesdeentrega
/usr/share/doc/postfix
Documentaodopostfix
Arquivos de Configurao
/etc/postfix/main.cf - Parmetros que
controlam o comportamento dos
processos do daemon do postfix;
Formatodeatribuio:
parmetro=valor
Cada parmetro s deve ser setado 1 vez (se for
setado mais de uma vez, a que vale a ltima
atribuio);
A ordem em que os parmetros so listados no
importante;
Arquivos de Configurao
A ordem em que os valores esto setados nos
parmetrosimportante,ex.:
parametro=A,B
diferentede
parametro=B,A
Se o valor de um parmetro no for especificado
nomain.cfopostfixassumirovalorpadro
Comentriossoiniciadoscom#
Arquivos de Configurao
possvel referenciar parmetros como valores de outros
parmetros,ex.:
mydomain=exemplo.com
mydestination=$mydomain,localhost
Para quebrar parmetros com valores extensos, voc pode
quebraloemvriaslinhascolocandopelomenos1espaono
iniciodecadalinhasubsequente,ex.:
smtpd_recipient_restrictions=permit_mynetworks,
reject_unauth_destination,
reject_non_fqdn_hostname,
reject_unknown_sender_domain
Visualizao dos parmetros
O Postfix possui um utilitrio para
visualizao dos parmetros
atualmente configurados, o postconf ,
ex.:
$postconfmydestination
mydestination=$mydomain,teste.com.br
A opo -d mostra o valor padro para
o parmetro solicitado, se no for
passado nenhum parmetro, todos
sero mostrados.
Arquivos de Configurao

/etc/postfix/master.cf - Configura o
daemon principal do postfix;
Cada linha define um servio que um
programa executa;
Comentrios so iniciados com #
Define quais servios podem ser
executados em chroot
Logs do Postfix
(em um sistema Debian)

/var/log/mail.log - Log do postfix


O syslog divide as informaes em 3
outros arquivos para facilitar a analise
das informaes:
/var/log/mail.err
/var/log/mail.warn
/var/log/mail.info
Exemplo de conexo
Mar 9 18:09:08 ruffles postfix/smtpd[26866]: connect from wf-out-1314.google.com[209.85.200.168]

Mar 9 18:09:08 ruffles postfix/smtpd[26866]: E0C1F3D7121: client=wf-out-


1314.google.com[209.85.200.168]

Mar 9 18:09:09 ruffles postfix/cleanup[26869]: E0C1F3D7121: message-


id=<a0eac4660803091409s4a0f3110gaf69bff4795020ea@mail.gmail.com>

Mar 9 18:09:09 ruffles postfix/cleanup[26869]: E0C1F3D7121: warning: header From: "Erlon Sousa
Pinheiro" <erlons@gmail.com> from wf-out-1314.google.com[209.85.200.168];
from=<erlons@gmail.com> to=<erlon@f13.com.br> proto=ESMTP helo=<wf-out-
1314.google.com>

Mar 9 18:09:09 ruffles postfix/cleanup[26869]: E0C1F3D7121: warning: header Subject: Teste from
wf-out-1314.google.com[209.85.200.168]; from=<erlons@gmail.com> to=<erlon@f13.com.br>
proto=ESMTP helo=<wf-out-1314.google.com>

Mar 9 18:09:09 ruffles postfix/qmgr[28214]: E0C1F3D7121: from=<erlons@gmail.com>, size=2168,


nrcpt=1 (queue active)

Mar 9 18:09:09 ruffles postfix/pipe[26870]: E0C1F3D7121: to=<erlon@f13.com.br>,


relay=jeguepanel, delay=1.1, delays=0.7/0.01/0/0.39, dsn=2.0.0, status=sent (delivered via
jeguepanel service)

Mar 9 18:09:09 ruffles postfix/qmgr[28214]: E0C1F3D7121: removed

Mar 9 18:09:39 ruffles postfix/smtpd[26866]: disconnect from wf-out-


1314.google.com[209.85.200.168]
Gerenciamento da fila de correio
Gerenciamento da fila de correio

Listando mensagens na fila:


postqueue -p
Apagando mensagens na fila:
postsuper -d <message ID>
postsuper -d ALL
Gerenciamento da fila de correio
Barrando/Isolando mensagens
postsuper -h <message ID>
Retornando as mensagens para a fila
normal
postsuper -H <message ID>
Reenfileirando mensagens que esto
na fila deferred
postsuper -r ALL
Gerenciamento da fila de correio

Visualizando o contedo de um e-mail


postcat -q <message ID>
Visualizando o contedo de um e-mail
postcat -q <message ID>
Forando a entrega de mensagens
postqueue -f
Procmail
MDA mais utilizado.
Padro em sistemas Debian
mailbox_command = procmail -a "$EXTENSION"
Componentes:
/etc/procmailrc
~/.procmailrc
/usr/bin/procmail
Procmail
Formato de um filtro procmail:

:0 [opes] [: [lock-file] ]
condio (expresso regular)
ao
Procmail
Exemplo:

:0
* ^From.*chefe@.*
diretoria
Procmail
Exemplo:

:0
* ^Subject.*determinado_assunto.*
! meu-email@gmail.com
Procmail
Exemplo:

:0
* ^Subject.*determinado_assunto.*
{
:0 c
! meu-email@gmail.com
:0
| gzip >> arquivo_morto.gz
}
Courier-Pop / Courier-Imap
Courier-Pop / Courier-Imap

aptitude install courier-imap courier-pop


No postfix:
home_mailbox = Maildir/
Arquivos de configurao:
/etc/courier/pop3d
/etc/courier/imapd
dovecot

aptitude install dovecot-imapd dovecot-pop3d


Arquivos de configurao:
/etc/dovecot/dovecot.conf
Bibliografia
DENT, Kyle D. - Postfix The Definitive
Guide. O'Reilly 2003
BCK, Magnus Servidor de e-mail
Linux, Guia de instalao, configurao
e gerenciamento para pequenos
escritrios. Pearson 2007
QMQP: Quick Mail Queueing Protocol -
http://cr.yp.to/proto/qmqp.html
Bibliografia
Postfix Virtual Domain Hosting Howto
http://www.postfix.org/VIRTUAL_README.html
KyaPanel - http://www.kyapanel.com.br
http://www.antispam.br/admin
Perguntas ?
Contatos

Erlon Sousa Pinheiro


erlon@f13.com.br
icq: 4509075
msn: erlon_sousa_pinheiro@hotmail.com
skype: erlonpinheiro
gtalk: erlons@gmail.com
jabber: erlon_pinheiro@jwchat.org

85 8868 9995
85 8804 6590
85 3252 3836

http://www.f13.com.br

Você também pode gostar