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: 37.955 ]

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

Linux + Rails + Ruby + Mongrel + PostgreSQL + NetBeans 6 Preview

Suporte TCP Wrapper - Serviços stand-alone no Debian 6

Instalando e configurando o Apache, PHP e MySQL no Slackware 10.1

Metaspoit: Brute force + invasão com meterpreter encriptado com RC4

Construindo um portscanner TCP com Python

Leitura recomendada

Acessando contas do Hotmail pelo Mozilla Mail

Servidor de e-mail com anti-vírus: MailScanner + Exim + Clamav + Cpanel/WHM

Qpopper (POP seguro) no Slackware

Migração Zimbra com Zextras Migration Tool

Instalando o Thunderbird e colocando o atalho no desktop

  
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