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.
Parte 4: 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.
Vou fazer uma explicação mais detalhada das opções:
/etc/postfix/sender_relay:
/etc/postfix/saslpass:
2. Conceitos básicos
3. Postfix / Usuário
4. Configurando o relay agent
5. Autenticação SASL
6. Conclusão
#1
Comentário enviado por dolivervl em 21/03/2013 - 13:52h
#2
Comentário enviado por rotaviano em 25/03/2013 - 17:56h
#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
#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
#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
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
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.
user1@example.com [mail.example.com]:submission
user2@example.net [mail.example.net]
user1@example.com [mail.example.com]:submission
user2@example.net [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.
user1@example.com username1:password2
user2@example.net username2:password2
user1@example.com username1:password2
user2@example.net username2:password2
Páginas do artigo
1. Introdução2. Conceitos básicos
3. Postfix / Usuário
4. Configurando o relay agent
5. Autenticação SASL
6. Conclusão
Outros artigos deste autor
Minecraft 1.8.1 - Arquivo server.properties
Instalando e usando o GNUstep no Linux
Instalando o OSS4 no Ubuntu 11.04
Zabbix 2.2 no CentOS 6 via repositório EPEL - Instalação e configuração
Leitura recomendada
XMail - Servidor de email fácil de configurar
Implementando o Interscan VirusWall com Postfix
Webmail Roundcubemail em PHP4/PHP5 com skins, LDAP e extras
Comentários
Parabéns pelo artigo, contribuiu muito com a comunidade !!!
estou trabalhando justamente com isso...
e terei duvidas...:)
parabens e vlw por contribuir.
Rodney
e terei duvidas...:)
parabens e vlw por contribuir.
Rodney
[1] Comentário enviado por dolivervl em 21/03/2013 - 13:52h:
Parabéns pelo artigo, contribuiu muito com a comunidade !!!
muito obrigado.
okkkkkkkkkkkkk,
obrigado.
obrigado.
[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.
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.
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+
Acaso poderia me dar algumas explicações.
T+
[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é.
[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
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 ?
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 ?