メールサーバの構築(XMail編)


Windows ベースのメールサーバをいろいろ試してみましたが、中でも XMail はフリーにも関わらずなかなかよくできているので、ここで簡単に紹介しておきます。
XMail は、SMTP/POP/Finger をサポートするオールインワンのメールサーバで、POP before SMTP に対応するほか、Docomo 対策(特定ドメイン宛てのメールを特定の SMTP サーバに送る機能) も可能であり、POP クライアント機能を利用して Fetchmail のようなことも可能になっています。また、スキャナは限定的ですがウイルススキャンも可能 (おやじの環境では最終動作確認まではできていませんが、こちらを参照のこと。) になっているほか、sendmail 互換プログラムも用意されているなど、Windows 用としてはかなり自由度が高いメールサーバです。日本語の管理用の Perl スクリプトも用意されているので、日常の運用管理も容易に行える優れものと思います。更に、Xmail に対応した Perl ベースのWeb メーラもあり、言うことなしでないでしょうか?
なお、XMail を動作させるための情報については、 XMail のサイトにかなり詳しく解説されているので、ほとんどそれだけで対応できると思いますので、ここでは的を絞って、もう少し具体的なイメージで簡単に紹介をしておきます。また、BBSもかなり活発に活動しているので、どうしても解決できない場合は利用されたらどうでしょうか?見るだけでも、FAQ的にいろいろな問題が上がっていますので、非常に参考になると思います。
 
XMail がSSL対応できるようなので対応しました。
 

■前提条件

XMail を快適に使うための条件を以下に示します。なお、XMail の設定はテキストベースでもできますが、ここでは Windows なので GUI ベースで行うことを前提にしています。

  1. 使用するOSは、Windows NT/2000/XP/2003 、つまり NT 系であること。サーバなら当然? XMail は、これらの OS 環境下でシステムサービスとして動作する。

  2. 管理はWeb ベースで行うが、これには XMailCFG という Perl スクリプトを使用するので Web サーバ及び Perl が使用できる環境が既にあること。

  3. ここでは基本的なメールサーバを構築するものとする。付加的な機能について、基本動作が設定できれば、XMail のサイトのドキュメントでできるはず。

Web サーバや Perl については、メールサーバを動かそうとされている方なら既に動作していると思いますが、もしこれからなら、こちらを参考にしてください。

■インストール

インストールそのものは、いたって簡単であり、以下により作業します。
  1. まずは、 xmailserver.jp から最新の XMail ( Windows 用バイナリパッケージ )と XmailCFG をダウンロードしてくる。XMailCFG には 1.x 系と 2.x系 があるが、1.x 系はメンテナンスバージョンの扱いなので、新規なら 2.x系をダウンロードしてくる。

  2. Xmail は zip形式の圧縮ファイルなので、システムドライブのルート( 一般的には、C:\ 。実際はどこでも良いが、XMailCFGを使用する場合はデフォルトのディレクトリ構造を前提にしているので変更しないこと。 )に解凍する。解凍すると、xmail-x.xx ( x.xx はバージョン番号 )というフォルダが作成されるので、適当な名前に変更するが、ここでは、C:\xmail としたものとする。

  3. 続いて、XMailCFG をインストールする。XMailCFG は Web ベースの管理用 GUI を提供する Perl スクリプトなので、Web アクセスできる場所に設置することになる。ここでは、Apache2.0 系を使用することを前提とするが、他のデーモンの場合はそれぞれに合わせて設置する。
    ここでは、Apache のドキュメントルートに置くものとし、ドキュメントルートは、C:\apche2\htdocs になっているものとする。おやじは、ここの配下に xmailcfg というディレクトリを作成し、ここに解凍した。おやじの場合、これにより XmailCFG には、 http://www.aconus.com/xmailcfg でアクセスが可能になる。

  4. XMailCFG は Perl スクリプトなので、各スクリプトの Perl へのパスを環境に合わせる必要がある。(ANHTTPDは、スクリプト内のPerlパスは無視して自分が検出したパスを利用するので、本作業はしてもしなくてもよい。)  XMailCFG には、このための"update.bat"というバッチファイルが用意されているので、これを実行するだけでパスを環境にあわせてくれる。"update.bat"は、XMailCFG 内の setup フォルダ内にあるので、コマンドプロンプトで以下を実行すればよい。(エクプローラでクリックして実行でもよい)

    C:\>C:\apache2\htdocs\xmailcfg\setup\update.bat
    上記で、処理結果が表示されるので、失敗していないことを確認したら、いずれかのキーを押下すればコマンドプロンプトの画面が閉じる。

■Apache の設定

これから、XMailCFG で設定を行っていきますが、それには、XMailCFG が CGI としてちゃんと動作するようにしなければならないのと、このままでは誰でもこのページにアクセスできてしまうので、.htaccess を使用してパスワード制限を行います。localhost 以外から管理することなく、家庭内で管理者が限定されているならパスワード制限は不要かもしれません。環境や必要性を適宜設定してください。
  1. 設定は、httpd.conf で行うが、C:\apache2\htdocs\xmailcfg 配下でCGI を動作可能なようにするとともに、ここではログイン認証するようにした。アクセス制限は、XMailCFGでの制御により、サーバ機と家庭内からのみアクセス可能とした。

  2. 具体的な設定としては、以下を httpd.conf に追加する。

    <Directory "C:/apache2/htdocs/xmailcfg">
        Options +ExecCGI
        AllowOverride AuthConfig
        Order allow,deny
        Allow from all
    </Directory>

    ・Options +ExecCGI : このディレクトリ配下で CGI を実行可能とする。
    ・AllowOverride AuthConfig Limit : このディレクトリ配下で .htaccess による認証を可能とする。
    ・Order allow,deny / Allow from all : とりあえずここでは自由にアクセスできるようにし、実際のアクセス制御は XMailCFG で制御する。

  3. 下記内容で、.htaccess というファイルを作成し、C:\apache2\htdocs\xmailcfg 配下に置くことにより、パスワード制限が可能になる。( 認証の詳細に関しては、こちらを参照のこと。)

    AuthType Basic
    AuthName "このページは、管理者専用です。"
    AuthUserFile C:/apache2/.htpasswd
    <Limit GET POST>
        require valid-user
    </Limit>

■XMail の設定

これから、XMailCFG で設定を行っていきます。ほとんど、XMail のサイトにあるドキュメントで用は足りるはずです。

◆基本セットアップ

ここでは、 XMail を動作させるための基本的な環境設定を行います。説明は、サーバ機本体で操作するものとして記述してありますので、適当に読み替えてください。
なお、ドキュメントの他、XMailCFG 自体でもかなり詳しい解説がついているので、設定で迷うことはほとんどないはずです。
  1. ブラウザから、http://localhost/xmailcfg と、XMailCFG にアクセスし、左側にあるメニュー欄から "基本セットアップ"を開く。この際、前項で認証するよう Apache を設定してあれば認証要求があるはずなので、認証を行う。

  2. "基本セットアップ"を開くと、"XMailCFG の環境設定"から始まる一連のセットアップ手順が表示されるので、順次実行していく。

  3. "XMailCFG の環境設定"

    ■管理アカウント

    XMailCFG で管理する XMail にアクセスするためのアカウント名とパスワードを登録する。

      ・管理アカウント名  : xmailmaster
      ・管理用パスワード : hogehoge

    ■サービスポート

    複数の XMail サーバを管理するのでなければ、デフォルトのままで修正不要。特にサービスポートを変更するといい事はない。

    ■XMail のインストールフォルダ/実行ファイル名

    XMail 本体があるフォルダと実行ファイル名( デフォルトは XMail.exe )を指定する。インストールフォルダは、インストール時に指定した "C:\\xmail" であり、実行ファイル名は、何も変更していないのでデフォルトのままで修正は不要。

     ※ 以下同様であるが、ここで指定したパスがそのまま CGI に使われるので、\\のようにエスケープ( \ が2個になるので注意が必要。

    ■MailRoot フォルダの指定

    フォルダ構造は変えていないはずなので、MailRoot フォルダは前項で指定したインストールフォルダ配下にある。従って、ここでの設定は、"C:\\xmail\\MailRoot" となる。

    ■パスワードの最小文字数

    デフォルトでは、4桁になっているが、あまりにも小さいと思われ、おやじは8桁にした。

    ■メールボックスの最大サイズ(KB)

    ユーザあたりのメールボックスの最大サイズでキロバイトで指定。ここでの設定は、システムとしての設定であり、ユーザ毎には個別で指定(ここでの値以下)できる。デフォルトは、10MBであるがディスク容量やユーザ数を睨みながら決定する。

    ■ポストマスターのメールアドレス

    ここでの指定は、XMail が吐くエラーメッセージの送信元や処理不能なメールの配送先として使用されるので、管理者が日常見るアドレスを指定する。 おやじは、"postmaster@mail.aconus.com" とした。

    ■タイムゾーンの指定

    タイムゾーンにおけるグリニッジ標準時に対する時差を指定するが、日本は 9 時間の時差なので、デフォルトのままでよい。

    ■その他

    その他に、メーリングリスト関係やウイルススキャン(ウイルススキャンについてはこちらを参照)に関する設定等があるが、とりあえず上記だけで普通に使用できる環境は整う。これらの設定については、必要に応じ、基本動作の確認後に設定すると良い。初めからいろいろと設定すると、動作しないときの切り分けが難しくなる。

    設定が完了したら、一番下にある "環境を保存"のボタンの押し、設定内容を保存する。

  4. "レジストリの登録"

    ここでは、XMail 起動時のオプションと XMail に付属する sendmail 互換プログラムの -f or -F オプションのデフォルト値として使用されるメールアドレス( 送信者 )を設定する。

    ・登録1(XMail 起動時のオプション)  : 標準設定の、"-Cl -Mr 24 -Pl -Ql -Sl "でよい。必要ならドキュメントに従い、追加設定する。
    ・登録2(sendmail 実行時の送信者) : おやじは、上記のポストマスターのメールアドレスで指定した "postmaster@mail.aconus.com" とした。

    設定が完了したら、一番下にある "登録する"のボタンの押し、レジストリに登録する

  5. "サービスの登録"

    XMail はシステムサービスに対応しているので、XMailCFG から管理する XMail を Windows のシステムサービスとして登録する。
    登録は、"サービスを登録"ボタンを押し、登録を実行するだけである。

  6. "基本セキュリティ"

    ここでは、XMailCFG から管理する XMail のコントロールサーバへのアクセスを許可するコンピュータの IPアドレスを定義する。デフォルトでは、全てからのアクセスが許可されているので、これを削除し、運用ポリシーに従い設定する。基本的に、設定例にある設定で何ら問題はないはずである。

    ・デフォルトの設定( 0.0.0.0 0.0.0.0 ALLOW 1 ) を設定値の右側の削除をクリックして削除する。(絶対に忘れないこと)
    ・新しい定義の追加で、以下を追加定義する。設定内容は、XMailCFG をインストールしたパソコン以外の全てのアドレスからのアクセスを拒否するとというもの。

    IPアドレス ネットマスク 許可属性 優先順位
    0.0.0.0 0.0.0.0 DENY 1
    127.0.0.0 255.255.255.0 ALLOW 2

  7. "SMTP リレー許可"

    ここの設定は、設定を誤るとこのサーバが不正利用され、スパム発信基地と化してしまうというとんでもないことになるので、細心の注意が必要である。といっても、自宅サーバとして使うのであれば、下記設定を行うだけでよい。デフォルトでは全てのクライアントからのメールを中継してしまう設定( 0.0.0.0 0.0.0.0 )になっているので、これは確実に削除する必要がある。その後、ここでは、リレーを許可するIPアドレスを指定するので、家庭内のアドレス(ネットワーク)を登録することになる。更に、別掲の K4 によるWebメールを使用するのであれば、自分自身、即ち localhost からのリレーも許可する必要がある。

    ・デフォルトの設定( 0.0.0.0 0.0.0.0 ) を設定値の右側の削除をクリックして削除する。(絶対に忘れないこと)
    ・新しい定義の追加で、以下を追加定義する。設定内容は、家庭内からの送信は許可するとともに、K4でのWebメールにも対応するというもの。

    IPアドレス ネットマスク 備考
    192.168.1.0 255.255.255.0 家庭内ネットワーク
    127.0.0.0 255.255.255.0 localhost

    続いて、"送信者(From:)アドレスによるリレー許可"の設定を行うが、外部からこのSMTPサーバを使用して外部へ送信する場合は、"そのままリレーする。"を選択し、外部から使う予定がないなら、その下の3項目から適宜選択して"更新する"ボタンを押す。

  8. "XMail 環境設定"

    ここで、XMail の環境設定を行う。

    ■基本設定

    それぞれの項目をクリックすると、各項目の説明が表示されるので設定には困らない。基本的な動作には全てを設定する必要はなく、ここではおやじがデフォルトから変更したもののみを記載する。

    ・ルートドメイン

    メールサービスにおけるプライマリドメインを指定する。 おやじのメインのドメインである "mail.aconus.com" を指定した。

    ・POP デフォルトドメイン

    POP 接続におけるデフォルトドメインを指定する。おやじのメインのドメインである "mail.aconus.com" を指定した。 XMail はマルチドメインに対応していて、ここで指定したドメインに所属するローカルユーザについては、POP アクセス時にユーザ ID のドメイン名部分を省略できるとのことであるが、普通は省略するべきではない。

    ・ポストマスターアドレス

    このサーバの管理者ノメールアドレスを指定する。 おやじは、3項の XMailCFG のポストマスターで指定したの同じ "postmaster@mail.aconus.com" とした。

    ・SMTP ハロードメイン

    XMail が他の SMTP サーバとの接続交渉で使う HELO ドメインの値を指定する。複数固定 IP サービスの場合は、自分のドメインを指定する。動的 IP や固定 IP でも1個の場合、一般的に逆引きはプロバイダのドメインになり不一致になるので指定しても無駄であり何も設定しないこと。 何も指定しない場合、XMail は DNS の逆引きによって得られるドメイン名を使用するので、サーバを回線に直結していてサーバ機がグローバルアドレスを持っている場合はそれが通知される。 サーバ機がルータ配下にある場合はどうにもならないので、このような SMTP サーバとやり取りするケースがある場合は、別途オプションにある SMTP ゲートウェイ機能を使って、そのドメイン宛のメールを自分の契約プロバイダの SMTP サーバへ転送する方法がある。この方法については、こちらを参照のこと。なお、本項の2項後にあるSMTP ゲートウェイの設定は、無条件にその SMTP サーバに転送する場合の設定であるので、ここには設定しないこと。

    ・SMTP サーバドメイン

    クライアントからのセッション開設時に、クライアントに通知するドメイン名を指定する。おやじのメインのドメインである "mail.aconus.com" を指定した。

    ・その他

    基本設定では、以降の項目は必要に応じて設定すればよいが、基本的な動作には不要である。なお、POP before SMTP はデフォルトで有効になっている。

    ■エラー処理関連

    ・エラー通知先アドレス

    配送エラーになると、その旨が送信元アドレスに通知されるが、ここで通知先メールアドレスを指定しておくと、このアドレスにもヘッダ情報だけであるが同時に通知される。一般的には、ポストマスターアドレスと同様でよいはずである。

    ・その他

    エラー処理関連では、以降の項目は必要に応じて設定すればよいが、基本的な動作には不要である。

    ■セキュリティ関連

    ここでは、基本的に設定は不要である。不正中継データベースの参照を設定したくなるが、動的 IP や固定1IPの環境下では、プロバイダが登録した同一アドレスグープ内に一件でも不正中継できるサーバがあり登録されていると、例え自分は問題はなくてもここに載ってしまうので、特に自宅サーバ関係者からメールを受ける可能性があるなら、指定しないほうが良い。

    ■POP3同期処理関連

    ここでは、基本的に設定は不要である。

    ■SMTP認証関連

    ここでは、SMTP 認証関係の設定をするが、ここで設定すると全てのクライントと SMTP サーバで認証が必要になり、実質使用できなくなってしまうので設定しないこと。XMailは、特に指定しなくても外部から使う場合の SMTP 認証に対応しているので、クライアントで設定するだけでよい。(※)

      ※ : 逆に、ローカルユーザで SMTP 認証を利用する場合、クライアントの設定だけでできるように記載があるが、おやじの場合、"セキュリティ"の"SMTP サーバアクセスコントロール"内にある"SMTP 認証アカウント管理"で個別登録しないと利用できなかった。???

◆ドメインの管理

XMailCFG にアクセスし、左側にあるメニュー欄から "ドメインの管理"を選択すると、"ドメインの追加"画面が表示されるので、以下により自分のドメインに関する設定を行います。

  1. まずは、デフォルトで設定されている "xmailserver.test"ドメインを削除する。左側にあるドメイン一覧にある"xmailserver.test"をクリックする。

  2. 右側に "xmailserver.testの管理"として、ドメイン情報が表示されるが、その下の"管理オプション" から "このドメインを削除"をクリックし、"削除を実行する"を押して削除する。メニューは、右上のプルダウンメニューでも選択可。

  3. 再度、左側にあるメニュー欄から "ドメインの管理"を選択し、"ドメインの追加"画面を表示する。

  4. "ドメイン名"欄に追加したいドメイン (おやじは、mail.aconus.com)を入力し、必要に応じてその下にあるドメイン毎の共通パラメータを設定し、"追加"を押す。なお、ここのパラメータは、後でも2項と同様にドメイン一覧からドメインを選択すれば、変更可能なので、とりあえず、ドメインだけ登録するだけでよい。

◆ユーザの管理

XMailCFG にアクセスし、左側にあるメニュー欄から "ユーザの管理"を開くと、"ユーザの追加"画面が表示されるので、以下によりユーザに関する設定を行います。

  1. まずは、所属ドメインを選択する。

  2. 必要なユーザ毎にユーザ名とパスワード(確認用を含む)を入力して、追加を押す。ポストマスターの登録を忘れないように。
以上で、基本的な設定は完了です。早速、登録したアカウントを利用して送受信試験をしてみましょう。

 

Outbound Port 25 Blocking (Docomo)対策他

プロバイダがOutbound Port 25 Blocking を導入したり、逆牽きしているドメインで自鯖からは受け付けてくれないドメインやDocomoへのメールがうまく配送できない場合、XMail の SMTP フォワーダ機能を利用して、契約 プロバイダ のSMTP サーバに転送するとよい。

  1. XMailCFG の "オプション" から "SMTP フォワーダ"を選択する。

  2. "新しい定義の追加"で、"ドメイン名"に "*.*"(Outbound Port 25 Blocking対策) や "docomo.ne.jp"(docomo対策) を指定し、"SMTP フォワーダ" に ISP の SMTP サーバを指定し、"この定義を追加"ボタンを押す。

■XmailのSSL化

XmailをSSL化し、SMTPS/POP3Sを実現するパッチがあるので、それを利用します。おやじは常用しているわけではないので、導入は各人の判断でお願いします。

◆インストール

インストールは、単にzipファイルを解凍してXmailのフォルダにコピーするだけです。

  1. こちらから、Windows用のバイナリファイルをダウンロードしてきます。おやじがダウンロードしてきたのは、Xmail1.22用のxmail-1.22-ssl-ext-0.0.3a-bin.zip です。

  2. ダウンロードしてきたzipファイルを解凍し、中身を全てXmailのインストールフォルダ(ここの例では、C:\xmail)にコピーする。このとき、Xmail本体が置き換えられるので、コピー前にサービスを停止し、Xmail.exeをXmail-orig.exeとでもリネームしてバックアップしてからコピーする。
    とりあえず、ここでサービスを起動すれば、以前の状態で起動する。

◆SSL証明書の作成

既にSSL証明書がある場合は必要ありませんが、ない場合は 解凍してコピーしたファイル内のmake-cert.batを使用すれば自己署名ファイル(xmail-ssl.pem)が作成できます。しかし、この証明書では新規にアクセスするたびに証明書の真偽を聞かれるため、非常にわずらわしいです。その対策としては、自分でCAとサーバの証明書を作成して上げればそのわずらわしさは解消されます。既にApache等でSSL化対応している場合は、いたって簡単です。

  1. まずは、こちらを参考にCAとサーバの証明書を作成する。既にApache等で作成している場合で、サーバ名が同じ(WWW.aconus.com)でよければ新規作成は不要である。ワイルドカード(*.aconus.com)で証明書を作成しておくと、便利かもしれません。

  2. Xmailで使用できる証明書は公開鍵と証明書が一体になったものなので、上記で作成した公開鍵と証明書を結合する。

    C:\etc>copy newkey.pem + server.crt xmail-ssl.pem

  3. できあがった証明書をMailRootフォルダ配下にコピーする。

    C:\etc>copy xmail-ssl.pem C:\xmail\MailRoot\ C:\

◆SSLの設定

SSL化の設定はXmaiCFGで行います。但し、バージョン2.21以降でないと設定できません。

  1. XMailCFG の "環境設定" から "XMail 環境設定"を選択する。

  2. 最後のほうにある、"SSL対応関連(オプション)"で、"SMTP over SSLの利用 (SMTP-SSL)"、"POP3 over SSLの利用 (POP3-SSL)"をそれぞれ"有効"にし、"SSLサーバ証明書 (SSLCertificate)"に上記で作成した証明書のファイル名"xmail-ssl.pem"を設定し、"この内容で上書き保存"ボタンを押す。

  3. Xmailを再起動するよう促されるので、再起動する。

  4. 続けてSPTPSとPOP3Sの待ち受けポートを設定するため、XMailCFG の "環境設定" から "XMailCFG 環境設定"を選択する。

  5. まずは、POP3Sの設定を行う。"POP3ポート(変更注意!!)"がデフォルトでは"110"となっているが、それをPOP3Sの995番でも待ち受けるように変更する。複数ポートを設定する場合は、待ち受けIPも指定する必要があるため、ここでは、"anyhost(0.0.0.0)"で待ち受けることにする。anyhost設定ではサーバ機が有している全てのアドレスで待ち受けることになるため、アドレスを限定したい場合は個別に設定すること。
    設定は、"0.0.0.0:110 0.0.0.0:995"と、アドレスとポートをコロンで区切り、半角スペース区切りで列挙するれば良い。
    続けてSMTPSの設定を行う。"SMTPポート(変更注意!!)"がデフォルトでは"25"となっているが、それを465番でも待ち受けるように変更する。Submission(587)ポートも使用するなら、設定は、"0.0.0.0:25 0.0.0.0:465 0.0.0.0:587"と、アドレスとポートをコロンで区切り、半角スペース区切りで列挙するれば良い。設定したら、"環境を保存"ボタンを押す。

  6. Xmailを再起動するよう促されるので、再起動する。

  7. 再起動したら、コマンドプロンプトで "netstat -an "と入力して110/995、25/465/587番でlistenしていることを確認し、テストしてみる。

 


Top Pageへ    F-Protへ