OCNメールサーバへのリレー設定 ~Sub-missionポート編~

OCNメールサーバのポリシー変更

私が契約するプロバイダのOCNから「2019年10月以降のメール送信において、TCP25による接続を受け付けず、またSub-missionポート (TCP587) においてはSMTP認証は必須である」という内容のお知らせメールが来ました。
これまでは Postfix の設定ファイル(/etc/postfix/main.cf)に

relayhost = [xxx.ocn.ne.jp]:25

を記述しておけば、自ドメインからの送信メールをOCNメールサーバにリレーすることができ、OCNのOP25B規制の影響を受けることなくメールを相手先に届けることが可能でしたが、今後はTCP25ではOCNメールサーバにリレーすることはできなくなります。

追記(2023年 6月):「AlmaLinux9でSSH公開鍵認証やPostfixのrelayhostがうまくいかない件」を追加しました。Almalinux9でOCNメールサーバと通信するには、本記事に設定に加えてシステムの暗号化ポリシーを変更する必要があります。

 

私が理解しているメール送信のあれこれ

リレー設定を変更するに当たり、以下のことを念頭に設定を進めていきます。

  • 自ドメインからOCN網の外に向けてメール送信しようとする際、自宅SMTPサーバから外部SMTPサーバに直接接続しようとすると、OCNの迷惑メール対策OP25Bの規制を受けてしまい、接続することができない(メール送信できない)。
  • SMTPサーバ間の通信には主にTCP25が使用されるが、「自宅SMTPサーバからOCNのSMTPサーバへの通信」といった素性の分かっている者同士の通信であればTCP25以外による通信も何ら問題ない。
  • OCNのSMTPサーバはSub-missionポート (TCP587) またはSMTPSポート (TCP465) による接続を受け付けており、今回のOCNメールサーバのポリシー変更によりSub-missionポート (TCP587) であっても必ずSMTP認証が行われるようになった。
  • OCNのSMTPサーバとのTCP587による通信では暗号化通信は必須でないが、STARTTLS方式による暗号化通信に対応している。

これらを踏まえながら、今回は「TCP587を用いたOCNメールサーバへのリレー設定」をしていきたいと思います。(TCP465を用いたリレー設定については後日記事にしたいと思います。)

追記(2022年11月):「OCNメールサーバへのリレー設定 ~SMTPSポート編~」を追加しました

 

設定環境・設定方針

今回の設定環境・設定方針は以下の通りです。

  • CentOS7.8
  • インターネットサービスプロバイダー OCN
  • OCNメールサーバのSub-missionポート (TCP587) に対してメールをリレーする
  • Postfix 2.10.1(一般的なPostfixの設定については完了している)
  • SMTP-AuthソフトウェアとしてCyrus SASLを使用する(メーラから自サーバへの接続、すなわちサーバ用途としての設定は完了しており、今回は自サーバをSMTPクライアントとして動作させるための設定を行う)
  • OCNメールサーバとの通信にSTARTTLS方式による暗号化通信を行う場合は、別途 SSL証明を取得しておく

追記(2023年 6月): AlmaLinux9に移行したら、OCNメールサーバと暗号スイートが噛み合わず、リレーができなくなりました。システムポリシーを変更する必要があります。その記事はこちら

 

Postfix の設定

リレーホストの設定

Postfixの設定ファイル「/etc/postfix/main.cf」の以下の部分を書き換えます。

relayhost = [smtp.ocn.ne.jp]:587

これまではリレー先OCNメールサーバを [xxx.ocn.ne.jp] の形式 (メールアドレスの@以降と同じ)で指定していましたが、今後は [smtp.ocn.ne.jp] と記述します。

 

OCNメールサーバーからのSMTP認証要求に応えるための設定

自宅SMTPサーバがクライアントとなってOCNメールサーバーと接続するためには、OCNのポリシー変更によりSub-missionポート (TCP587) においても必須となってしまったSMTP認証をパスする必要があります。
そこで「/etc/postfix/main.cf」の末尾に以下の行を追記します。

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ocn_pass
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login

この設定により、OCNメールサーバからのSMTP認証要求時にはOCNアカウント情報を記した「/etc/postfix/ocn_pass」が参照されることになります。

「/etc/postfix/ocn_pass」の中身を作成します。

# nano /etc/postfix/ocn_pass
[smtp.ocn.ne.jp]:587 zzzzz@xxx.ocn.ne.jp:********   ← OCNアカウント(メールアドレス)とパスワードを記述

こちらはパスワードが丸見えなのでアクセス権を変更し、加えてデータベース化します。

# chmod 600 /etc/postfix/ocn_pass
# postmap /etc/postfix/ocn_pass

 

 

OCNメールサーバとSTARTTLS方式で通信するための設定

OCNメールサーバとの TCP587による通信は STARTTLS方式による暗号化通信に対応しています。
これを利用する場合には「/etc/postfix/main.cf」の末尾に以下の行を追記します。

smtp_tls_security_level = may
smtp_tls_CAfile = /etc/letsencrypt/live/xxx.example.com/yyyyyy.pem
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1

2行目には別途取得した中間証明書を指定します。私の場合はLet’s Encryptで取得したfullchain.pemが中間証明書を含んでいるため、それを指定しました。

 

送信元アドレス (envelope-from) を書き換えるための設定

これまでは送信メールのenvelope-fromヘッダの書き換えは不要でしたが、今後はenvelope-fromヘッダが OCNアカウント (OCN のメールアドレス) でなければ弾かれてしまうようです。
Postfixの設定ファイルの設定ファイル「/etc/postfix/main.cf」の末尾に以下の行を追記します。

local_header_rewrite_clients = permit_mynetworks
sender_canonical_classes = envelope_sender
sender_canonical_maps = regexp:/etc/postfix/sender_maps

ここで登場した「/etc/postfix/sender_maps」についても作成します。
envelope-from の書き換えに用いる情報をファイル内に記述します。

# nano /etc/postfix/sender_maps
/^.*$/ zzzzz@xxx.ocn.ne.jp      ← OCNメールアドレスを記述

 

 

動作確認

試しに自ドメインから OCN網の外に向けてメールを送信してみます。

無事にOCNメールサーバが自ドメインメールのリレーを受け付けてくれて、メールが転送されました。

 

あとがき

今回はOCNの Sub-missionポート(TCP587)を用いてリレー設定を行いましたが、いずれ SMTPSポート(TCP465)を用いたリレー設定について記事にします。

追記(2022年11月):「OCNメールサーバへのリレー設定 ~SMTPSポート編~」を追加しました。

追記(2023年 6月):「AlmaLinux9でSSH公開鍵認証やPostfixのrelayhostがうまくいかない件」を追加しました。

コメント

  1. […] ぐぐってみると以下のサイトを発見。OCNメルサーバーへのリレー設定 – CentOSで作る自宅サーバー どうやらenvelope-fromがOCNのメールアドレスでないといけないらしい。上記サイトそのままだけど、設定を記載しておく。 […]

タイトルとURLをコピーしました