Postfix: Efetuando relay em hosts que exigem autenticação E nas portas SUBMISSION ou SMTPS

Olá ! Em um post anterior eu tratei as configurações necessárias para configurar o Postfix para efetuar relay em um servidor que exige autenticação: https://respirandolinux.wordpress.com/2014/10/25/postfix-efetuando-relay-em-hosts-que-exigem-autenticacao/

Ocorre que muitas vezes é necessário efetuar o relay no servidor utilizando as portas SUBMISSION (587) ou SMTPS (465). Para que seja possível efetuar essa entrega, as configurações abaixo podem ser utilizadas (exemplo com destino utilizando submission):

O parâmetro que define o host para onde será encaminhada a mensagem é o relayhost:

Exemplo:

relayhost = servidor-externo.laboratorio.com.br

Agora para fazer com que o Postfix autentique ao efetuar o relay e inicie a encriptação exigida pelo serviço SUBMISSION, insira as configurações conforme abaixo:

relayhost = servidor-externo.laboratorio.com.br:587
smtp_sasl_password_maps= hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous, noplaintext
smtp_sasl_tls_security_options = noanonymous

O grande detalhe aqui está no parâmetro smtp_sasl_password_maps, onde iremos inserir no arquivo criado o usuário e senha para autenticação no host definido em relayhost.

O arquivo deve ser criado no seguinte formato:

hostname-do-relayhost.fqdn:porta                     usuario:senha

Nosso exemplo:

servidor-externo.laboratorio.com.br:587              usuario:senha

Efetuadas as configurações, rode o postmap no arquivo /etc/postfix/sasl_passwd e efetue um reload no serviço do Postfix.

Anúncios

Postfix: Efetuando relay em hosts que exigem autenticação

Olá ! É muito comum para administradores de correio eletrônico precisar configurar o servidor para efetuar relay em outro host. Porém geralmente essa prática é feita tendo o IP do servidor liberado no servidor de relay. Neste post irei tratar a configuração que pode ser feita no Postfix caso o host exija autenticação.

O parametro que define o host para onde será encaminhada a mensagem é o relayhost:

Exemplo:

relayhost = servidor-externo.laboratorio.com.br

Agora para fazer com que o Postfix autentique ao efetuar o relay insira as configurações conforme abaixo:

smtp_sasl_auth_enable= yes
smtp_sasl_password_maps= hash:/etc/postfix/sasl-passwd
smtp_sasl_security_options= noanonymous

O grande detalhe aqui está no parametro smtp_sasl_password_maps, onde iremos inserir no arquivo criado o usuário e senha para autenticação no host definido em relayhost.

O arquivo deve ser criado no seguinte formato:

hostname-do-relayhost.fqdn                     usuario:senha

Nosso exemplo:

servidor-externo.laboratorio.com.br               usuario:senha

Efetuadas as configurações, rode o postmap no arquivo /etc/postfix/sasl-passwd e efetue um reload no serviço do Postfix.

Postfix: Entregando para diferentes rotas no mesmo ambiente

Recentemente precisei efetuar a configuração no Postfix para entregar mensagens em diferentes ambientes, na mesa rede corporativa são utilizados dois domínios, sendo um utilizando o Cyrus Imap e o outro utilizando o Exchange 2010. Além das entregas diferentes para os domínios internos as mensagens para domínios externos deveriam ser encaminhadas para um SMTP de borda, como o IBM Proventia.

Veja a ilustração de como deve ser a entrega nesse ambiente:

rotas

Sabemos que para entregar as mensagens que não são locais para outro servidor devemos utilizar o parâmetro relayhost no main.cf, porém como fazer para que os dois domínios internos sejam encaminhados para o destino correto?

Conforme a documentação do Postfix (http://www.postfix.org/postconf.5.html#relayhost), os parâmetros  relay_transportsender_dependent_default_transport_maps, default_transport,sender_dependent_relayhost_maps e a tabela transport tem prioridade sobre o relayhost, portanto podemos utilizar uma destas  soluções para atender nossa necessidade.

Vejamos então como fica a configuração utilizando os parâmetros relayhost e transport_maps, no main.cf:

#Aqui adiciono o IP do servidor de borda, que irá efetuar a entrega para domínios externos

relayhost = SERVIDOR_DE_BORDA

#Aqui defino o transport_maps com o arquivo que irá controlar as entregas para os dominios internos

# que estão em diferentes ambientes

transport_maps = hash:/etc/postfix/transport_maps

O arquivo transport_maps deve ficar da seguinte forma:

dominio1                      lmtp:SERVIDOR_CYRUS_IMAP:lmtp
dominio2                      smtp:SERVIDOR_EXCHANGE

Como podemos observar, o transport_maps permite rotas diferentes por destinos, inclusive utilizando protocolos  diferentes. Efetuada a configuração, basta executar o postmap no arquivo transport_maps e efetuar o reload no Postfix.