DNSBL zen.spamhaus.org が 127.255.255.254 を返してメールがブロックされる

皆さん、ご自身のメールサーバは今もメンテされていますか。
……さりげない導入にしようと思いましたが、令和にもなってメールサーバを自前で運用している方はそう多くなさそうなので変な感じになってしまいましたね……。
それはともかく、AWS EC2 で構築してあるメールサーバで DNSBL の一つ zen.spamhaus.org が 127.255.255.254 を返してメールがブロックされているのに気づきました。
必ずブロックされるわけではないのですが、今までなかった傾向なので念のため調査しました。

エラーの傾向

ログを遡ると11月3日から急に発生していました。実際のログは以下のようになっています。
(ドメイン名などは一部書き換えています)

Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc8033976: [email protected], size=3491, class=0, nrcpts=1, msgid=<[email protected]>, relay=mailnull@localhost
Nov  3 03:06:35 mailserver sm-mta[33977]: ruleset=check_relay, arg1=localhost, arg2=127.255.255.254, relay=mailnull@localhost [127.0.0.1], reject=550 5.7.1 Rejected: 127.0.0.1 listed at zen.spamhaus.org
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc8033976: [email protected], [email protected] (26/26), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=33491, relay=[127.0.0.1] [127.0.0.1], dsn=5.7.1, reply=550 5.7.1 Rejected: 127.0.0.1 listed at zen.spamhaus.org, stat=Service unavailable
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc8033976: 2A2I6Zc9033976: DSN: Service unavailable
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc9033976: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=34515, relay=[127.0.0.1], dsn=5.7.1, reply=550 5.7.1 Rejected: 127.0.0.1 listed at zen.spamhaus.org, stat=Service unavailable
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc9033976: 2A2I6ZcA033976: return to sender: Service unavailable
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6ZcA033976: to=postmaster, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=35539, relay=[127.0.0.1], dsn=5.7.1, reply=550 5.7.1 Rejected: 127.0.0.1 listed at zen.spamhaus.org, stat=Service unavailable
Nov  3 03:06:35 mailserver sendmail[33976]: 2A2I6Zc9033976: Losing ./qf2A2I6Zc9033976: savemail panic

このメールサーバから発信したものが引っかかってしまった結果、ダブルバウンスしてますね……。
これはちょっとおかしいですね。

エラーの原因

spamhaus の問題かなと思って調べてみたところ、こんな記事を発見しました。
If you query Spamhaus Projects’ DNSBLs via Amazon Web Services’ DNS move to the free Data Query Service

In the case of querying via an open/public resolver, i.e., AWS, the error code is 127.255.255.254.

あー……。これですね。
もともと小規模で非営利な組織からは無料で提供という形でしたが、AWS (を始めパブリック)のリゾルバから来るとそれが分からないのでブロックする方針に変わる感じですかね。

解決方法

調べてみると非営利であれば DNSBL は無料で利用出来るように読めましたが、今回はそもそも外すことにしました。
もし引き続き利用したいという方は以下を見てみて下さい。
FREE Data Query Service Account

早速設定していきます。ちなみに FreeBSD の sendmail です。
/etc/mail/(hostname).mc で DNSBL の設定を外してあげます。
(まるまる消してしまっても良いのですが、とりあえずコメントアウトしておきました)

- FEATURE(dnsbl, `zen.spamhaus.org')
+ dnl FEATURE(dnsbl, `zen.spamhaus.org')

その後 cf ファイルを作成し、sendmail.cf にコピーします。

cd /etc/mail
make cf
cp -p (hostname).cf sendmail.cf

最後に再起動して完了です。

/etc/rc.d/sendmail stop
/etc/rc.d/sendmail start

sendmail の設定をいじることなんてここ最近は殆ど無かったので、思い出すのにちょっとだけ時間がかかりました。

technical

Posted by yokky