logwatchで送信されるログメールが届かない…、ということがあったので、その対処法をご報告します。
エラーは以前にもあった「Sender address rejected: Domain not found」です。
以前に
「Sender address rejected: Domain not found」のエラーを対処しましたが、今回は別の対処方法となります。
対象の環境
Ubuntu 16.04 LTSのサーバ、postfixをMTAとしています。
ここにlogwatchを導入して、ログメールを送信していました。
しかし、メールサーバの移行に伴い、メールが送信できなくなった、という状況、これに対処しなきゃいけなくなりました。
DNSでは、
;wms02.hogedomein.jp. IN A %IPアドレス%
websys.hogedomein.jp. IN A %IPアドレス%
もともとあったwms02というホスト名をコメントアウトで無効にし、同じIPアドレスをwebsysというホスト名に割り当てました。
要するにDNS上で名前解決してくれるホスト名をリネームしたような格好です。
エラーが起こる
そうするとlogwatchのメール送信で以下のエラーに。
Jun 30 12:48:22 wms02 postfix/qmgr: from=<root@wms02.hogedomein.jp>, size=4640, nrcpt=1 (queue active)Jun 30 12:48:22 wms02 postfix/smtp: to=<log@hogedomein.jp>, relay=mx.hogedomein.jp[xxx.xxx.xxx.xx]:25, delay=311, delays=311/0.01/0.01/0.02, dsn=4.1.8, status=deferred (host mx.hogedomein.jp[xxx.xxx.xxx.xx] said: 450 4.1.8 <root@wms02.hogedomein.jp>: Sender address rejected: Domain not found (in reply to RCPT TO command))
簡単に言えば、status=deferredとなって「Sender address rejected: Domain not found (in reply to RCPT TO command))」という要因でメールサーバが受け取り拒否している、という状況。
wms02.hogedomein.jpは存在しないホスト名、という判定を受けてメールが送れなくなる、という感じに読み取れます。
設定の変更
DNSで解決されるホスト名を変更した場合、logwatchメールを送信するホスト側以下の変更が必要でした。
「/etc/mailname」に登録されているホスト名の変更が必要。この「/etc/mailname」に記述されるホスト名を、変更したDNSで解決されるホスト名に変更します。
古い/etc/mailnameを
cp /etc/mailname /etc/mailname.org
でバックアップ。
# cat /etc/mailname.org
wms02.hogedomein.jp
vi /etc/mailname
で、ホスト名をDNSで解決できるホスト名に書き換え
# cat /etc/mailname
websys.hogedomein.jp
要するに/etc/mailnameで指定するホスト名を実在するFQDNに変更すれば、いいということです。
設定変更後…
こうすると、DNSで存在確認できるホスト名でメールを送出するようになり、ログの記述に変化が見られました。
Jun 30 13:40:11 wms02 postfix/qmgr: from=<root@websys.hogedomein.jp>, size=4634, nrcpt=1 (queue active)Jun 30 13:40:11 wms02 postfix/smtp: to=<log@hogedomein.jp>, relay=mx.hogedomein.jp[xxx.xxx.xxx.xx]:25, delay=0.51, delays=0.47/0/0.02/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 40350)Jun 30 13:40:11 wms02 postfix/qmgr: removed
と、このように送信できるようになります。
変更前には
wms02.hogedomein.jp
というホスト名で送信しようとしていたのですが、変更後の上記ログでは
websys.hogedomein.jp
というホスト名でメールを送信しようとしているのが分かります。結果「status=sent」となり無事メールが送信できるようになりました。