Postfix - Relay agent

Neste artigo, vou apresentar um servidor local Postfix como Relay Agent, com autenticação SASL, sem suporte à criptografia (Plain Login) e montar tabelas do tipo hash DB, para o cadastro dos usuários da rede local utilizando diferentes serviços de e-mail.

[ Hits: 40.155 ]

Por: Perfil removido em 19/03/2013


Conceitos básicos



Antes de continuarmos, gostaria de comentar alguns conceitos básicos:

MUA - Mail User Agent :: É o nome dado ao programa de correio eletrônico do usuário, como Evolution, Thunderbird, Sylpheed, entre outros.

MTA - Mail TTransport Agent :: É o responsável por transportar o e-mail de um servidor SMTP para outro servidor SMTP. Exemplos: Postfix, Exim, Sendmail, entre outros.

Hash - Tipo de mapa cujo significado é :: Base Indexada Baseada em Hash ( Berkley DB).

Mapas :: O Postfix utiliza extensivamente o conceito de "mapas". Mapas, nesse ambiente, são basicamente tabelas de duas colunas:
  • A primeira é a chave;
  • A segunda são os valores dessa chave.

Mapas do tipo DB, são os mais simples e usuais. Exemplo: para um mapa que conterá uma lista de endereços IPs e uma ação a ser tomada, criamos primeiro um arquivo texto com esse conteúdo:

192.168.10.15      REJECT
192.168.10.20      REJECT
dominio.net          REJECT
network.com          OK


Agora, vamos converter esse arquivo para um mapa DB:

# postmap /etc/postfix/client_access

Esse é o arquivo que o Postfix usará ao encontrar: hash:/etc/postfix/client_access

SMTP - Simple Mail Transfer Protocol ("Protocolo de transferência de correio simples") :: É o protocolo padrão para envio de e-mails através da Internet. É um protocolo relativamente simples, baseado em texto simples, onde um ou vários destinatários de uma mensagem são especificados (e, na maioria dos casos, validados) sendo, depois, a mensagem transferida.

DNS - Domain Name Server :: É um dos servidores mais importantes da infra-estrutura da Internet, permitindo a localização ágil de máquinas e serviços, como por exemplo um servidor de correio eletrônico através do registro MX (Mail Exchangers) na configuração do BIND 9.

A linha IN MX no BIND é necessária sempre que você pretende usar um servidor de e-mail ou outro MTA. Mas assim como o servidor DNS, você pode utilizar um servidor de e-mails secundário que passa a receber os e-mails, caso o seu servidor de e-mails principal saia do ar, ou mesmo utilizar o servidor secundário como backup das mensagens de e-mail.

Mas é necessário esclarecer, que o protocolo SMTP prevê falhas nos links entre os servidores, sendo que, caso o servidor de e-mails principal esteja fora do ar, o emissor tenta contactá-lo durante um longo período (por padrão 03 dias) antes de utilizar o servidor secundário. Por isso, usar vários servidores não resolve o problema, pois em caso de falhas do servidor primário, as mensagens chegarão com grande atraso.

POP3 - Post Office Protocol :: É o protocolo que permite aos usuários acessar as mensagens contidas na sua caixa postal no servidor.

IMAP - Internet Messeges Access Protocol :: Protocolo muito utilizado em Webmail, são mais completos, mas oferecem uma flexibilidade maior.

Relay :: Quando um usuário utiliza o servidor SMTP dentro de uma empresa corporativa para enviar uma mensagem, este servidor SMTP irá fazer o relay desta mensagem para o destino.

Neste caso, o servidor de e-mail está configurado para permitir o relay dos usuários da rede interna, seria o mesmo que fazer uma ligação telefônica utilizando uma telefonista.

Antigamente se falava em servidores de e-mails com relay aberto, ou seja, sem autenticação para prática do spam. Isto é verdade, mas não se deve associar relay com spam, pois todos os servidores de e-mail fazem relay. A questão é em que condições este relay é feito.

Spam :: Um spammer seria uma pessoa que utiliza um servidor de e-mail ou uma rede que não lhe pertence para enviar mensagens para um grande número de destinatários, sem a necessidade de se identificar (autenticar) com um nome válido no campo origem (source) da mensagem. Conseguindo, assim, enviar uma grande quantidade de mensagens "maliciosas" sem a solicitação desses usuários.

Bancos de dados (ou bases de dados) :: São utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador, são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação, normalmente agrupa registros utilizáveis para um mesmo fim e é acessado por um software chamado Sistema Gerenciador de Banco de Dados (SGDB). Os mais conhecidos são: MySQL, Postgres e Oracle.

LDAP - Lightweight Directory Access Protocol (ou LDAP) :: É um protocolo para atualizar e pesquisar diretórios rodando sobre TCP/IP.

Um diretório LDAP geralmente segue o modelo X.500, que é uma árvore de nós, cada um consistindo de um conjunto de atributos com seus respectivos valores. O LDAP foi criado como uma alternativa ao muito mais incômodo Directory Access Protocol (DAP).

Fonte: LDAP – Wikipédia, a enciclopédia livre

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Conceitos básicos
   3. Postfix / Usuário
   4. Configurando o relay agent
   5. Autenticação SASL
   6. Conclusão
Outros artigos deste autor

Trabalhando com subredes

Configurando servidor Samba como Workgroup no Slackware

Backup automático em Shell Script

Mplayer e Mencoder com placa de TV

Usando o gerenciador de arquivos XFE para administrar as tarefas no Linux

Leitura recomendada

Cluster de Alta disponibilidade do Zimbra Collaboration System

Openfire no SLES 10 autenticando no Active Directory

Zimbra Collaboration Suite 5.0 no Debian 4 autenticando no Active directory

Migração Zimbra com Zextras Migration Tool

Post-la - Gerador de relatórios para o Postfix

  
Comentários
[1] Comentário enviado por dolivervl em 21/03/2013 - 13:52h

Parabéns pelo artigo, contribuiu muito com a comunidade !!!

[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

[3] Comentário enviado por removido em 25/03/2013 - 18:37h


[1] Comentário enviado por dolivervl em 21/03/2013 - 13:52h:

Parabéns pelo artigo, contribuiu muito com a comunidade !!!


muito obrigado.

[4] Comentário enviado por removido em 25/03/2013 - 18:39h

okkkkkkkkkkkkk,

obrigado.

[5] Comentário enviado por removido em 25/03/2013 - 18:53h


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney


muito obrigado.

[6] Comentário enviado por rotaviano em 26/03/2013 - 14:13h


rulios....é o seguinte cara.... estou tentando agora configurar o postfix com o meu hotmail.com ou gmail.com

e nao estou conseguindo...

junto com o postfix estou utilizando o mutt . . . creio que nao precisa configurar nada nele... mas quando visualizo o log da mensagem que estou enviando ocorrem erros...

voce poderia me ajudar ?

vlw



[5] Comentário enviado por rulios em 25/03/2013 - 18:53h:


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

muito obrigado.



[7] Comentário enviado por rodrigo as em 26/03/2013 - 16:32h

Boas ruilos, estou configurando um servidor de email que está atrás de um adsl com ip dinamico, vi o seu tópico e me enteressei, fiz algumas pesquisas mas não consigo ter uma visão clara de como funciona o relay.
Acaso poderia me dar algumas explicações.

T+

[8] Comentário enviado por removido em 26/03/2013 - 16:40h


[6] Comentário enviado por rotaviano em 26/03/2013 - 14:13h:


rulios....é o seguinte cara.... estou tentando agora configurar o postfix com o meu hotmail.com ou gmail.com

e nao estou conseguindo...

junto com o postfix estou utilizando o mutt . . . creio que nao precisa configurar nada nele... mas quando visualizo o log da mensagem que estou enviando ocorrem erros...

voce poderia me ajudar ?

vlw



[5] Comentário enviado por rulios em 25/03/2013 - 18:53h:


[2] Comentário enviado por rotaviano em 25/03/2013 - 17:56h:

estou trabalhando justamente com isso...

e terei duvidas...:)

parabens e vlw por contribuir.


Rodney

muito obrigado.



alô rotaviano,

quanto a configuração do mutt não há qualquer problema, vc não precisa alterá-lo,

e pode utilizar também em modo terminal o comando mail adicionando através do pacote mailutils.

exemplo: $/usr/bin/mail to fulano@hotmail.com
title:
cc:
a mensagem .


vc deve prestar atenção que este modelo de relay-agent permite utilizar vários smtps através dos

diferentes usuários cadastrados sem ficar atrelado a apenas um smtp na opção relay host por

isso não necessidade de configurar o parâmetro relayhost e sim as opções:

smtp_sender_dependent_authentication = yes

sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

smtp_sasl_password_maps = hash:/etc/postfix/saslpass

com os seus respectivos hashes DB. uma boa dica com exemplos para esses parâmetros está

em: http://www.postfix.org/SOHO_README.html

site com a documentação oficial do Postfix

qualquer dúvida é só falar


até.


[9] Comentário enviado por removido em 26/03/2013 - 16:51h


[7] Comentário enviado por rodrigo as em 26/03/2013 - 16:32h:

Boas ruilos, estou configurando um servidor de email que está atrás de um adsl com ip dinamico, vi o seu tópico e me enteressei, fiz algumas pesquisas mas não consigo ter uma visão clara de como funciona o relay.
Acaso poderia me dar algumas explicações.

T+


vou passar a configuração básica de um relay apenas para um usuário utilizando uma conta do

gmail, caso queira utilizá-lo numa rede local ai vc terá que configurá-lo de acordo com as dicas do

artigo:

# Cliente SMTP
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass

#Suporte a TLS
smtp_use_tls = yes

# Relay Agent
myhostname = localhost
mydomain = localdomain
relayhost = smtp.google.com:587
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
mydestination = localhost, localhost.localdomain
mynetworks = 127.0.0.0/8, 192.168.10.0/24
inet_interfaces = all
inet_protocols = all

# /etc/postfix/saslpass

smtp.google.com:587 fulano@gmail.com:senha

não esqueça de criar o hash

postmap /etc/postfix/saslpass

qualquer problema mande o log do arquivo:/var/log/mail.log

T+s

[10] Comentário enviado por santosrh3080 em 07/11/2016 - 16:10h

Boa tarde e parabens pelo tutorial..excelente qualidade !
Instalei o ispconfig , configurei os dns e servidor de email normalmente..usando postfix
Acesso uma conta pelo Squirremail e mando email normalmente e o mesmo chega. Envio dele pra ele mesmo e chega tambem
Acabei de mandar de uma conta exter ( gmail ) chegou normalmente.
Agora o problema : Tenho uma aplicacao web que usa essa conta para enviar emails aos usuarios quando solicitam troca de senha , manda logs de erro e outras coisas....Segue um trecho do mail.log , onde o mesmo mostra que o erro poder ser TLS ou SSL
A aplicacao ta configurada com email e senha de uma conta resgistrada no ispconfig.

SSL_accept error from unknown[10.0.0.8]: Connection timed out
Oct 31 14:10:15 ispconfig postfix/smtps/smtpd[18786]: lost connection after CONNECT from unknown[10.0.0.8]
Oct 31 14:10:15 ispconfig postfix/smtps/smtpd[18786]: disconnect from unknown[10.0.0.8]
Oct 31 14:11:45 ispconfig dovecot: imap-login: Login: user=<system@meudominio.com.br

A maquina da aplicacao so tem configurado o ip do servidor de email
a conta e a senha , que inclusive esta registrada no ispconfig desse servidor de email
Acredito que seja autenticacao que a aplicacao precisa fazer no servidor email...copiar certificado pra maqunia da aplicacao para liberar a conexao ou talvez por esse metodo SASL
O que vc acha ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts