masquerade_domainオプションを使用してsendmail設定を持つ複数のCentOSサーバーがあります。私たちのメールサーバーはGmailです。したがって、各サーバーは Gmail 経由でドメインにメールを送信します。 Gmailドメイン内のすべてのサーバーのIPアドレスをホワイトリストに追加しました。それは何年も…文字通り何年も働いてきました。
突然、私のサーバーから送信された一晩の電子メールが動作を停止しました。
私の設定によると、サーバーのコマンドラインを使用して電子メールを送信すると、次のようになります。
echo "Hello World" | mutt -s "Test Hello World Email" [email protected]
...または...
echo "Hello World" | mail -s "Test Hello World Email" [email protected]
...メールログには、localhostによって転送され、Gmailに転送されたものが表示されます。成功した転送は次のとおりです。
from=<[email protected]>, size=483096, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
[email protected], ctladdr=root (0/0), delay=00:02:00, xdelay=00:00:00, mailer=relay, pri=512775, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Message accepted for delivery)
STARTTLS=client, relay=aspmx.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=603096, relay=aspmx.l.google.com. [74.125.124.27], dsn=2.0.0, stat=Sent (OK)
ただし、現在動作していないサーバーには以下が表示されます。
from=<[email protected]>, size=483096, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
[email protected], ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30006, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Message accepted for delivery)
STARTTLS=client, relay=aspmx.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=AES128-SHA, bits=128/128
to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=120317, relay=aspmx.l.google.com. [108.177.112.27], dsn=5.0.0, stat=Service unavailable
DSN: Service unavailable
Losing ./: savemail panic
SYSERR(root): savemail: cannot save rejected email anywhere
目立つ2つの/var/log/maillog行は次のとおりです。
DSN: Service unavailable
...そして...
SYSERR(root): savemail: cannot save rejected email anywhere
私は最初、後者のログエントリ(拒否された電子メールを保存できません)がリレーが機能しないためだと思いました。ただし、この問題が発生したため、一部のアカウントのローカル配信を許可するように私のsendmail設定を切り替えようとしましたが、/ etcを更新しました。 /aliasesは、アカウントのローカル配信用に各virtusertableの多くのエイリアスの1つを指します。 ...しかし進展はありませんでした。
ちなみに/etc/hostsファイルと/etc/resolv.confを再確認しました。 Nslookupsはすべて正しく機能しているようで、私のホスト名は/ etc / hostsファイルと一致します。また、サーバーのパブリックDNSエントリは、サーバーのホスト名とIPアドレスと一致します。
どんな助けでも大変感謝します。
答え1
私の問題に対する解決策を共有したいと思います。これがすべての人の同様の問題に対する解決策になるというわけではありませんが、私が取ったトラブルシューティングのパスが他の人に役立つかもしれません。
まずメールログを確認しました。 sendmail の場合、RHEL と CentOS のデフォルト値は /var/log/maillog です。上記では、私が目撃した2つの問題と一緒に私のメールログエントリを見ることができます。これは(単純化):
relay=aspmx.l.google.com., dsn=5.0.0, stat=Service unavailable
...次に短縮:DSN: Service unavailable
...そして...
SYSERR(root): savemail: cannot save rejected email anywhere
後者の問題は、私がsendmailを使用して、当社のプライマリEメールサーバー(Googleにあります)にすべてのEメールをなりすましているからです。最終的に起こるものは次のとおりです。
- 初期メールはローカルに送信されます。
- 詐欺師がGoogleにメールを再送信しようとしました
- 再生が機能せず、返信メッセージが生成されます。
- 返信メールは Google でも再生を試みているため送信できません。
だからバウンスの理由がわからない。
この問題を克服し、次のコマンドを使用してバウンスの詳細を正常に表示できました。
(echo Subject: test; echo; echo test)|/usr/sbin/sendmail -Am -i -v [email protected]
(明らかに変わりました。[Eメール保護]どのような方法でも送信されませんが、他の操作を実行します。
上記のコマンドを使用すると、エラーメッセージを詳細に表示できます。
550-5.7.1 [my.servers.ip.address] The IP you're using to send mail is not authorized to
550-5.7.1 send email directly to our servers. Please use the SMTP relay at your
550-5.7.1 service provider instead. Learn more at
550 5.7.1 https://support.google.com/mail/?p=NotAuthorizedError
この記事を読んで、私のサーバーのIPが1000個のIPをカバーするポリシーブロックリストにしかないことがわかりました。ポリシーブロックから私のIPを削除するように要求し、すべてが再びうまくいきました。