yahoo.co.jpのメールサーバは管轄ドメイン外でもメールが送れてしまう?

メールシステムを新しくしたのでメールログを監視中。

そんななか不審なものが・・・

Aug  9 07:48:48 サーバ名 postfix/smtpd[7394]: NOQUEUE: reject: RCPT from mta094.mail.bbt.yahoo.co.jp[182.22.12.65]: 450 4.1.8 <glfruwj@zrbzzfmaewphpyi.jp>: Sender address rejected: Domain not found; from=<glfruwj@zrbzzfmaewphpyi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta094.mail.bbt.yahoo.co.jp>

Aug  9 07:55:19 サーバ名 postfix/smtpd[7394]: NOQUEUE: reject: RCPT from mta008.mail.bbt.yahoo.co.jp[182.22.12.11]: 450 4.1.8 <fvawxvd@6vo07bbmyz8wa8d.jp>: Sender address rejected: Domain not found; from=<fvawxvd@6vo07bbmyz8wa8d.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta008.mail.bbt.yahoo.co.jp>

yahoo.co.jpのメールサーバを使って、SPAMドメインからのメールを配信しようとしている形跡が・・・

え・・・自社ドメイン以外でも送れる設定にしてるんですか!?

もしかして、Yahooショッピングのテナントが、それぞれ自社ドメインで送れるようにそうなってるんですかね?

さすがに送信時にSMTP AUTHをしていないとは思えないし、いったいどういう処理をしてるんだかなぁ・・・


2019/06/18追記

今日も元気に、mta???.mail.bbt.yahoo.co.jpやmta???.mail.djm.yahoo.co.jpから存在していないドメインがFromに設定されているSPAMメールが送信中です。

[root@サーバ名 ~]# grep "NOQUE" /var/log/maillog|grep yahoo.co.jp|grep "Domain not"
<略>
Jun 18 14:25:52 サーバ名 postfix/smtpd[31047]: NOQUEUE: reject: RCPT from mta009.mail.bbt.yahoo.co.jp[182.22.12.12]: 450 4.1.8 <nmroofhyu@wqk5z43zgjb5y.net>: Sender address rejected: Domain not found; from=<nmroofhyu@wqk5z43zgjb5y.net> to=<宛先メールアドレス> proto=SMTP helo=<mta009.mail.bbt.yahoo.co.jp>
Jun 18 14:35:29 サーバ名 postfix/smtpd[32576]: NOQUEUE: reject: RCPT from mta718.mail.djm.yahoo.co.jp[183.79.16.21]: 450 4.1.8 <kqqtlikg@pxnfykriyoxywkrdum.jp>: Sender address rejected: Domain not found; from=<kqqtlikg@pxnfykriyoxywkrdum.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta718.mail.djm.yahoo.co.jp>
[root@サーバ名 ~]# grep "NOQUE" /var/log/maillog|grep yahoo.co.jp|grep "Domain not"|wc
     66    1518   20892
[root@サーバ名 ~]#

2020/09/23追記

yahoo.co.jpが発信源のSPAMメールは2年経過した2020年になっても止まることはありません。

Sep 23 11:05:00 サーバ名 postfix/smtpd[26185]: NOQUEUE: reject: RCPT from mta094.mail.bbt.yahoo.co.jp[182.22.12.65]: 450 4.1.8 <uhspranbsbt@rjw7zascoh.ne.jp>: Sender address rejected: Domain not found; from=<uhspranbsbt@rjw7zascoh.ne.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta094.mail.bbt.yahoo.co.jp>
Sep 23 11:07:22 サーバ名 postfix/smtpd[26185]: NOQUEUE: reject: RCPT from mta767.mail.djm.yahoo.co.jp[183.79.16.42]: 450 4.1.8 <rxrggxjnx@zinjuepwicmfrsi.jp>: Sender address rejected: Domain not found; from=<rxrggxjnx@zinjuepwicmfrsi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta767.mail.djm.yahoo.co.jp>
Sep 23 12:24:50 サーバ名 postfix/smtpd[3025]: NOQUEUE: reject: RCPT from mta027.mail.bbt.yahoo.co.jp[182.22.12.30]: 450 4.1.8 <cxlpsqtzz@ukmpvasugqpahrvi.jp>: Sender address rejected: Domain not found; from=<cxlpsqtzz@ukmpvasugqpahrvi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta027.mail.bbt.yahoo.co.jp>
Sep 23 12:44:53 サーバ名 postfix/smtpd[8648]: NOQUEUE: reject: RCPT from mta750.mail.djm.yahoo.co.jp[183.79.16.149]: 450 4.1.8 <info@mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.depolarised.racing>: Sender address rejected: Domain not found; from=<info@mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.depolarised.racing> to=<宛先メールアドレス> proto=SMTP helo=<mta750.mail.djm.yahoo.co.jp>
Sep 23 12:47:21 サーバ名 postfix/smtpd[8648]: NOQUEUE: reject: RCPT from mta767.mail.djm.yahoo.co.jp[183.79.16.42]: 450 4.1.8 <rxrggxjnx@zinjuepwicmfrsi.jp>: Sender address rejected: Domain not found; from=<rxrggxjnx@zinjuepwicmfrsi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta767.mail.djm.yahoo.co.jp>
Sep 23 13:11:39 サーバ名 postfix/smtpd[13453]: NOQUEUE: reject: RCPT from mta094.mail.bbt.yahoo.co.jp[182.22.12.65]: 450 4.1.8 <uhspranbsbt@rjw7zascoh.ne.jp>: Sender address rejected: Domain not found; from=<uhspranbsbt@rjw7zascoh.ne.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta094.mail.bbt.yahoo.co.jp>
Sep 23 14:38:13 サーバ名 postfix/smtpd[28617]: NOQUEUE: reject: RCPT from mta750.mail.djm.yahoo.co.jp[183.79.16.149]: 450 4.1.8 <info@mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.depolarised.racing>: Sender address rejected: Domain not found; from=<info@mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.depolarised.racing> to=<宛先メールアドレス> proto=SMTP helo=<mta750.mail.djm.yahoo.co.jp>
Sep 23 14:40:51 サーバ名 postfix/smtpd[28617]: NOQUEUE: reject: RCPT from mta767.mail.djm.yahoo.co.jp[183.79.16.42]: 450 4.1.8 <rxrggxjnx@zinjuepwicmfrsi.jp>: Sender address rejected: Domain not found; from=<rxrggxjnx@zinjuepwicmfrsi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta767.mail.djm.yahoo.co.jp>
Sep 23 15:11:29 サーバ名 postfix/smtpd[2026]: NOQUEUE: reject: RCPT from mta027.mail.bbt.yahoo.co.jp[182.22.12.30]: 450 4.1.8 <cxlpsqtzz@ukmpvasugqpahrvi.jp>: Sender address rejected: Domain not found; from=<cxlpsqtzz@ukmpvasugqpahrvi.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta027.mail.bbt.yahoo.co.jp>
Sep 23 15:31:39 サーバ名 postfix/smtpd[3799]: NOQUEUE: reject: RCPT from mta094.mail.bbt.yahoo.co.jp[182.22.12.65]: 450 4.1.8 <uhspranbsbt@rjw7zascoh.ne.jp>: Sender address rejected: Domain not found; from=<uhspranbsbt@rjw7zascoh.ne.jp> to=<宛先メールアドレス> proto=SMTP helo=<mta094.mail.bbt.yahoo.co.jp>

postfixを使用したiredmailで他サーバで送信された自ドメインメールが受信拒否される

メールサーバをpostfix/dovecotをベースとしたiredmailというメールシステムに置き換えた。
そうしたところ、いままでは出来ていた他にあるWebサーバ上から送信した自ドメイン宛のメールが送れなくなってしまった。

ログを確認すると以下のようになっている。

Aug  2 16:36:25 ホスト名 postfix/smtpd[4994]: NOQUEUE: reject: RCPT from 送信元ホスト名[IPアドレス]: 554 5.7.1 <宛先メールアドレス>: Recipient address rejected: SMTP AUTH is required for users under this sender domain; from=<差し出しメールアドレス> to=<宛先メールアドレス> proto=SMTP helo=<送信元ホスト名>

SMTP AUTHを要求している。

公式ドキュメントに「Recipient address rejected: SMTP AUTH is required for users under this sender domain」という記載がある。
しかし、ここで書かれている下記のMYNETWORKS設定はどちらかというと内部ネットワーク向けの設定である。

MYNETWORKS = ['192.168.0.10', '192.168.0.20', '192.168.0.30']

もうちょっとなんとかならないかなぁ、と探したところフォーラムにQAを発見。
SMTP AUTH is required for users under this sender domain (Mailing list

/opt/iredapd/settings.py に「CHECK_SPF_IF_LOGIN_MISMATCH = True」を追加して、iredapd.serviceを再起動しろ、というもの。

この設定を行うと、DNSのSPFに登録してあるサーバから送信されたメールはSMTP AUTHを要求しなくなるようだ。

これを設定してみたところ、問題は解決したようだ。

Zentyalを日本語で使う場合の設定手順

Linux(Ubuntu 16.04 LTS)ベースでDHCPサーバ/ファイヤーウォール/NATルータ/ActiveDirectory/Exchange互換サーバなどを提供できるアプライアンス「zentyal」を久々にセットアップ。 (以前はzentyal.orgだったのが、zentyal.comに統合された)

2019/07/02追記:Ubuntu 18.04.1 LTSベースのZentyal 6.0です。この記事はZentyal 5.1の時に作成していますが、Zentyal 6.0でも同じでした。
2021/08/12追記:Ubuntu 20.04.2 LTSベースのZentyal 7.0ですが、同じように日本語は化け、同じパッケージインストールで修正できました。

以前、日本語訳を投稿しておいたおかげで日本語を選択できるようになっていますが、注意点が1つ。
インストール時に日本語を設定してしまうと、firefoxが文字化けし、設定に難儀します。
まずはEnglishでインストールを行った上で、手動でパッケージを追加してから日本語に変更する必要があります。

1. EnglishでZentyalをインストール
2. 初回ログイン
3. シェルを開く
4. Ubuntuの日本語対応をインストール「sudo apt install language-pack-ja firefox-locale-ja」
5. 日本語表示用フォントをインストール「sudo apt install fonts-arphic-uming fonts-takao-pgothic」
6. zentyalの日本語対応をインストール「sudo apt install language-pack-zentyal-ja」
7. zentyalの設定画面で「日本語」を設定する。

2019/12/13追記: fonts-takao-pgothic でエラーとなる場合は fonts-takao-gothic で実施のこと

文字化け状態の例

文字化け解消後

なお、yahooのページだと「fonts-arphic-uming」だけでも大丈夫だったが、zentyalではさらに「fonts-takao-pgothic」を追加する必要があった。
なお、 xfonts-intl-japanese では文字化けは直らなかった。

vpopmail代替としてのpostfix+dovecotメールサーバ環境iRedMail

vpopmail+qmailを使って複数ドメインのメールサーバを運用していた。
さすがにきつくなってきたので乗り換え先をいろいろ検討していた。

・いままで使っていたパスワードが継続できること
 (元の平文パスワードは不明で、MySQL上のvpopmailにあるパスワード文字列を引き継げること)
・POP3 before SMTPは廃止する
・とりあえず20ドメインぐらいあり、各ドメインのユーザは20個程度
・Maildir形式のメールデータは移行する
・Web UIでメールアカウントを作成できること
・無償版の範囲であること

いろいろ探した結果、「iRedMail」を乗り換え先として選定した。

vpopmailとiRedMail無償版を比較した場合、機能が足らない点は以下である。
・各ドメイン内の管理者ユーザが使用できない
  全体管理者と一般ユーザの2種類のみが使用できる
  ドメイン内の管理者ユーザは有償版の機能
・エイリアスはWeb UIで管理できない
  有償版での機能
  手動でMySQL DB上に設定を入れることでエイリアスを使用することはできる
  (Set mail forwarding with SQL command line)
・メーリングリストをWeb UIで管理できない
  有償版での機能
  mlmmjベースであるため手動で設定することはできる
・アップデートが面倒
  無償版だと手動でいろいろ設定しつつアップデートを行う必要がある。

ドメイン内管理者が使用できないというところが痛いが、必須要素ではないため、目をつぶった。

新しい利点として
・Exchange対応
  POP3/IMAPだけでなく「SOGo」というExchange互換サーバ機能を利用できる
  カレンダー(CalDAV)、住所録(CardDAV)も対応
・WebMailが2種類使える
  「Roundcube」と「SOGo」の2種類のWebMailが使える
・SMTP AUTH対応
・LetsEncryptによるSSL対応
 「Use a SSL certificate
・DKIM対応
 「Sign DKIM signature on outgoing emails for new mail domain

設定は、初期インストール直後のCentOS 7/Ubuntuなどで「iRedMail」公式からファイルをダウンロードして、インストールスクリプトを実行するだけで良い。

インストールスクリプト実行完了後に、初期の設定パスワードなどを記載したファイルを出力するので、どこか別の場所に保存しておく必要がある。

インストール後、「postfix/dovecotメールサーバでWindows Live Mail 2012がエラーになる」に記載した設定は行った方が良い。

また、今後、パッケージのアップデートを行う場合は「php.iniを変更せずにdisable_functionsの内容を無効化してroundcubeのアップグレードスクリプトを動作させる方法」の知識が必要になる。

なお、実際に切り替えてみると、Windows Live Mail 2012ユーザでは問題が発生した。
Windows Live Mail 2012の場合、同じパスワードであってもパスワードの設定をやり直さなければ認証エラーとなる仕様であるようだ。

php.iniを変更せずにdisable_functionsの内容を無効化してroundcubeのアップグレードスクリプトを動作させる方法

/etc/php.iniでdisable_functionsに「system」を含めている場合、roundcubeのアップグレードを行う時に「./bin/installto.sh /var/www/roundcube」を実行すると、エラーとなってしまう。

# ./bin/installto.sh /var/www/roundcubemail
Error 500: PHP system() function is required. Check disable_functions in php.ini.
#

これは、/etc/php.ini内の「disable_functions 」設定で「system」が記載されていることにより使用できないために発生している。

/etc/php.iniの disable_functionsを修正してしまえば動くようになりますが、アップデートのたびに変更して、アップデートが終わったら元に戻すのは面倒です。

/etc/php.iniを変更するのではなく、一時的に回避するための手法を検討した結果・・・

「php -d disable_functions=”” ./bin/installto.sh /var/www/roundcubemail」と実行することで、disable_functionsの設定に関して無視して実行することができました。

# php -d disable_functions="" ./bin/installto.sh /var/www/roundcubemail
<略>

これで、/etc/php.iniを編集しなくともアップデートができるようになりました。