web-dev-qa-db-ja.com

nagiosユーザーが「sendmail」を使用してメールを送信できないのはなぜですか?

監視用にnagiosとメール送信用にsendmailをインストールしました。 rootアカウントからテストするとき、メールを受信して​​いますが、nagiosアカウントから送信するときにメールを受信して​​いません。グーグルで検索したところ、rootユーザーのみがsendmail MTAを使用してメールを送信できます。 sendmailアカウントからメールを送信するためにnagiosを有効にする方法

ローカルマシンから直接メッセージを送信するのではなく、ISP /プロバイダーリレーを使用することに注意してください。次のログは、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=<[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
    

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)
    

更新1:

sendmail.mc構成ファイルは ここ です

5
karthick87

編集:SMTPリレーの広範な手動尋問の後、問題はリレーがnagios@を送信者として明確にブロックしている可能性があるようです:

 [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:送信者アドレスが拒否されました:送信者ドメインを確認してください
 quit 
 221 2.0.0 Bye 
外部ホストによって接続が閉じられました

nagios@****.comメールボックスは存在しますか? nagiosを単に書き換えてみてください。 nagios1

これを行うには、/etc/sendmail.mcに以下を追加します。

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

ファイル/etc/mail/genericstableを作成し、次の行を追加します。

 nagios nagiosk 

および/etc/mail/generics-domainsおよび行を追加します。

 localhost 
 localhost.localdomain 

次に、Sudo sendmailconfigを実行して、再試行します。


問題は、netcore.co.inでのSMTPリレーのようです。ホスティング/ ISP SMTPリレーは決して「オープン」ではなく、通常は「自分の」ドメインの1つと「自分の」IPの1つからのメールのみをリレーするように設定されます。 root@localhostからのメールはおそらく、一部のメールサーバーデーモンがrootを認識して例外を作成するため、場合によっては@localhost部分を逆DNS(またはIP)送信者は(たとえば、私のメッセージは[email protected]の形式で一度通過したことがあります)。 「nagios @ localhost」ユーザーにはそのような礼儀はありません。

2つのソリューション:

簡単な方法は、sendmail FQDN をNetcoreが認識/許可するものに設定(または偽造)することです。

これを行うには、/etc/mail/sendmail.mcを開き、MAILER行の前にこれらの行を追加して、適切に変更します。

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

次に、Sudo sendmailconfigを実行し、すべてにyesと応答して、sendmailが再起動されることを確認します。リレーのためのマスカレードSendmailの基本的な情報については、 here を参照してください。


あるいは、完全を期すために、nagios @ localhostを使用し続けるには、次の2つのことのいずれかを実行できます。sendmailでリレーを無効にし、直接使用します(静的IP/PTRレコードまたはRDNS)、OR NetcoreリレーでSMTP認証を実行するようにsendmailをセットアップできます。

これらのNetcoreの記事は役に立つかもしれません。可能であれば、彼らに尋ねることもできます:

6
ish

まず第一に:Web arroundを確認し、ログを見ると、ユーザーnagiosの問題ではなく、むしろsendmailの構成に関する問題

より正確に言うと、 このフォーラムのユーザー は、似た450 error code(後置を使用していましたが、何らかのプロトコルがあると想定しています)を取得することを提案します。また、domain not foundの問題を示します。同じフォーラムの別のユーザーを引用するには:

これは通常、送信者アドレスが存在しないドメイン用である場合の電子メールクライアントの設定ミスが原因です。あなたのドメインが新しいドメインである場合、受信者のメールサーバーがDNS伝播にまだ追いついていない可能性もあります。

送信者ドメインとしてlocalhostを使用している間、私はまだ世話をすることができるより多くがあると信じています。

実際のところ、 私がつまずいた別のフォーラムの別のユーザー 、あるようです最初にリンクしたフォーラムのユーザーと同様の問題で、彼も同じエラーを受け取りますコード:450。同じフォーラムで別のユーザーが引用されており、これもDNSの問題であると示唆しています。

重要:特定のドメインではなくlocalhostを使用していることを認識しています。 しかし、私にとっては、それはser nagios権利などを持たないというよりも、sendmailプログラムの設定ミスの問題に違いないと思われます。

私が現在研究している他のソースもいくつか見つけました。問題に関する情報が増えれば、この回答を更新し続けます。

[編集#1]:別のフォーラムの別のユーザーは、次のように言っています

[email protected]から送信しているように見えますが、受信サーバーがこのアドレスで逆引きを行うと、有効ではないため失敗し、指定したエラーでメールが正しく拒否されます。サーバーの有効なサーバー名/ドメインがあり、DNSで前方と後方の両方で検索できることを確認してください。

ただし、そこで質問するユーザーは、450 error codeに直面していないようです。しかし、彼はこれまでにinterwebzで見たものに対して同様の答えを得る。

[編集#2]:あなたの問題について読めば読むほど、それを理解します。それは、nagios@localhostのように選択したようですメールを送信するドメインが有効なIPアドレスに解決されず、それがsmtp10.netcore.co.inサーバーが450 domain not found応答で応答する原因となります。メールがスパムであると思われるためです:

はい、「reject_unknown_sender_domain」は多くの誤検知を引き起こす可能性がありますが、スパムを削減します。

最も可能性の高い修正は、解決可能なドメインを使用していることを確認することです

4
NlightNFotis

私のnagios設定では、メールを送信するためのコマンドは

/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" [email protected]

これは、不正なパス、アクセス権、またはメールサーバーが宛先アドレスを受け入れないために失敗する可能性があります。テスト結果を掲載してください。

1
Floyd

Sendmailはちょっと古いです。一部の人々はこれをこれまでに書かれた最高のメールサーバーと考えていますが、個人的にはあまり楽しんでいません。

ローカルユーザーアカウントから「外部」メールアドレスにメールを送信するための私の組み合わせは、postfixbsd-mailxです。

試してみたい場合:Sudo apt-get install postfix bsd-mailx

このホストでメールを受信したくない場合は、ローカルホストにバインドすることで、Postfixをもう少し安全にすることができます。 Sudo postconf -e 'inet_interfaces = localhost' && Sudo service postfix restartを実行します。

0
pgschk