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

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

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

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

と記述しておくだけで自ドメインからの送信メールをリレーしてくれて、OCNが導入しているOP25Bの規制の影響を受けずにメール送信できたのですが、どうやらPostfixのリレー設定を見直す必要があるようです。

 

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

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

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

追記(2022年 3月): AlmaLinux8 に移行後も今回の設定で問題なく動作しています。

 

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メールサーバーにアクセスするためには、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_CApath = /etc/letsencrypt/live/xxx.example.com/yyyyyy.pem
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1

2行目には別途取得したSSL証明書(私の場合は Let’s Encrypt で取得した証明書)までのパスを指定します。

 

送信元アドレス (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外部に対してメールを送信してみます。
(携帯メールアドレスや Gmailアドレスに対してメールを送信してみます。)

無事にOCNメールサーバーが自宅サーバーからのメールリレーを受け付けてくれて、メールが転送されました。
届いたメールのヘッダー部分を見てみると「envelope-from」はOCNメールアドレスに置き換わっています。

 

あとがき

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

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

コメント

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

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