Menu

BLOG ベアメールブログ

Postfix設定講座② SMTP-AUTHの設定方法

postfix2

Last Updated on 2024.08.5

本記事は、先日公開した『Postfix設定講座① メールリレー用サーバの設定を行う方法|ベアメールブログ』に続く記事となります。

前回の記事では、MTAの概要と、現在主流のMTAであるPostfixを、「メールリレー用のメールサーバとして利用する」方法についてご紹介しました。
今回は、Postfixを使った「SMTP認証メールリレーサーバの構築方法」について解説していきます。

PostfixはOP25Bのための設定が必要

Postfixの標準設定は、相手側のメールサーバのTCP25番ポートに直接接続をしてメールが配信されるようになっています。しかし、TCP25番ポートは、迷惑メール対策として行われているOP25Bによって通信が遮断されていることが多く、メールを配信できないことがあります。そのため、社内システムから外部へメールを送る際は、TCP587番ポートを利用したSMTP認証方式でメールを送信する必要があります。今回の記事では、当社のメールリレーサービス「ベアメール メールリレーサービス」で提供している、SMTP認証方式での接続を可能にする機能「メール中継オプション」を利用した場合のPostfix設定方法をご紹介します。

PostfixでSMTP認証を利用したメールリレーサーバを構築するために

今回説明するメールリレーサーバの環境は、次の点を考慮したものとなります。

設定の条件

・ すでにメールリレーを行うための設定が完了したPostfix を利用する

・ ベアメールの「メール中継オプション」を利用する

イメージ図

この環境を構築するために必要な設定を次項から説明していきます。

前回の記事で構築した環境(メールリレーの設定がされたPostfix環境)に対して、SMTP認証を設定します。

メールリレー用Postfixの構築方法については、こちらの記事をご参照ください。
Postfix設定講座① メールリレー用サーバの設定を行う方法|ベアメールブログ

設定の流れ

※注意:

・ Postfixの基本的な設定は終了していることが前提

・ サブミッションポートを利用する場合、SMTP認証が必要なためID/PWを用意

・ Cyrus SASLライブラリ(注1) をインストールしておく 注1:Cyrus SASLライブラリ(サイラス サスル ライブラリ)

「SASL(サスル:Simple Authentication and Security Layer)」はコネクション型のプロトコルに対して認証機能を提供するフレームワーク。Postfixでは、いくつか種類のある「SASL」の中でもマルチプラットフォームに対応している「Cyrus SASLライブラリ」を導入。

1) SMTP認証に必要な「Cyrus SASL ライブラリ」のインストールを行う

必要なソフトがインストールされていなければyumコマンドでインストールする。

「-y」オプションを指定することで、「インストール許可:yes」の状態で自動インストールが開始される。

2) SMTP認証リレー用のPostfix設定を行う

① Postfix 設定ファイルの変更

既存のConfigファイルのバックアップを取得する。

Configファイルを vi エディタで開き、以下の設定を実施する。


② SMTP認証リレー設定

今回の例では、SMTP認証リレー先として以下ホスト名を指定する。

 SMTPホスト名:example.baremetal.jp

 ※[ ]で囲むとMX検索しません。

ポート番号にサブミッションポート「587」を設定する。

③ SMTP認証設定

main.cfの最下行に以下のSMTP認証設定を追記する。

【 ④〜⑦は各設定項目の詳細説明 】

④ SMTP認証の有効化

リレー先メールサーバのSMTP認証に対応出来るように、SASL認証を有効化する。

有効化する場合は「yes」を設定。

⑤ ユーザ認証ファイルの指定

リレー先サーバのアドレスと、認証に必要な情報(ユーザ名・パスワード)を管理するファイルを指定する。

 ※ファイルの記述方法は本記事の後半で説明。

⑥ 認証設定のセキュリティオプションを指定

デフォルトは、「smtp_sasl_security_options」

リレー先メールサーバのTLS暗号化で使うセキュリティオプションを指定する。

匿名ユーザ(anonymous)でのログインを許可しない(no)ように設定する。

⑦ 認証方式の指定

メールリレー先で対応可能な認証方式を設定する。

一般的に「plain(暗号化)」と「login」方式が有効化となっている場合が多いため、両方の方式を指定。

⑧ Configファイルの保存(main.cf)

上記設定完了後、「ESC」ボタン押下後に「:wq(上書き保存して終了)」コマンドを実施。

3) 認証情報ファイルの作成

① 認証ファイルへのユーザ情報記述

上記の「smtp_sasl_password_maps」で指定した認証情報ファイルを作成する。

 ※今回の例では「/etc/postfix/smtp_pass」というファイル名で作成する。

SMTP認証に必要な情報は以下の書式で設定する。

 ※ SMTPサーバの指定は、上記の「relayhost」と同じ内容を設定する。

  [相手先SMTPサーバ]:587 ユーザID:パスワード

設定保存後、他ユーザから参照されないようパーミッション(ファイル権限)を「600」に変更する。

② 認証ファイルのhash化

作成した認証情報ファイルを「postmap」コマンドを使用しhash化する。

 ※「postmap」コマンドでhash化させると、「ファイル名.db」というファイルが作成される。

「smtp_pass.db」ファイルが新たに作成されていることを確認する。

4) Postfix設定の反映

【 Postfixの再起動 】

以下コマンドでpostfixを再起動し設定を反映する。

再起動後、postfixが正常に起動(Active:running)していることを確認する。

5) 動作確認

実際にメールを送信し、/var/log/maillog を確認しながら、正常にSMTP認証が通ったのちにメールが送信されていることを確認する。

セキュリティ対策は?

メールサーバは、どこからのメールを受信し、どこへ送信するかがとても重要になります。

この設定を間違えると、誰でも自由にメールを送信できてしまう環境(オープンリレー)になり、意図しないメール送信や、なりすましメールの温床につながることがあります。

そのため、メールサーバだけでなく、ファイアウォールやOS側のアクセス制御も使い、想定したメールのみを受け付けてリレーするように設定してください。

まとめ

メールサーバの適切な設定・運用を行うことは、メールの到達率に大きな影響を与えます。

昨今人気のPostfixは、過去に支持を得てきたMTAにおいて課題と言われてきた点が改善されており、運用がしやすく、セキュリティ面での設定もしやすいと言われています。ただ、そうした評価の高いツールであっても、時流に合わせた適切な運用が必要です。

たとえば、冒頭で説明したOP25Bは、ISPと迷惑メール送信事業者との闘いの中で生まれ、各事業者はこうした技術の進化に都度対応してきました。今後もこのような変化が現れれば、その度に対応していく必要があります。こうした時流に合わせた運用を行うには、情報収集・技術力・運用ノウハウが重要になってきます。

もし、メールサーバの運用に不安をお持ちであれば、ぜひ当社の「ベアメール」をご検討ください。