Por que o usuário nagios não pode enviar e-mails usando o “sendmail”?

5

Instalei nagios para monitoramento e sendmail para enviar e-mails. Ao testar a partir da conta root , estou recebendo e-mails, mas não estou recebendo e-mails quando os envio da conta nagios . Eu pesquisei e descobri que apenas root user pode enviar e-mails usando sendmail MTA . Como habilitar sendmail para enviar e-mails da conta nagios ?

Note que eu não envio mensagens diretamente da máquina local, mas, ao invés disso, uso meu relé ISP / provedor. Os logs abaixo mostram o erro do relé quando a mensagem vem de nagios@ , mas não quando vem de root@ .

Saída do usuário nagios:

  1. cat / var / log / maillog

    Sep 19 15:52:32 ubuntubackup-chennai sendmail[6088]: q8JAMWXZ006088: from=nagios, size=237, class=0, nrcpts=1, msgid=<[email protected]>, relay=nagios@localhost
    Sep 19 15:52:32 ubuntubackup-chennai sendmail[6089]: q8JAMWCn006089: from=<[email protected]>, size=517, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
    Sep 19 15:52:32 ubuntubackup-chennai sendmail[6088]: q8JAMWXZ006088: to=karthick.murugadhas@****.com, ctladdr=nagios (496/492), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30237, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q8JAMWCn006089 Message accepted for delivery)
    Sep 19 15:52:32 ubuntubackup-chennai sendmail[6091]: q8JAMWCn006089: to=<karthick.murugadhas@****.com>, ctladdr=<[email protected]> (496/492), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=120517, relay=smtp10.netcore.co.in. [202.162.229.32], dsn=4.7.1, stat=Deferred: 450 4.7.1 <nagios@****.com>: Sender address rejected: Please checked sender domain
    

Saída do usuário root:

  1. cat / var / log / maillog

    Sep 19 15:43:29 ubuntubackup-chennai sendmail[5158]: q8JADTt2005158: from=root, size=237, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
    Sep 19 15:43:29 ubuntubackup-chennai sendmail[5159]: q8JADTFO005159: from=<[email protected]>, size=511, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
    Sep 19 15:43:29 ubuntubackup-chennai sendmail[5158]: q8JADTt2005158: to=karthick.murugadhas@****.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30237, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q8JADTFO005159 Message accepted for delivery)
    Sep 19 15:43:30 ubuntubackup-chennai sendmail[5161]: q8JADTFO005159: to=<karthick.murugadhas@****.com>, ctladdr=<[email protected]> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=120511, relay=smtp10.netcore.co.in. [202.162.229.32], dsn=2.0.0, stat=Sent (_SMR_smtp9.netcore.co.in Ok: queued as 29CE7F6D4C)
    

Atualização 1:

O arquivo de configuração sendmail.mc é aqui

    
por karthick87 05.09.2012 / 10:16

4 respostas

6

Editar: após extensa interrogação manual do seu relé SMTP, parece que o problema pode ser que o relé bloqueie especificamente nagios@ como remetente:

[izx.I5] ? telnet smtp10.netcore.co.in 25
220 ESMTP
EHLO ********.com
...
MAIL FROM:nagios@********.com
250 2.1.0 Ok
RCPT TO:karthick@********.com
450 4.7.1 : Sender address rejected: Please checked sender domain
quit
221 2.0.0 Bye
Connection closed by foreign host

A caixa de correio nagios@****.com existe? Você pode tentar simplesmente reescrever nagios para, por exemplo? nagios1 ?

Para fazer isso, em /etc/sendmail.mc add:

FEATURE('genericstable')dnl
GENERICS_DOMAIN_FILE('/etc/mail/generics-domains')dnl

Crie o arquivo /etc/mail/genericstable e adicione a linha:

nagios nagiosk

e /etc/mail/generics-domains e adicionar linhas:

localhost
localhost.localdomain

Em seguida, execute sudo sendmailconfig e tente novamente.

O problema parece ser o seu redirecionamento SMTP em netcore.co.in . Os retransmissores de SMTP do Hosting / ISP nunca são "abertos" e geralmente são configurados para retransmitir emails apenas de um dos "seus" domínios e de um dos "seus" IPs. Os e-mails de root@localhost provavelmente estão passando apenas porque alguns daemons do servidor de e-mail reconhecem root e abrem uma exceção, às vezes até substituindo a parte @localhost por qualquer DNS reverso (ou IP) do remetente é (por exemplo, minhas mensagens já passaram na forma de [email protected] ). Tal cortesia não é oferecida ao usuário "nagios @ localhost".

Duas soluções:

O mais fácil pode ser simplesmente definir (ou falsificar) o seu sendmail FQDN para o que for reconhecido / autorizado pela Netcore .

Para isso, abra /etc/mail/sendmail.mc e adicione essas linhas no final antes de qualquer MAILER linhas, modificando apropriadamente:

MASQUERADE_AS('karthick.com')
FEATURE('masquerade_envelope')

Em seguida, execute sudo sendmailconfig , respondendo sim a tudo e verifique se o sendmail foi reiniciado. Veja aqui para mais informações básicas sobre o Sendmail mascarado para retransmissão.

Alternativamente, por razões de integridade, para continuar usando nagios @ localhost , você pode fazer uma de duas coisas - desabilitar a retransmissão no sendmail e usá-lo diretamente (se você tiver um IP estático) / Registro PTR ou RDNS), OU você pode configurar o sendmail para executar a autenticação SMTP com a retransmissão Netcore.

Esses artigos da Netcore podem ajudar; você pode tentar perguntá-los também se possível:

  • Por que um endereço de remetente é rejeitado?
  • Autenticação SMTP para Netcore
por ish 19.09.2012 / 14:19
4

Primeiro de tudo: Verificando a web e olhando seus logs, não parece ser um problema com o usuário nagios, parece ser um problema problema com a configuração do sendmail .

Para ser mais preciso, um usuário neste fórum sugere que ele receba uma mensagem semelhante 450 error code (ele estava usando o postfix, mas suponho que exista algum tipo de protocolo) que, como na sua situação também, denota um problema domain not found . Para citar outro usuário desse mesmo fórum:

  

Isso geralmente ocorre devido a uma configuração incorreta do seu cliente de e-mail, se   O endereço do remetente é para um domínio inexistente. Também poderia ser, se   o seu é um novo domínio, que o servidor de correio do destinatário não capturou   com a propagação de DNS ainda.

Enquanto você usa o host local como um domínio de remetente, ainda acredito que há mais que possa ser resolvido.

De fato, outro usuário de outro fórum que eu encontrei , parece ter um problema similar ao usuário no primeiro fórum ao qual me vinculei, e ele também recebe o mesmo código de erro: % código%. Nesse mesmo fórum, outro usuário é citado, sugerindo que também é um problema de DNS.

Importante: estou ciente de que você está usando localhost e não um domínio específico. No entanto, para mim parece que deve ser um problema de configuração incorreta do programa 450 , em vez de nagios do usuário não ter direitos ou qualquer coisa.

Eu também encontrei algumas outras fontes que estou pesquisando atualmente. Continuaremos atualizando esta resposta à medida que obtiver mais e mais informações sobre o assunto.

[EDIT # 1]: Outro usuário em outro fórum é citado dizendo :

  

Parece que você está enviando de [email protected], quando o   servidor de recebimento faz uma pesquisa inversa neste endereço ele irá falhar como   não é válido e, portanto, o e-mail será rejeitado corretamente com o   erro que você deu. Verifique se você tem um nome / domínio de servidor válido para   seu servidor e que ele pode ser procurado no DNS tanto para a frente e   inverter.

No entanto, o usuário que faz a pergunta não parece estar com um sendmail . No entanto, ele recebe uma resposta semelhante ao que vi até agora no interwebz.

[EDIT # 2]: Quanto mais eu leio sobre seu problema, mais eu entendo: parece que 450 error code que você selecionou para usar como o domínio que envia os e-mails não resolvem um endereço IP válido e é isso que faz com que o servidor nagios@localhost responda com uma resposta smtp10.netcore.co.in , pois acredita que seu e-mail é spam:

  

Sim, "reject_unknown_sender_domain" pode causar muitos falsos positivos,   mas reduz o spam.

A correção mais provável é garantir que você use um domínio que possa ser resolvido.

    
por NlightNFotis 19.09.2012 / 13:15
1

Na minha configuração nagios, o comando para enviar email é

/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

Experimente se você pode enviar e-mails como nagios de usuários a partir da linha de comando:

su nagios
echo "test sendmail" | /usr/bin/mail -s "test" [email protected]

Isso pode falhar devido a um caminho incorreto, direitos de acesso ou o servidor de e-mail não aceitando o endereço de destino. Por favor, mantenha-nos informados sobre os resultados do teste.

    
por Floyd 18.09.2012 / 06:24
0

O Sendmail é meio antigo. Enquanto algumas pessoas pensam nisso como o melhor servidor de email já escrito, pessoalmente eu não gosto nem um pouco disso.

Minha combinação para enviar e-mails de contas de usuários locais para endereços de e-mail "externos" é postfix e bsd-mailx

Se você quiser experimentar: sudo apt-get install postfix bsd-mailx .

Se você não quiser receber nenhum e-mail nesse host, poderá tornar o Postfix um pouco mais seguro vinculando-o ao localhost. Execute sudo postconf -e 'inet_interfaces = localhost' && sudo service postfix restart .

    
por pgschk 05.09.2012 / 12:26