Почему пользователь nagios не может отправлять письма, используя "sendmail"?

Я установил nagios для мониторинга и sendmail для отправки почты. При тестировании от root Я получаю письма, но не получаю письма при отправке nagios учетная запись. Я погуглил и обнаружил, что только root пользователь может отправлять письма, используя sendmail MTA, Как включить sendmail отправлять письма от nagios учетная запись?

Обратите внимание, что я не отправляю сообщения напрямую с локального компьютера, а вместо этого использую мой ретранслятор провайдера / провайдера. Журналы ниже показывают ошибку от реле, когда сообщение приходит от nagios@, но не тогда, когда root@,

Вывод от пользователя 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=<201209191022.q8JAMWXZ006088@localhost.localdomain>, relay=nagios@localhost
    Sep 19 15:52:32 ubuntubackup-chennai sendmail[6089]: q8JAMWCn006089: from=<nagios@localhost.localdomain>, size=517, class=0, nrcpts=1, msgid=<201209191022.q8JAMWXZ006088@localhost.localdomain>, 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=<nagios@localhost.localdomain> (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
    

Вывод от пользователя 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=<201209191013.q8JADTt2005158@localhost.localdomain>, relay=root@localhost
    Sep 19 15:43:29 ubuntubackup-chennai sendmail[5159]: q8JADTFO005159: from=<root@localhost.localdomain>, size=511, class=0, nrcpts=1, msgid=<201209191013.q8JADTt2005158@localhost.localdomain>, 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=<root@localhost.localdomain> (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)
    

Обновление 1:

sendmail.mc Конфигурационный файл находится здесь.

4 ответа

Решение

Изменить: после обширного ручного опроса вашего SMTP-реле, похоже, что проблема может быть в том, что реле специально блокирует nagios@ в качестве отправителя:

[izx.I5]? telnet smtp10.netcore.co.in 25
220 ESMTP
EHLO ********. Com...
ПОЧТА ОТ:nagios@********. Com
250 2.1.0 Хорошо
RCPT TO:karthick@********. Com
450 4.7.1: Адрес отправителя отклонен: Пожалуйста, проверьте домен отправителя
уволиться
221 2.0.0 Пока
Соединение прервано внешним хостом

Ли nagios@****.com почтовый ящик существует? Можете ли вы попробовать просто переписать nagios например nagios1?

Для этого в /etc/sendmail.mc добавлять:

FEATURE (`genericstable ') DNL
GENERICS_DOMAIN_FILE(`/ и т.д. / почта / генерики-домены) DNL

Создать файл /etc/mail/genericstable и добавьте строку:

nagios nagiosk

а также /etc/mail/generics-domains и добавьте строки:

локальный
localhost.localdomain

Тогда беги sudo sendmailconfig и попробуй еще раз.


Похоже, проблема связана с вашим SMTP-ретранслятором на netcore.co.in, SMTP-реле хостинга /ISP никогда не являются "открытыми" и обычно настроены на ретрансляцию почты только с одного из "их" доменов и с одного из "их" IP-адресов. Письма от root@localhost вероятно, проходят только потому, что некоторые демоны почтового сервера распознают root и делают для него исключение, иногда даже заменяя @localhost часть с любым обратным DNS (или IP) отправителя (например, мои сообщения когда-то проходили в форме root@dsl-111-222-111-222.ppp.isp.com). Пользователю "nagios@localhost" такая любезность не предоставляется.

Два решения:

Проще всего установить (или подделать) полное доменное имя sendmail на то, что распознано / разрешено Netcore.

Для этого откройте /etc/mail/sendmail.mc и добавить эти строки в конце, прежде чем MAILER строки, изменяя соответственно:

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

Тогда беги sudo sendmailconfig, отвечая да на все вопросы и убедитесь, что sendmail перезапущен. Смотрите здесь для более подробной информации о маскировке Sendmail для ретрансляции.


В качестве альтернативы, для полноты, чтобы продолжать использовать nagios @ localhost, вы можете сделать одно из двух: либо отключить ретрансляцию в sendmail, либо использовать ее напрямую (если у вас есть статическая запись IP/PTR или RDNS), ИЛИ вы можете настроить sendmail для выполнения аутентификации SMTP с помощью ретранслятора Netcore.

Эти статьи Netcore могут помочь; Вы можете попробовать задать их тоже, если это возможно:

Прежде всего: проверка веб-окружения и просмотр ваших журналов не является проблемой для пользователя nagios, скорее, это проблема конфигурации sendmail.

Чтобы быть более точным, пользователь на этом форуме предлагает ему получить аналогичный 450 error code (он использовал postfix, но я предполагаю, что есть какой-то протокол), который, как и в вашей ситуации, обозначает domain not found вопрос. Чтобы процитировать другого пользователя с того же форума:

Обычно это происходит из-за неправильной настройки вашего почтового клиента, если адрес отправителя для несуществующего домена. Также может быть, если у вас новый домен, что почтовый сервер получателя еще не догнал распространение DNS.

Несмотря на то, что вы используете localhost в качестве домена отправителя, я все еще верю, что есть еще что-то, о чем можно позаботиться.

На самом деле, другой пользователь из другого форума, на который я наткнулся, похоже, имеет аналогичную проблему с пользователем на первом форуме, на который я ссылался, и он тоже получает такой же код ошибки: 450, На этом же форуме цитируется другой пользователь, который предполагает, что это тоже проблема DNS.

Важно: я знаю, что вы используете localhost, а не конкретный домен. Тем не менее, мне кажется, что это проблема неправильной конфигурации sendmail программа, а не пользователь nagios, не имеющий прав или что-нибудь.

Я также нашел некоторые другие источники, которые я исследую в настоящее время. Будет продолжать обновлять этот ответ, поскольку я получаю все больше и больше информации по этому вопросу.

[РЕДАКТИРОВАТЬ #1]: Цитируется еще один пользователь на другом форуме:

Похоже, что вы отправляете письмо с root@machine.mydomaine, когда получающий сервер выполняет обратный поиск по этому адресу, он не сможет работать, поскольку он недействителен, и, следовательно, сообщение будет отклонено правильно с указанной ошибкой. Убедитесь, что у вас есть действительное имя сервера / домен для вашего сервера и что его можно искать в DNS как в прямом, так и в обратном направлении.

Однако пользователь, задающий вопрос, похоже, не сталкивается с 450 error code, Однако он получает аналогичный ответ на то, что я видел до сих пор на веб-сайте.

[РЕДАКТИРОВАТЬ #2]: Чем больше я читаю о вашей проблеме, тем больше я ее получаю: nagios@localhost что вы выбрали для использования в качестве домена, который отправляет электронные письма, не разрешается на действительный IP-адрес, и это является причиной smtp10.netcore.co.in сервер, чтобы ответить с 450 domain not found ответ, так как считает, что ваша почта является спамом:

Да,"reject_unknown_sender_domain" может вызвать много ложных срабатываний, но это уменьшает спам.

Наиболее вероятное решение - убедиться, что вы используете разрешаемый домен.

В моей конфигурации nagios команда для отправки почты ist

/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$

Попробуйте, можете ли вы отправлять почту как пользователь nagios из командной строки:

su nagios
echo "test sendmail" | /usr/bin/mail -s "test" yourmail@domain.tld

Это может привести к сбою из-за неправильного пути, прав доступа или почтового сервера, который не принимает адрес назначения. Пожалуйста, держите нас в курсе результатов вашего теста.

Sendmail довольно древний. В то время как некоторые люди считают его лучшим почтовым сервером, когда-либо написанным, лично мне он ничуть не нравится.

Моя комбинация для отправки электронных писем из локальных учетных записей пользователей на "внешние" почтовые адреса postfix а также bsd-mailx

Если вы хотите попробовать это: sudo apt-get install postfix bsd-mailx,

Если вы не хотите получать электронные письма на этом хосте, вы можете сделать Postfix немного более безопасным, привязав его к localhost. Бежать sudo postconf -e 'inet_interfaces = localhost' && sudo service postfix restart,

Другие вопросы по тегам