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を用いたリレーはできなくなります。

追記(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/pki/tls/certs/ca-bundle.crt
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1

2行目にはSMTPクライアントとして接続先SMTPサーバ証明書を検証するためのCA証明書を指定します。
Let’s Encryptで取得した「/etc/letsencrypt/live/xxx.example.com/chain.pem (fullchain.pem)」からでもサーバ証明書は辿れますが、元からインストールされている「/etc/pki/tls/certs/ca-bundle.crt」で十分です。

 

送信元アドレス (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をコピーしました