2010-11-25(Thu)
XAMPP Mercury/32メールサーバの設定
Mercury/32 メールサーバ(MTA)の設定 (2010.11.27修正)
安直にSSL化したいと考えトライ&エラーを繰り返していたのですが、やっと成功したので紹介致します。
結果Mercury/32がサポートしているのはSTARTTLSで、over SSLはサポートしていないと分かりました。
結果SSLを使ってメール送受信を暗号化する方法に、STARTTLS/STLS と、SMTP/POP3/IMAP4 over SSL が有ります。
・STARTTLS/STLS は、SMTP/POP3で通信を始めて途中でSSLに切り換える方式です。
・SMTP/POP3/IMAP4 over SSL は、最初からSSLによってSMTP/POP3を「くるんだ」状態で通信を始める方式です。
(by メールの送受信でSSLを利用して暗号化する (@IT))
SMTP/POP3/IMAP4 over SSL は、サポートしているメーラーが多いのですが、STARTTLS をサポートしているメーラーは限られてしまいます。
そこで、先ずMercury/32だけでできる STARTTLS の設定を行い、オプションとして SSLトンネル化による SMTP/POP3/IMAP4 over SSL を実現することにします。
設定方針
設定の方針としては、以下の順で紹介することとします。
・ メールアカウントの作成
・ STARTTLS化 SMTP ,POP3,IMAP4サーバの設定
・ SMTP,POP3/IMAP4サーバのSSL化を行います。
・ OP25B対策
最終的に各サーバをSSLトンネル化するのであれば、ここでSMTPサーバを含む全てのサーバをSTARTTLS化する必然性は有りませんが、Mercury/32単独で行うことができるセキュリティ対策だと思って下さい。
(1) Mercury/32管理パネルのオープン
XMAPPコントロール・パネルから、Mercury を [start] し、[admin] ボタンをクリックし下記の Mercury管理パネル を開きます。
(2) ローカルユーザ管理(u)パネルのオープン
Mercury/32管理パネルで、[メニューバーの[設定(C)] から [ローカルユーザ管理(u)] を選択します。
(3) ユーザーの追加
[追加(A)] ボタンをクリックし、ユーザの追加を行います。
(4) ユーザ詳細
ユーザ名・パスワードを入力し、[OK] をクリックします。
APOPは過去の遺物で、しかもMD5も安全では無いということですから必要ないでしょう。
以上を繰り返し、必要な数のユーザアカウントを作成します。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mercury/32管理パネルのメニューバー上の 「設定(C)」 をクリックし、プルダウンメニューから [プロトコルモジュール(r)] を選択します。
(2) プロトコル・モジュールの選択
以下で、MercuryS SMTP server、MercuryP POP3 server、MercuryI IMAP4rev1 serverをチェックします。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mercury/32管理パネルのメニューバー上の [設定(C)] から[コアモジュール(M)] 選択します。
(2) [一般] 項目の設定
[このシステムのインターネット名] に、ホスト名を含む FQDN を入力します。
他は初期設定のままで構いません(postmasterのユーザ名は要確認)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから [MercuryS SMTP Server] を選択します。
(2) [一般] パネルの設定
a. 使用IPインターフェース
有線LAN、無線LANなどLANインターフェースが複数ある場合に、LANインターフェースのIPアドレスを入力します。
b. その他の有用な設定)
・[無効なローカルアドレス宛メールを受け取る。]
これを有効にしますと、無効なユーザ宛のメールを受け取っても送信元にエラーメッセージを送らなくなります。
c. SMTP「VRFY」コマンドを不許可
SMTPのVRFYコマンドは、ユーザーアカウントが存在するかどうか調べるコマンドです。
このコマンドを無効にすると、悪意のある第三者がスパムを送りつける目的で有効なユーザーの有無を調べるのを阻止します。
しかし新規にユーザアカウントを作成する際にVRFYコマンドを遣って重複の有無を調べることができなくなります。
d. ロギング
一般ログのファイル名および全てのセッションを記録するログファイルを置くディレクトリを指定します。
(3) [接続制御] パネルの設定
セキュリティ向上のため、SMTP使用時にユーザー認証機能を加えます。
a. ① [コネクション制御のエントリの編集]
[制限を追加] ボタンをクリックし、接続を許可するIPアドレスの範囲および拒否するIPアドレスの範囲を追加します。
・エントリの属性(接続許可/接続拒否)と、それを対象とするIPアドレスの範囲を設定します。
b. ②,③ [リレー制御]
②,③を選択し、チェックを入れます。他は状況に応じて設定します。
c. ④ [AUTHパスワード・ファイル(P)]
セキュリティ確保のため、SMTP使用時にユーザー認証を行います(SMTP-AUTH)。
AUTHパスワードファイルは、ここで作成できませんので、前もって空のテキストファイルを作っておきます。そして④欄に[AUTHパスワード・ファイル]のファイル名を含むフルパスをタイプします。
d. ⑤ [SMTP AUTH用パスワードファイル] の編集
SMTPサーバを使用するクライアントのアカウントと名とパスワードをタイプします。
⑤の [編集] ボタンをクリックすると下記のエディタが表示されますので、ユーザーアカウント名とパスワードをスペースで区切って利用者分をタイプします。
(4) Mercury SMTPサーバ 『SSL』 パネルの設定
SSL/TLSを有効化します。サーバ証明書は下記で作成します。
a. SSL/TLSサポート
① [SSL/TLSセキュアコネクションポートを有効にする] をチェックします。
b. サーバ証明書を作成の開始
上図で② [作成] ボタンをクリックし、下記を開きます。
c. SSL証明書ファイルパスの設定
上図で[このファイルを証明書として格納] の欄に作成するSSL証明書ファイルの名称を含むフルパスを入力します。
あるいは、上図 ① [参照] をクリックしエクスプローラを開き、サーバ証明書ファイルを置くディレクトリに移動し、マウス右クリックを行い表示させたメニューで[新規作成(W)] > テキストドキュメントを選択し、空のテキストファイルを作成し、ファイル名を[Mercury.crt] とし、その空ファイルを読み込みます。
d. SSL証明書の作成
③ [作成] ボタンをクリックしてSSL証明書を作成します。作成に成功すると以下のメッセージが表示されます。
e. SSL証明書の確認
上記で作成したSSL証明書ファイルを、『SSL』 パネルの③ [プロパティ] ボタンをクリックし正常に作成されていれば下記のように表示されます。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから[MercuryP POP3 Server]を選択します。
(1) [一般] パネル
ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログ。
セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。
(2) [SSL] パネル
SSL/TLSサポートで、①の、
・ [SSL/TLSセキュア接続のサポートを有効にする。] をチェックします。
・ [非SSL/TLSプレイン・テキストでの接続を不可にする。] は必要に応じチェックします。
サーバ証明書は、SMTPサーバで作成したファイルを使用しますので、② [参照] をクリックして読み込みます。
③ [プロパティ] をクリックして正しくサーバ証明書ファイルを読み込んだことを確認します。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Mercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから [MercuryI IMAP4 Server] を選択します。
(1) [一般] パネル
ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログとなります。セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。
(2) [SSL] パネル
SSL/TLSサポートで、
①の [SSL/TLSセキュア接続のサポートを有効にする。] をチェックします。
・ [非SSL/TLSプレイン・テキストでの接続を不可にする。]は必要に応じチェックします。
・インターフェースが正しいか確認し。誤っていれば正しい値に変更します。
・SMTPサーバ設定時に作成した「サーバ証明書ファイル」を、② [参照ボタン] をクリックして読み込みます。
・取り込んだ「サーバ証明書ファイル」が正しいか、③ [プロパティ]をクリックして確認します。
以上で、サーバの設定は終わりです。
上記サーバー設定の確認は、Mozilla Thunderbird で行いました。
Mozilla Thunderbird はメールアカウント作成でサーバー名など設定情報を全て入力した後、サーバー・ポートを探しに行きますので、上手く探し当てることができたらサーバの設定は成功しているということになります。
この確認は、後日「続き」に書きますので、興味のある方は「続きよむ」をクリックして下さい。
↓の評価ボタンを押してランキングをチェック!

・問題点
Mozilla Thunderbirdを使ってMercury/32メールサーバの確認を行ったところ、以下の問題が明らかとなりました。
① Mozilla Thunderbirdの最初のメールアカウントは、暗号化していないメールサーバか、公式な認証局の証明を持つ暗号化サーバでなければエラー(サーバーを確認ステップが終わらない)となります。
② 最初に接続するときに「パスワードが違う」というメッセージが出て再入力を求められます。(再入力すればO.K.)
上記を回避するには、最初のメールアカウントとして、Mercury/32サーバ以外のメールアカウントを登録し、第2メールアカウントとしてMercury/32メールサーバのメールアカウントを作成する必要があります。
【Mozilla Thunderbirdでのメールアカウント作成の手順】
以下のようにメニューバーの [ツール(T)] プルダウンメニューの [アカウント設定(S)] を選択・クリックします。
左下の、[アカウイント操作] から [メールアカウントの設定(A)] を選択・クリックします。
上記操作で現れた下記に必要なデーターを入力し [続ける(C)] をクリックします。
すると、サーバーを探しに行って見つかると下図のように表示されます。
[アカウントの作成(C)] をクリックします。
すると、[不明な証明書] ですというメッセージを持つ [セキュリティ例外の追加] ダイアログBoxが表示されますので、[セキュリティ例外を承認(C)] をクリックします。
以上で、Mercury/32メールアカウントである ”testuser1” が作成できました。
以下同様に、”testuser2” を作成し、相互にメールを送ってみて送受出来ればサーバの設定が正常で有ることが分かります。
↓の評価ボタンを押してランキングをチェック!

安直にSSL化したいと考えトライ&エラーを繰り返していたのですが、やっと成功したので紹介致します。
結果Mercury/32がサポートしているのはSTARTTLSで、over SSLはサポートしていないと分かりました。
結果SSLを使ってメール送受信を暗号化する方法に、STARTTLS/STLS と、SMTP/POP3/IMAP4 over SSL が有ります。
・STARTTLS/STLS は、SMTP/POP3で通信を始めて途中でSSLに切り換える方式です。
・SMTP/POP3/IMAP4 over SSL は、最初からSSLによってSMTP/POP3を「くるんだ」状態で通信を始める方式です。
(by メールの送受信でSSLを利用して暗号化する (@IT))
送信時 | 受信時 | |
通信ポート | 25/465/587のいずれか | 110または995 |
SSL接続方式 | ポート25/587:STARTTLS 465:SMTP over SSL | ポート110:STLSポート 995:POP3 over SSL |
SMTP/POP3/IMAP4 over SSL は、サポートしているメーラーが多いのですが、STARTTLS をサポートしているメーラーは限られてしまいます。
そこで、先ずMercury/32だけでできる STARTTLS の設定を行い、オプションとして SSLトンネル化による SMTP/POP3/IMAP4 over SSL を実現することにします。
設定方針
設定の方針としては、以下の順で紹介することとします。
・ メールアカウントの作成
・ STARTTLS化 SMTP ,POP3,IMAP4サーバの設定
・ SMTP,POP3/IMAP4サーバのSSL化を行います。
・ OP25B対策
最終的に各サーバをSSLトンネル化するのであれば、ここでSMTPサーバを含む全てのサーバをSTARTTLS化する必然性は有りませんが、Mercury/32単独で行うことができるセキュリティ対策だと思って下さい。
1. メールアカウントの作成
メールサーバのインストールの前にメールアカウントを作成します。(1) Mercury/32管理パネルのオープン
XMAPPコントロール・パネルから、Mercury を [start] し、[admin] ボタンをクリックし下記の Mercury管理パネル を開きます。
(2) ローカルユーザ管理(u)パネルのオープン
Mercury/32管理パネルで、[メニューバーの[設定(C)] から [ローカルユーザ管理(u)] を選択します。

(3) ユーザーの追加
[追加(A)] ボタンをクリックし、ユーザの追加を行います。

(4) ユーザ詳細
ユーザ名・パスワードを入力し、[OK] をクリックします。
APOPは過去の遺物で、しかもMD5も安全では無いということですから必要ないでしょう。

以上を繰り返し、必要な数のユーザアカウントを作成します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2. モジュールの選択
(1) プロトコルモジュール選択パネルのオープンMercury/32管理パネルのメニューバー上の 「設定(C)」 をクリックし、プルダウンメニューから [プロトコルモジュール(r)] を選択します。

(2) プロトコル・モジュールの選択
以下で、MercuryS SMTP server、MercuryP POP3 server、MercuryI IMAP4rev1 serverをチェックします。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3. Mercury Core モジュールの設定
(1) コアモジュール管理パネルのオープンMercury/32管理パネルのメニューバー上の [設定(C)] から[コアモジュール(M)] 選択します。

(2) [一般] 項目の設定
[このシステムのインターネット名] に、ホスト名を含む FQDN を入力します。
他は初期設定のままで構いません(postmasterのユーザ名は要確認)。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4. MercuryS SMTP Serverの設定
(1) MercuryS SMTP server] 管理パネルのオープンMercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから [MercuryS SMTP Server] を選択します。

(2) [一般] パネルの設定
a. 使用IPインターフェース
有線LAN、無線LANなどLANインターフェースが複数ある場合に、LANインターフェースのIPアドレスを入力します。

b. その他の有用な設定)
・[無効なローカルアドレス宛メールを受け取る。]
これを有効にしますと、無効なユーザ宛のメールを受け取っても送信元にエラーメッセージを送らなくなります。
c. SMTP「VRFY」コマンドを不許可
SMTPのVRFYコマンドは、ユーザーアカウントが存在するかどうか調べるコマンドです。
このコマンドを無効にすると、悪意のある第三者がスパムを送りつける目的で有効なユーザーの有無を調べるのを阻止します。
しかし新規にユーザアカウントを作成する際にVRFYコマンドを遣って重複の有無を調べることができなくなります。
d. ロギング
一般ログのファイル名および全てのセッションを記録するログファイルを置くディレクトリを指定します。
(3) [接続制御] パネルの設定
セキュリティ向上のため、SMTP使用時にユーザー認証機能を加えます。
a. ① [コネクション制御のエントリの編集]
[制限を追加] ボタンをクリックし、接続を許可するIPアドレスの範囲および拒否するIPアドレスの範囲を追加します。

・エントリの属性(接続許可/接続拒否)と、それを対象とするIPアドレスの範囲を設定します。

b. ②,③ [リレー制御]
②,③を選択し、チェックを入れます。他は状況に応じて設定します。
c. ④ [AUTHパスワード・ファイル(P)]
セキュリティ確保のため、SMTP使用時にユーザー認証を行います(SMTP-AUTH)。
AUTHパスワードファイルは、ここで作成できませんので、前もって空のテキストファイルを作っておきます。そして④欄に[AUTHパスワード・ファイル]のファイル名を含むフルパスをタイプします。
d. ⑤ [SMTP AUTH用パスワードファイル] の編集
SMTPサーバを使用するクライアントのアカウントと名とパスワードをタイプします。
⑤の [編集] ボタンをクリックすると下記のエディタが表示されますので、ユーザーアカウント名とパスワードをスペースで区切って利用者分をタイプします。

(4) Mercury SMTPサーバ 『SSL』 パネルの設定
SSL/TLSを有効化します。サーバ証明書は下記で作成します。
a. SSL/TLSサポート
① [SSL/TLSセキュアコネクションポートを有効にする] をチェックします。

b. サーバ証明書を作成の開始
上図で② [作成] ボタンをクリックし、下記を開きます。

c. SSL証明書ファイルパスの設定
上図で[このファイルを証明書として格納] の欄に作成するSSL証明書ファイルの名称を含むフルパスを入力します。
あるいは、上図 ① [参照] をクリックしエクスプローラを開き、サーバ証明書ファイルを置くディレクトリに移動し、マウス右クリックを行い表示させたメニューで[新規作成(W)] > テキストドキュメントを選択し、空のテキストファイルを作成し、ファイル名を[Mercury.crt] とし、その空ファイルを読み込みます。

d. SSL証明書の作成
③ [作成] ボタンをクリックしてSSL証明書を作成します。作成に成功すると以下のメッセージが表示されます。

e. SSL証明書の確認
上記で作成したSSL証明書ファイルを、『SSL』 パネルの③ [プロパティ] ボタンをクリックし正常に作成されていれば下記のように表示されます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5. MercuryP POP3 Serverの設定
[MercuryP POP3 Server] の選択Mercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから[MercuryP POP3 Server]を選択します。
(1) [一般] パネル
ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログ。
セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。

(2) [SSL] パネル
SSL/TLSサポートで、①の、
・ [SSL/TLSセキュア接続のサポートを有効にする。] をチェックします。
・ [非SSL/TLSプレイン・テキストでの接続を不可にする。] は必要に応じチェックします。

サーバ証明書は、SMTPサーバで作成したファイルを使用しますので、② [参照] をクリックして読み込みます。
③ [プロパティ] をクリックして正しくサーバ証明書ファイルを読み込んだことを確認します。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6. MercuryI IMAP4 Serverの設定
[MercuryI IMAP4 Server]の選択Mercury/32管理パネルのメニューバーの「設定(C)」をクリックし、現れたプルダウンメニューから [MercuryI IMAP4 Server] を選択します。
(1) [一般] パネル
ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログとなります。セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。

(2) [SSL] パネル
SSL/TLSサポートで、
①の [SSL/TLSセキュア接続のサポートを有効にする。] をチェックします。
・ [非SSL/TLSプレイン・テキストでの接続を不可にする。]は必要に応じチェックします。
・インターフェースが正しいか確認し。誤っていれば正しい値に変更します。
・SMTPサーバ設定時に作成した「サーバ証明書ファイル」を、② [参照ボタン] をクリックして読み込みます。
・取り込んだ「サーバ証明書ファイル」が正しいか、③ [プロパティ]をクリックして確認します。

以上で、サーバの設定は終わりです。
上記サーバー設定の確認は、Mozilla Thunderbird で行いました。
Mozilla Thunderbird はメールアカウント作成でサーバー名など設定情報を全て入力した後、サーバー・ポートを探しに行きますので、上手く探し当てることができたらサーバの設定は成功しているということになります。
この確認は、後日「続き」に書きますので、興味のある方は「続きよむ」をクリックして下さい。
↓の評価ボタンを押してランキングをチェック!




Mercury/32 メールサーバ(MTA)の動作確認
Mozilla Thunderbirdの場合・問題点
Mozilla Thunderbirdを使ってMercury/32メールサーバの確認を行ったところ、以下の問題が明らかとなりました。
① Mozilla Thunderbirdの最初のメールアカウントは、暗号化していないメールサーバか、公式な認証局の証明を持つ暗号化サーバでなければエラー(サーバーを確認ステップが終わらない)となります。
② 最初に接続するときに「パスワードが違う」というメッセージが出て再入力を求められます。(再入力すればO.K.)
上記を回避するには、最初のメールアカウントとして、Mercury/32サーバ以外のメールアカウントを登録し、第2メールアカウントとしてMercury/32メールサーバのメールアカウントを作成する必要があります。
【Mozilla Thunderbirdでのメールアカウント作成の手順】
以下のようにメニューバーの [ツール(T)] プルダウンメニューの [アカウント設定(S)] を選択・クリックします。

左下の、[アカウイント操作] から [メールアカウントの設定(A)] を選択・クリックします。

上記操作で現れた下記に必要なデーターを入力し [続ける(C)] をクリックします。

すると、サーバーを探しに行って見つかると下図のように表示されます。
[アカウントの作成(C)] をクリックします。

すると、[不明な証明書] ですというメッセージを持つ [セキュリティ例外の追加] ダイアログBoxが表示されますので、[セキュリティ例外を承認(C)] をクリックします。

以上で、Mercury/32メールアカウントである ”testuser1” が作成できました。
以下同様に、”testuser2” を作成し、相互にメールを送ってみて送受出来ればサーバの設定が正常で有ることが分かります。
↓の評価ボタンを押してランキングをチェック!




- 関連記事
-
- XAMPP Mercury/32メールサーバの設定(SSL化)
- XAMPP Mercury/32メールサーバの設定