ConoHa の VPS で MTA-STS を設定する

ConoHa Enterprise Linux 9
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

前回まで ConoHa の VPS に RHEL9 をインストールし、そこにメールサーバーを構築しました。

Red Hat Enterprise Linux 9 にメールサーバーを構築(後編)
前編では Postfix +Dovecot + PostfixAdmin の設定をしてきました。今回はそこに Rspamd による 迷惑メール対策、ClamAntiVirus によるウイルススキャンを連動させていこうと思います。スパムメール...

今回はその環境に MTA-STS ポリシーを設定していこうと思います。

MTA-STS(Mail Transfer Agent-Strict Transport Security)は STARTTLS をより堅牢にする仕組みです。

DNS で MTA-STS を使用するように宣言したうえで、Web サイト上にポリシーファイルを設置することで設定できます。

ConoHa VPS

ディレクトリの準備

ポリシーファイルを配置する場所は https://mta-sts.ドメイン名/.well-known/mta-sts.txt と定められています。

メールのドメインが増えたとしても、参照するファイル(指定する MX のドメイン)は同じなので、mta-sts というディレクトリを作成して、ドメインが増えてもそこを共通で参照するようにします。

mkdir -p /var/www/mta-sts/.well-known
chown nobody. -R /var/www/mta-sts

ドメインごとにルールを変える場合は、サブディレクトリで管理するのも良いでしょう。

OpenLiteSpeed の設定

OLS の管理画面にログインし、バーチャルホストを作成します。

  • バーチャルホスト名:mta-sts
  • Virtual Host Root:/var/www/mta-sts/
  • 設定ファイル:$SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
  • シンボリックリンクを許可する:いいえ
  • スクリプト/外部アプリを有効にする:いいえ
  • 抑制された:はい

続いて作成したバーチャルホストの一般のタブからメールサーバーのドメインを指定します。

ドメイン名には頭に mta-sts のサブドメインを付けて指定します。

  • Document Root:$VH_ROOT
  • ドメイン名:mta-sts.example.com
  • ドメインエイリアス:(複数のメールドメインがあれば記載)

MTA-STS ポリシーファイルの配置

続いて mta-sts.txt ファイルを作成します。

version: STSv1
mode: enforce
max_age: 31557600
mx: mail.example.com
  • version:STSv1(固定値)
  • mode:STARTTLS に失敗したときの送信サーバーの挙動
    • enforce:メールを送信しない
    • testing:メールは通常通り送信し、レポートを送信
    • none:MTA-STS を利用しない
  • max_age:86400(1 日)〜 31557600(約 1 年)
  • mx:許可するメール受信サーバーのホスト名

DNS の設定

ConoHa の管理画面から DNS を開き、対象のドメインに下記を設定していきます。

MTA-STS の設定

DNS のテキストレコードに _mta-sts を設定することで、MTA-STS が有効化されます。

  • タイプ:TXT
  • 名称:_mta-sts
  • 値:v=STSv1; id=任意の英数字;

id は 1 ~ 32 文字の英数字で、外部サーバーは前回と id が変わっていればポリシーをチェックします。値に古い新しいの順序はありませんが、更新日を絡めたものにしておくのが一般的なようです。

TLS レポートの設定

ポリシーで指定した mode が testing の場合に、レポートを送信する宛先を設定します。

  • タイプ:TXT
  • 名称:_smtp._tls
  • 値:v=TLSRPTv1; rua=mailto:レポート送信先のメールアドレス

レポートを複数のメールアドレスで受信するには、各アドレスをカンマで区切って指定します。メールではなく、HTTPS レポート配信オプションもあるようです。

逆引き DNS の設定

ConoHa 管理画面のサーバーから VPS 設定を開き、IPv4 の PTR レコードを mail.example.com に変更しておきましょう。

逆引きホスト名を修正して、保存します。

すぐには反映されないので、暫く経ってから確認を行っておきましょう。

dig -x サーバーの IP アドレス
(out) 
(out) ; <<>> DiG 9.16.23-RH <<>> -x xxx.xxx.xxx.xxx
(out) ;; global options: +cmd
(out) ;; Got answer:
(out) ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41647
(out) ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
(out) 
(out) ;; OPT PSEUDOSECTION:
(out) ; EDNS: version: 0, flags:; udp: 4096
(out) ;; QUESTION SECTION:
(out) ;xxx.xxx.xxx.xxx.in-addr.arpa.    IN      PTR
(out) 
(out) ;; ANSWER SECTION:
(out) xxx.xxx.xxx.xxx.in-addr.arpa. 3600 IN     PTR     mail.example.com.
(out) 
(out) ;; Query time: 5 msec
(out) ;; SERVER: ooo.ooo.ooo.ooo#53(ooo.ooo.ooo.ooo)
(out) ;; WHEN: Thu Jan 25 13:09:57 JST 2024
(out) ;; MSG SIZE  rcvd: 81

確認

//email/testTo:
Email Test Receiver

More Options を開いて「Check MTA-STS」にチェックを入れ、Run Test を行います。

MTASTS の項目が OK になっていれば、正しく設定されています。

MTA-STS を解除する場合

  1. MTA-TLS を解除する場合は、ポリシーで mode を none に指定し、mx の指定を削除します。また、max-age は最も短い 86400 に設定します。
version: STSv1
mode: none
max_age: 86400
  1. DNS のテキストレコードで、_mta-sts のバージョンを更新します。
  2. ポリシーの以前のバージョンがキャッシュに保存されている可能性があるので、以前に指定していた max_age の期間を空けてからテキストレコードを削除します。

参考にしたサイト

MTA-STSのススメ - Qiita
MTA-STSとは MTA-STSとは、メールの配送経路上のメールサーバーとメールサーバーの間の暗号化の仕組みを少し強くするためのものです。 具体的には、受信側が、送信サーバーに対して STARTTLSを必ず使う TLS1.2以上を必ず使う...
MTA-STS と TLS レポートについて  |  Gmail  |  Google Workspace Help
ConoHa VPS

コメント

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