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.
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
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]
"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
[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:
[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.
[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:
[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
[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 ?