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

Por: Perfil removido em 19/03/2013


Configurando o relay agent



O arquivo de configuração principal do Postfix é o: /etc/postfix/main.cf

Neste artigo, vou mostrar a configuração de um servidor de e-mails capaz, apenas, de enviar as mensagens com suporte à autenticação SASL, sem suporte à criptografia.

Vamos então à configuração do main.cf.

Obs.: seria possível implementar para um servidor remoto uma autenticação com criptografia, gerando as chaves e certificados TLS (Transport Layer Security) através do comando openssl, mas neste caso, teríamos que utilizar apenas um SMTP com domínio próprio.

O fato do nosso relay agent "escutar" as solicitações das mensagens dos clientes na rede local apenas na porta 25, impossibilita de ativarmos o recurso de autenticação com chaves criptográficas, mas as mensagens encaminhadas pelo servidor relay agent utilizam as mesmas chaves de criptografia de um servidor remoto.

# Postfix - Agente Relay com suporte a autenticação SASL

myhostname = localhost
mydomain = localdomain
relayhost =
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost, localhost.localdomain
mynetworks = 127.0.0.0/8, 192.168.10.0/24
inet_interfaces = all
inet_protocols = all

smtp_use_tls = yes
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass


Vou fazer uma explicação mais detalhada das opções:
  • A opção "myhostname" deve ter o nome completo do servidor, juntamente com o domínio caso ele possua. No meu caso, por se tratar de um servidor local: "localhost". E a opção "mydomain" deve conter o domínio sem o nome da máquina (servidor), no meu caso: "localdomain".
  • "relayhost" :: Esta opção, talvez seja uma das mais importantes. Ela permite indicar apenas um servidor SMTP externo, através do qual as mensagens serão enviadas, exemplo: smtp.meudominio.com.br
  • alias_maps e alias_database :: São mapas de aliases (apelidos) configurados automaticamente.
  • "mydestination" :: Indica quais nomes e domínios serão considerados locais pelo servidor.
  • "mynetworks" :: Endereço, ou faixas de endereços, a partir de onde o servidor aceitará o envio de mensagens. Na minha configuração: 127.0.0.0/8 para e-mails enviados localmente e 192.168.10.0/24 para a minha rede local.
  • "inet_interfaces" e "inet_protocols" :: O servidor possui mais de uma interface de rede, escolhi a opção "all", tanto para as interfaces que aceitarão os envios de e-mails quanto para os protocolos utilizados.
  • "smtp_use_tls" :: Esta opção ativa o suporte às chaves de criptografia TLS para o envio das mensagens.
  • "smtp_sender_dependent_authentication" - (default: no ) :: Caso "yes", faz com que o cliente do servidor Postfix dependa de autenticação SASL. Caso "no", desativa o cache de conexão SMTP para garantir que os e-mails dos diferentes remetentes usarão as informações adequadas.
  • "sender_dependent_relayhost_maps" - (default: empty ) :: Esta opção substitui o parâmetro relayhost. Nesta tabela são pesquisadas os endereços do remetente juntamente com o seu domínio.

/etc/postfix/sender_relay:

# Per-sender provider; see also /etc/postfix/sasl_passwd.
  [email protected]      [mail.example.com]:submission
  [email protected]        [mail.example.net]


  • "smtp_sasl_password_maps" - ( default:empty ) :: Tabela que pesquisa um nome de usuário: a primeira chave por nome ou endereço de domínio, quando o remetente remoto dependente de autenticação. Se não houver nenhum nome de usuário na tabela, ou seja, caso a tabela esteja vazia, então o cliente do servidor Postfix (SMTP) não conseguirá se autenticar utilizando um servidor de e-mails remoto.

/etc/postfix/saslpass:

# Per-sender authentication; see also /etc/postfix/sender_relay.
  [email protected]      username1:password2
  [email protected]        username2:password2

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

Sudoers 1.8.12 - Parte I - Manual

expr - Definição e uso do comando

Sistemas de arquivos para GNU/Linux

Instalação de VMWare Server 1.8 em Debian Etch sem segredo

Prevenindo problemas com impressoras via Samba no Windows

Leitura recomendada

Implementando o Interscan VirusWall com Postfix

Enviando e-mail pelo shell com smtp remoto

Qmail completo para Madriva 2006

Montando um servidor de e-mail completo com Postfix

XMail - Servidor de email fácil de configurar

  
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 [email protected]
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 [email protected]: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=<[email protected]

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