I Love FX
    キャッシング
    --------(--)

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。
    2010-11-27(Sat)

    XAMPP Mercury/32メールサーバの設定(SSL化)

    Mercury/32メールサーバのSSL化

    STARTTLS をサポートしていないメーラーのために、SMTP/POP3/IMAP4 over SSL を実現します。

    (SSLトンネル/SSLラッパー stunnelの利用)
    SSLトンネルとかSSLラッパーと呼ばれるソフトウエアがあります。
    これはSSL化していないサーバと併用する一種のプロキシーサーバです。

    ・動作イメージとしては、以下のようになります。
    ユーザー <= (SSL) => SSLトンネル/SSLラッパー <= (平文) => サーバ

    この目的で使えそうなフリーソフトを調べてみますと過去には幾つかのソフトウエアがあったのですが、確実にメールサーバにつかえるソフトに "stunnel" が有ります。

    SSLトンネル/SSLラッパーの動作は、単に平文をSSLに変換するだけですので複数組のポートが設定可能であれば、いわゆるhttpサーバを対象としたツールも流用可能と考えられます。

    この代換え可能なソフトウエアの中で、"pound" と言うロードバランサとして使える興味深いツールも有りました。

    ロードバランサは、集中するサーバへをアクセスを複数のサーバに分散させる仕組みで、検索エンジンやYahoo!オークション・2チャンネルなどでは必須な技術となります。いずれ機会がありましたら、"pound"を使ったロードバランサも試してみたいと考えています。

    以上から、ここでは "Stunnel" を使いSSL化を実現します。

    Stunnel -- Universal SSL Wrapper

    Stunnelは、非SSLプロトコルを扱うサービス(POP・IMAP・LADAPなど)を元のサービスに手を加える無くSSL化できる、いわゆる”ユニバーサルSSLラッパ”と呼ばれるソフトウエアです。
    なお、GPL(GNU General Public License)で提供されてるオープンソフトウェアです。

    1. Stunnelのダウンロード

    【Stunnel-4.x最新版(2010.11.25)】
    Windows用のプログラムは、 "http://www.stunnel.org/download/binaries.htmlStunnel サイト" からダウンロードします。
    現在(2010年11月25日)最新のプログラムファイルは、以下のバージョンとなります。
    705871 Sep 19 14:01:34 2010 stunnel-4.34-installer.exe

    Stunnel01

    2. Opensslのダウンロード

    XAMPPをインストールした時点で「OpenSSL」がインストールされているはずですが、上手く動作しない場合は下記からダウンロードし再インストールします。(2101.12.26修正)
    OpenSSL v1.0.0b Light

    Openssl

    OpenSSL v1.0.0b Light をインストールします。

    3. Stunnelのインストール

    (1) ダウンロードしたファイルをダブルクリックしインストールを開始します。
    (2) ライセンス内容を読み [I Agree] をクリックします。

    Stunnel03

    (3) インストールするコンポーネントの選択:そのまま [Next] をクリックします。

    Stunnel04

    (4) インストールするフォルダの選択
    そのまま [Install] をクリックしても良いのですが、私はXAMPPと同じフォルダである "D:\xampp\stunnel" にインストールしました。

    Stunnel05


    4. Stunnelの設定

    Stunnelの設定は、テキストファイルである "stunnel.conf" を編集することで行います。
    編集は以下の手順で,"stunnel.conf" を呼び出します。
    スタート > プログラム > stunnel > Edit stunnel.conf

    Stunnel08

    変更箇所は、サーバー認証書(cert)と、その対になる鍵(key)です。
    サーバー認証書(cert)は、先に "FTPS" で作成した認証書ファイル (certificate.crt) を使用します。
    その対となる鍵ファイル (private.key) も同様です。


    "-------"で囲った範囲を重ね書きした上で、あなたのサーバでの正しいサーバー認証書/鍵ファイルのフルパスに書き換えて下さい。

    ↓↓↓↓↓↓↓ ここから ↓↓↓↓↓↓↓
    ------------------------------------------------------------------
    ; Sample stunnel configuration file by Michal Trojnara 2002-2006
    ; Some options used here may not be adequate for your particular configuration

    ; 証明書/キーは、サーバ・モードでは必須、クライアントモードではオプションとなる
    ; デフォルトの証明書の使用はテスト時のみで実稼動時には使用しないこと。
    ;cert = stunnel.pem ------------- サーバ証明書
    ;key = stunnel.pem ------------- 秘密キー 
    cert = D:\xampp\certifications\certificate.crt
    key = D:\xampp\certifications\private.key


    ; パフォーマンスチューニング
    socket = l:TCP_NODELAY=1
    socket = r:TCP_NODELAY=1

    ; Eudoranoのバグ回避策
    ;options = DONT_INSERT_EMPTY_FRAGMENTS

    ; 証明書検証オプション(デフォルトは検証しない。)
    ;verify = 2
    ; Don't forget to c_rehash CApath
    ;CApath = certs

    ; 証明書の検証に使う ルートCA証明書ファイル名(これを使う方が簡単)
    ;CAfile = certs.pem

    ; Don't forget to c_rehash CRLpath
    ;CRLpath = crls

    ; Alternatively you can use CRLfile
    ;CRLfile = crls.pem

    ; ログファイルを記録する。Max = 7 :全て
    ;debug = 7
    ;output = D:\stunnel.log

    ; クライアントモード時:yes
    ;client = yes

    ; サービスレベルの設定
    ; accept:stunnel が 接続を待ち受けるホスト名またはアドレスとポート。
    ; connect:stunnel が接続する各SSL対応サーバのホスト名またはアドレスとポート番号。

    [pop3s]
    accept = 995
    connect = localhost:110

    [imaps]
    accept  = 993
    connect = localhost:143

    [ssmtp]
    accept  = 465
    connect = localhost:25

    ;[https]
    ;accept  = 443
    ;connect = localhost:80
    ;TIMEOUTclose = 0

    ; vim:ft=dosini
    ------------------------------------------------------------------
    ↑↑↑↑↑↑↑ ここまで ↑↑↑↑↑↑↑

    以上で、設定は終了です。

    5. Stunnelの起動

    ・下図で、 "Run stunnel" ① をクリックして起動します。
    ・常時サーバーとして動作させる場合は、Stunnelを "Service Install" ② でサービスとしてインストールした後、"Service Start" をクリックして起動します。

    Stunnel09


    6. 各サーバーSTARTTLSの無効化

    各サーバのSTARTTLSのチェックを外し無効化します。

    (1) SMTPサーバのSTARTTLS無効化
    SMTP非SSL

    (2) POP3サーバのSTARTTLS無効化
    POP3非SSL

    (3) IMAP4サーバのSTARTTLS無効化
    IMAP4非SSL

    以上の再設定を行い、Mercury/32を再起動します。


    7. StunnelによるSSL化の確認

    例によってMozilla Thunder birdで行います。

    (1) POP3サーバの設定変更
    ポート番号を、995 (IMAP4の場合は、993) に、[接続の保護] を、SSL/TSLに変更します。
    Thunderbird10


    (2) SMTPサーバの設定変更
    ポート番号を、465 に 、[接続の保護] を、SSL/TSLに変更します。
    Thunderbird11

    以上で、メーラの設定が終了しました。

    実際にメールサーバとして運用するには、外部から直接、ポート25・110・143 にアクセスできないように、同ポートを閉じておく必要が有ります。

    ↓の評価ボタンを押してランキングをチェック!
    素晴らしい すごい とても良い 良い
    スポンサーサイト
    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))

    送信時受信時
    通信ポート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)]  を選択します。
    Mercury01

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

    (4) ユーザ詳細

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

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

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    2. モジュールの選択

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

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

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    3. Mercury Core モジュールの設定

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

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

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    4. MercuryS SMTP Serverの設定

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

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

    b. その他の有用な設定)
    ・[無効なローカルアドレス宛メールを受け取る。]
    これを有効にしますと、無効なユーザ宛のメールを受け取っても送信元にエラーメッセージを送らなくなります。

    c. SMTP「VRFY」コマンドを不許可
    SMTPのVRFYコマンドは、ユーザーアカウントが存在するかどうか調べるコマンドです。
    このコマンドを無効にすると、悪意のある第三者がスパムを送りつける目的で有効なユーザーの有無を調べるのを阻止します。

    しかし新規にユーザアカウントを作成する際にVRFYコマンドを遣って重複の有無を調べることができなくなります。

    d. ロギング

    一般ログのファイル名および全てのセッションを記録するログファイルを置くディレクトリを指定します。

    (3) [接続制御] パネルの設定

    セキュリティ向上のため、SMTP使用時にユーザー認証機能を加えます。
    a. ① [コネクション制御のエントリの編集]
    [制限を追加] ボタンをクリックし、接続を許可するIPアドレスの範囲および拒否するIPアドレスの範囲を追加します。
    Mercury12

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

    b. ②,③ [リレー制御]
    ②,③を選択し、チェックを入れます。他は状況に応じて設定します。

    c. ④ [AUTHパスワード・ファイル(P)]
    セキュリティ確保のため、SMTP使用時にユーザー認証を行います(SMTP-AUTH)。
    AUTHパスワードファイルは、ここで作成できませんので、前もって空のテキストファイルを作っておきます。そして④欄に[AUTHパスワード・ファイル]のファイル名を含むフルパスをタイプします。

    d. ⑤ [SMTP AUTH用パスワードファイル] の編集
    SMTPサーバを使用するクライアントのアカウントと名とパスワードをタイプします。
    ⑤の [編集] ボタンをクリックすると下記のエディタが表示されますので、ユーザーアカウント名とパスワードをスペースで区切って利用者分をタイプします。
    Mercury13

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


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

    c. SSL証明書ファイルパスの設定
    上図で[このファイルを証明書として格納] の欄に作成するSSL証明書ファイルの名称を含むフルパスを入力します。

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


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

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

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    5. MercuryP POP3 Serverの設定

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

    (1) [一般] パネル
    ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログ。
    セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。
    Mercury18

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

    サーバ証明書は、SMTPサーバで作成したファイルを使用しますので、② [参照] をクリックして読み込みます。
    [プロパティ] をクリックして正しくサーバ証明書ファイルを読み込んだことを確認します。

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    6. MercuryI IMAP4 Serverの設定

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

    (1) [一般] パネル
    ここで確認する必要がある箇所は、① [使用するIPインターフェース] と、② ログとなります。セッションログは、サーバの設定が完了するまではチェックし有効にして良いかもしれません。
    Mercury21

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

    以上で、サーバの設定は終わりです。

    上記サーバー設定の確認は、Mozilla Thunderbird で行いました。
    Mozilla Thunderbird はメールアカウント作成でサーバー名など設定情報を全て入力した後、サーバー・ポートを探しに行きますので、上手く探し当てることができたらサーバの設定は成功しているということになります。

    この確認は、後日「続き」に書きますので、興味のある方は「続きよむ」をクリックして下さい。

    ↓の評価ボタンを押してランキングをチェック!
    素晴らしい すごい とても良い 良い

    続きを読む

    最新記事
    カテゴリ
    応援クリック
    お役に立てました? クリックしてね。
    人気ブログランキングへ にほんブログ村 IT技術ブログ Webサイト構築へ
    にほんブログ村

    FC2Blog Ranking

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
    お知らせ
    0円/100円 PCはいかが?



    サイドビジネスはいかが?

    太り気味なあなたに!

    検索フォーム
    RSSリンクの表示
    リンク
    FC2サービス
    ログ ホームページ
    お勧めお小遣い稼ぎサイト
    マクロミルへ登録
    5百-千円/月稼げます。
    討論会参加で3万円も

    ここから申し込むと
    250p貰えます
    無料ゲームで稼げる&高還元率ポイントサイト│ドル箱
    Pt獲得チャンス多い

    Pt獲得チャンス多い
    MicroAd
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。