为什么nagios 用户不能使用“sendmail”发送邮件?

kar*_*k87 5 nagios3 sendmail

我已安装nagios用于监视和sendmail发送邮件。从root帐户测试时,我收到邮件,但从nagios帐户发送邮件时却没有收到邮件。我用谷歌搜索,发现只有root用户可以使用sendmail MTA. 如何启用sendmailnagios帐户发送邮件?

请注意,我不直接从本地计算机发送消息,而是使用我的 ISP/提供商中继。以下日志显示消息来自 时中继的错误nagios@,但不显示来自 时的错误root@

nagios 用户的输出:

  1. 猫 /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
    
    Run Code Online (Sandbox Code Playgroud)

root 用户的输出:

  1. 猫 /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)
    
    Run Code Online (Sandbox Code Playgroud)

更新 1:

sendmail.mc配置文件在这里。

ish*_*ish 6

编辑:在对您的 SMTP 中继进行大量手动询问后,问题似乎是中继专门阻止nagios@了发件人:

[izx.I5] ? telnet smtp10.netcore.co.in 25
第220话
EHLO ********.com
...
邮件发件人:nagios@********.com
250 2.1.0 好的
RCPT 至:karthick@********.com
450 4.7.1 : 发件人地址被拒绝:请检查发件人域
退出
221 2.0.0 再见
外部主机关闭连接

nagios@****.com邮箱是否存在?您可以尝试简单地重写nagios为 egnagios1吗?

为此,请/etc/sendmail.mc添加:

特征(`genericstable')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl

创建文件/etc/mail/genericstable并添加以下行:

nagios nagiosk

/etc/mail/generics-domains并添加行:

本地主机
本地主机.localdomain

然后运行sudo sendmailconfig并重试。


问题似乎是您在 的 SMTP 中继netcore.co.in。托管/ISP SMTP 中继永远不会“开放”,并且通常设置为仅从“他们的”域之一和“他们的”IP 之一中继邮件。来自邮件的发送root@localhost可能只是因为某些邮件服务器守护进程识别root并对其进行例外处理,有时甚至用@localhost发件人的反向 DNS(或 IP)替换该部分(例如,我的邮件曾经在的形式root@dsl-111-222-111-222.ppp.isp.com)。“nagios@localhost”用户没有这样的礼貌。

两种解决方案:

更简单的方法可能是简单地将您的 sendmail FQDN设置(或伪造)为 Netcore 认可/授权的任何内容。

为此,请/etc/mail/sendmail.mc在任何MAILER行之前打开并在末尾添加这些行,并进行适当修改:

MASQUERADE_AS('karthick.com')
特征(`masquerade_envelope')

然后运行sudo sendmailconfig,对所有内容回答 yes 并确保重新启动 sendmail。有关Sendmail 伪装中继的更多基本信息,请参见此处


或者,为了完整起见,要继续使用nagios@localhost,您可以执行以下两项操作之一 - 在 sendmail 中禁用中继并直接使用它(如果您有静态 IP/PTR 记录或 RDNS),或者您可以设置 sendmail 以使用 Netcore 中继执行 SMTP 身份验证。

这些 Netcore 文章可能会有所帮助;如果可能,您也可以尝试询问他们: