Configurando SMTP relay no OpMon

 

Objetivo

Descrever os procedimentos necessários para integração de um relay SMTP ao OpMon, permitindo assim que os relatórios agendados e as notificações que são enviadas por e-mail possam ser entregues.

Público-alvo

Destinado aos administradores do OpMon e as equipes de TI, que necessitam realizar a integração do correio eletrônico ao OpMon.

Introdução

Após a instalação, caso seja necessário, pode-se proceder a configuração para poder integrar o correio eletrônico ao OpMon. Desta forma todas as notificações estarão sendo entregues ao servidor de correio que será encarregado de entregar as mensagens aos destinatários. Esta configuração é extremamente RECOMENDADA. Para tanto, para umas das duas opções mais usadas deve-se seguir os seguintes passos.

Opção 1 – Transporte com Relay

Edite o arquivo /etc/postfix/main.cf, procure a entrada relayhost e adicione o IP ou nome do servidor:

relayhost = smtp.dominio.com

Após a edição, é necessário reiniciar o serviço através do seguinte comando:

[root@opmon /]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Opção 2 – Transporte com Relay Autenticado

Instale os pacotes abaixo.

[root@opmon]# yum install postfix mailx cyrus-sasl cyrus-sasl-plain -y

Edite o arquivo /etc/postfix/main.cf e adicione as seguintes linhas:

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noanonymous
smtp_use_tls=yes
smtp_sasl_mechanism_filter = plain

Após a edição, é necessário criar o arquivo de senhas.

[root@opmon /]# vim /etc/postfix/saslpass

Crie o arquivo /etc/postfix/saslpass com a seguinte estrutura:

 [smtp.gmail.com]:587    usuario@gmail.com:senha_usuario

Após a edição, é necessário indexar e reiniciar o serviço através dos seguintes comandos:

[root@opmon /]# postmap /etc/postfix/saslpass
[root@opmon /]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Testando o funcionamento

Você pode usar o próprio comando usado para notificação no OpMon, conforme exemplo abaixo, respeitando apenas usar usuário e domínio válido.

root@opmon /]# /usr/local/opmon/libexec/notify_by_email.pl -O 127.0.0.1 -F opmon@dominio.com -T usuario@dominio.com -N RECOVERY -D "01/01/1970 00:00:00" -H HOSTNAME --Haddr HOSTADDRESS --Hstate UP --Houtput HOSTOUTPUT --Hackauthor HOSTACKAUTHOR --Hackcomm HOSTACKCOMMENT -r opmon@dominio.com  -f html

Outra forma é através da linha de comando do sistema, conforme exemplo abaixo, respeitando apenas usar usuário e domínio válido.

root@opmon /]# echo "Teste de relay com postfix no OpMon" | mail -s "Teste de relay" usuario@dominio.com

Outra forma de teste é convertendo a senha para base64, assim execute o comando abaixo para conversão da senha.

root@opmon /]# echo -ne 'usuario@gmail.comsenha_do_usuario' | base64
AHJlbGF5QG9wc2VydmljZX29tAHkwdWIzdHQzcjczPzQxYzR

Execute o comando abaixo, neste exemplo estamos usando o Gmail, se o acesso estiver liberado, deve receber o resultado 250.

root@opmon /]# openssl s_client -connect smtp.gmail.com:587 -starttls smtp
CONNECTED(00000003)
---
250 SMTPUTF8

A próxima etapa é tentar autenticar com o usuário e senha que convertemos para base64, para isso digite AUTH PLAIN seguido da senha, conforme exemplo abaixo. Se o resultado for 235 é porque a autenticação está funcionando e os e-mails serão enviados.

AUTH PLAIN AHJlbGF5QG9wc2VydmljZX29tAHkwdWIzdHQzcjczPzQxYzR
235 2.7.0 Accepted
EHLO there
250-smtp.gmail.com at your service, [177.135.99.151]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8

Se o resultado for outro, por exemplo 451, é porque não foi possível autenticar, provavelmente tem algo errado, com o usuário, com a senha ou com a permissão de uso de IMAP/POP/SMTP na conta configurada.

root@opmon /]# openssl s_client -connect smtp.gmail.com:587 -starttls smtp
CONNECTED(00000003)
---
250 SMTPUTF8
AUTH PLAIN AHJlbGF5QG9wc2VydmljZX29tAHkwdWIzdHQzcjczPzQxYzR
451 4.7.0 Timeout waiting for client input

Os eventos e seu funcionamento podem ser observados através dos logs abaixo.

[root@opmon /]# tail -f /var/log/maillog
2011-07-11T14:19:47.694692-03:00 smtp.dominio.com postfix/qmgr[6950]: A91314310025: from=, size=17867, nrcpt=1 (queue active)
2011-07-11T14:19:47.705767-03:00 smtp.dominio.com postfix/smtp[20944]: A91314310025: to=, relay=192.168.10.9[smtp.dominio.com]:25, delay=0.03, delays=0.02/0/0/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as AB0FC3900181)
2011-07-11T14:19:47.705896-03:00 link32 postfix/qmgr[6950]: A91314310025: removed

Solução de Problemas

1 -Caso tenha problema de e-mails enfileirados, dois comandos úteis são eles:

  • Lista todos e-mails na fila
[root@opmon /]# postqueue -p
Mail queue is empty
  • Deleta todos e-mails da fila:
[root@opmon /]# postsuper -d ALL

2-Caso o tipo de autenticação seja com criptografia TLS, e mesmo após ter realizado a configuração corretamente, aparecer a mensagem abaixo no /var/log/maillog

Jan 12 17:44:57 opmon postfix/smtp[18220]: 4900DD68067: to=<operacao@email.com.br>, relay=smtp.gmail.com[64.233.190.109]:587, delay=1.3, delays=0.04/0/0.93/0.34, dsn=5.7.0, status=bounced (host smtp.gmail.com[64.233.190.109] said: 530 5.7.0 Must issue a STARTTLS command first. r7sm5018190qhc.38 - gsmtp (in reply to MAIL FROM command))
Jan 12 17:44:57 opmon postfix/qmgr[18208]: 4900DD68067: removed
Falta adicionar a linha smtp_use_tls=yes no arquivo /etc/postfix/main.cf e reiniciar o postfix(service postfix restart). Referência: http://mhawthorne.net/posts/postfix-configuring-gmail-as-relay.html

3-Um erro comum é o nome do servidor estar errado e não autenticar.

No caso acima, eu quero usar o relayhost = smtp.terra.com.br, mas esse host é um CNAME ou apelido para smtp.poa.terra.com.br. O Postfix vai procurar pelo nome final (depois de todos os CNAMEs).

4-Caso mostre mensagem abaixo no /var/log/maillog

 Mar  1 20:55:19 svlxoss01 postfix/qmgr[26943]: 4FA751A98014: to=<operacao@email.com.br>, relay=none, delay=21958, delays=21957/1.1/0/0, dsn=4.7.0, status=deferred (delivery temporarily suspended: SASL authentication failed; cannot authenticate to server mail.email.com[172.20.1.10]: no mechanism available)

O postfix utiliza o Cyrus como mecanismo de autenticação segura, assim instalar os pacotes abaixo:

[root@opmon /]# yum install cyrus-sasl
[root@opmon /]# yum install cyrus-sasl-lib
[root@opmon /]# yum install cyrus-sasl-plain

5-Caso ocorra o erro do from errado ou sem permissão de autenticar.

Jan 12 18:47:12 oprobot-lnx postfix/qmgr[19584]: 8DE6AA6B75: from=<>, size=2532, nrcpt=1 (queue active)
Jan 12 18:47:12 oprobot-lnx postfix/local[19627]: 895A1A6B78: to=<root@oprobot-lnx.localdomain>, relay=local, delay=0.02, delays=0.01/0.01/0/0.01, dsn=2.0.0, status=sent (forwarded as 8DE6AA6B75)
Jan 12 18:47:12 oprobot-lnx postfix/qmgr[19584]: 895A1A6B78: removed
Jan 12 18:47:36 oprobot-lnx postfix/smtp[19602]: 8DE6AA6B75: to=<opmon@dominio.com>, orig_to=<root@oprobot-lnx.localdomain>, relay=smtp.office365.com[191.232.104.194]:587, delay=23, delays=0.01/0/18/5.7, dsn=5.7.60, status=bounced (host smtp.office365.com[191.232.104.194] said: 550 5.7.60 SMTP; Client does not have permissions to send as this sender (in reply to end of DATA command))

Edite o /etc/postfix/sender_canonical e adicione o endereço de from.

[root@opmon /]# vim /etc/postfix/sender_canonical

Adicione o conteúdo de acordo com o exemplo abaixo e depois salve o arquivo.

/.+/ opmon@dominio.com

Adicione a linha abaixo ao /etc/postfix/main.cf.

sender_canonical_maps = regexp:/etc/postfix/sender_canonical

Execute os comandos abaixo.

[root@opmon /]# postmap hash:/etc/postfix/sender_canonical
[root@opmon /]# chown root:root /etc/postfix/sender_canonical*
[root@opmon /]# chmod 644 /etc/postfix/sender_canonical*

Após, reinicie o postfix e refaça os testes de envio.

[root@opmon /]# postfix reload

Algumas referencias para configuração.

Updated on 31/08/2021

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se