作成日:2005年10月23日、更新日:2006年02月16日 作成:鷹の巣

Windows95/98/Me/NT/2000/XP用のメールサーバーインターネットMail Server Radishの設定例を紹介します。


Windows用インターネットMail Server Radishの設定例 追記

以下の説明では、ルータ配下のLAN内にメールサーバー(SMTPサーバーとPOP3サーバー)を設置します。LAN内のプライベートIPアドレス(局所機番)は、192.168.0.0~192.168.0.255としています。このLAN内のプライベートIPアドレスは、192.168.0.0/24(省略形では、192.168.0/24)と表示します。ルータのプライベートIPアドレスを192.168.0.1とし、メールサーバーをインストールしたマシンのプライベートIPアドレスを192.168.0.2としています。

Radishドキュメントを参考に設定しました。フリーソフト(フリーウェア)ですが、機能的には、ArGoSoft Mail Server Plus版と同等です。以下の設定図は、RadishのVer.3.0.0-b031(2006年01月23日付)で作成致しました。

目次

  1. インターネットMail Server Radishの概要
  2. Radishのインストール
  3. インターネットMail Server用Radishの設定方針
  4. メールサーバーの設定例
    1. インターネットMail Server Radishの起動画面と下りメニュー画面
    2. SMTP/POP3サーバの基本設定
    3. SMTPサーバの設定(2006.02.16追記)
    4. POP3サーバの設定
  5. メールサーバのユーザー名の設定例
  6. DNSサーバの設定例
    1. radishのDNSサーバの設定例
    2. 自宅(自前)DNSサーバーの正引きゾーンファイルへのSPFレコード追加例(2006.02.16追記)
  7. おまけ(2005.11.03追記)
    1. コマンドプロンプト画面より、POP3メールパスワードを変更するPerlスクリプト例
    2. LAN内のブラウザからPOP3メールパスワードの変更
  8. おわりに

1. インターネットMail Server Radishの概要

私がインターネット用Mail Serverとして、Radishを使用した理由は、以下の特徴があり、機能的には、ArGoSoft Mail Server Plus版と同等です。機能的に上を見れば、きりがありませんが、メーリングリスト等を望まない限り、安心して使用出来ます。

また、Webページからフォームメールを送信することもできます。実際に使用している例として、「鷹の巣」の自宅サーバーへの連絡メール自宅メールサーバー受信試験用入力があります。詳細は、Windows自宅サーバー用フォームメールの設定方法(総集編)をご参照願います。

  1. 全体(Ver.3.0.0-b031)の特徴

  2. SMTPサーバー(Ver.3.0.0-b031)の特徴

  3. POP3サーバー(Ver.3.0.0-b031)の特徴

注)
  1. POP before SMTPについては、おいでんホームページさんの【おいでん講座:POP before SMTPとは何ぞや?】をご参照願います。 DRAC(Dynamic Relay Authorization Control)のこと等も記載されています。

2. Radishのインストール

インストールは、極めて簡単です。以下に示します様にWindowsのシステムの入っているドライブ以外にインストールされることを推奨します。

  1. Radishダウンロードから、lzh圧縮された実行ファイルを入手し、解凍します。

  2. 解凍して出来たファイル(Radish.exe等)を稼動させるフォルダに移動させます。以下の説明では、D:\WWW\radishというフォルダに設置した場合を説明しています。設置するフォルダ名のパスには、半角スペースを含まない様にして下さい(悪い例.C:\Program□Files\radish)。必須ではありませんが、これは少しでも障害が発生するのを防ぐためです。

  3. 稼動させるフォルダから、Radish.exeを起動させるとインストールは完了です。

  4. 上記のインストールでは、D:\WWW\radish\mbox\ユーザ名というフォルダにメールユーザの本文が蓄積されます。

  5. 次に次項の設定を行います。

3. インターネットMail Server用Radishの設定方針

安全にインターネット用メールサーバーを構築するために以下の方針で設定を行います。

  1. インターネット上でメールの送受信を行う。TCP25番ポートをインターネットに開放する。
  2. 固定IPアドレスである場合は、user@[vvv.xxx.yyy.zzz]というIPアドレス(vvv.xxx.yyy.zzz)でも、メールを受信する。(RFC1123の項5.2.17
  3. メールの送信は、LAN内のサーバー機およびクライアント機のみを可能とする。
  4. メールの受信は、LAN内のサーバー機およびクライアント機のみ可能とする。TCP110番ポートは、インターネットに開放しない。
  5. 不正中継を防止する。

4. メールサーバーの設定例

Radishに実装されているPOP3の認証機能は、USER認証とAPOP認証です。インターネット上のリモート端末から、自宅メールサーバーを使用してメールの送受信を行う場合、USER認証では、インターネット上にパスワードとメール本文がそのまま流れます。また、APOP認証では、メール本文がそのまま平文で流れますので、注意して下さい。ここでは、セキュリティ上LAN内だけから、メールの送受信を行う様に設定を行います

注)LAN上のメールクライアント機がDHCP機能によって、非固定IPアドレスを使用している場合は、バインドアドレスや中継リスト欄には、
  192.168.0.2~254 や 192.168.0.*のような省略した書き方はできません。 <---重要

4.1.インターネットMail Server Radishの起動画面と下りメニュー画面

Radishを最初に起動しますと、下図の様な画面になります。(ポート番号は、SMTPサーバーのTCP25番だけで、インストールしたサーバー機の自己診断用IPアドレス(127.0.0.1)で待機します。)
「設定(S)」の「SMTP/POP3サーバ(S)」の設定を左クリックして、「SMTP/POP3サーバの設定ダイヤログ」を起動します。

Radishの最初の起動画面

Radishの下りメニュー画面

4.2.SMTP/POP3サーバの基本設定

「SMTP/POP3サーバの設定ダイヤログ」が起動されると、以下の表示となります。

RadishのSMTP/POP3サーバ設定ダイヤログの基本設定タブの初期画面

この画面を以下の様に変更します。

RadishのSMTP/POP3サーバ設定ダイヤログの基本設定タブの変更画面

(1)サーバー名欄:
SMTPサーバー同士の通信手順での会話に使用されますので、インターネット上で、IPアドレスに正引き出来ることが必須条件です。
メールの送受信を行うSMTPサーバーのホスト名をsmtp.example.comと設定します。
下段のドメイン名(example.com)と同じでも構いません。
ダイナミックDNSの場合は、割り当てられたサブ・ドメイン名(example.hn.orgなど)を登録します。
(2)ドメイン名欄:
メールの送受信を行う電子メールアドレスusr@example.comの@より右側の太字部分注)の登録を行います。
ダイナミックDNSの場合は、サブ・ドメイン名(example.hn.orgなど)を登録します。
インターネット上で、IPアドレスに正引き出来ることとDNSサーバーのMXレコードに登録されていることが必須条件です。
(3)IPアドレスでのメールの受信を行う為にドメイン名欄に追加設定します。
固定のグローバルIPアドレスを使用している方だけ設定して下さい。
この設定を行うとuser@[グローバルIPアドレス](鍵括弧が必要)でメールの受信が行えます。(RFC1123の項5.2.17
後述しますが、NETWORK ABUSE CLEARINGHOUSEさんの不正中継確認テストでIPアドレスを入力して、結果を得るためです。
非固定のグローバルIPアドレスを使用している方は、この不正中継確認テストを行う時だけ設定して下さい。
(4)自動受信常時処理欄:
プロバイダ等の他のSMTPサーバーから、メールを読出す機能ですから、チェックを外します。
(5)ログ詳細タイプ欄:
メールの送受信が多い場合を除いては、「デバック」にてログを取得します。
(6)ログ生成ファイル欄:
ログの生成ファイルは、「日ごと」に生成します。
注)電子メールアドレスusr@example.comの太字部分は、通常、SMTPサーバーのFQDN表記のホスト名を表わしています。
プロバイダのメールアドレスを見ますと、
user@mail1.example.com
user@mail2.example.com
の様になっています。このmail1とかmail2という部分は、通常、プロバイダのドメイン名にあるホスト名(計算機名)を表わしています。インターネット上で使用するホスト名は、この様にFQDN表記(フルドメイン表記)のホスト名にする必要があります。

インターネット上で使用する自宅SMTPサーバーの場合もFQDN表記のホスト名にする必要がありますが、一台のホスト(計算機)で、構築する場合がほとんどで、またホスト名の部分を短くするのが望ましいことから、ホスト部ドメイン名(例.mail1等)を省略し、ドメイン名(example.com)をそのまま使用したりしています。上の例では、ドメイン名(example.com)やダイナミックDNSで、割り当てたサブ・ドメイン名(example.hn.org)をそのまま使用しています。

但し、この様なホスト部ドメイン名を省略したメールアドレスを使用してメールを受信するには、DNSサーバーのMXレコードで、メール配送先をFQDN表記のホスト名から、ホスト部ドメイン名を省略したドメイン名に変更しなければなりません。

4.3.SMTPサーバの設定

前項の画面の「SMTサーバー」タブを左クリックして、以下の様に設定します。

RadishのSMTP/POP3サーバ設定ダイヤログのSMTPサーバタブの変更画面

(1)バインドアドレス欄:
インターネット上の全てのSMTPサーバーからメールの受信を行う為に、「INADDR_ANY」と設定します。
INADDR_ANYを設定しますと、他のIPアドレスを記入しても起動に失敗します。
(2)バナーメッセージ欄:
$s」をSMTPサーバーのFQDN表記(フルドメイン表記)のホスト名(ドメイン名)に変更します。
ダイナミックDNSサーバーのサブドメイン名を利用されている方は、サブドメイン名でも構いません。
インターネット上で、IPアドレスに正引き出来ることが必須条件です。
(3)バナーメッセージ欄:
セキュリティ上、Radishのバージョン「$v」を削除します。
場合によっては、Radishのプログラム名「$p」も削除します。
(4)Receivedヘッダ欄:
(2)と同様に「$s」をSMTPサーバーのFQDN表記(フルドメイン表記)のホスト名(ドメイン名)に変更します。
(5)中継許可の許可リスト欄:
サーバー機自身(127.0.0.1)以外にLAN内のクライアント機のメーラ(メールクライアント)だけから、メールの中継を許可します(メール送信の許可と同意)。それ以外は全て禁止となります。
上記の例では、サーバー機自身とサーバー機のプライベートアドレス(192.168.0.2)とクライアント機のプライベートアドレス(192.168.0.10)だけを許可しています。WebサーバーのCGIからメールを送信する場合も考慮すると、この様な設定になります。 ルータのプライベートアドレス(本例では、192.168.0.1)は、絶対に登録してはいけません。不正中継を許すことになります。 LAN内のクライアント機のIPアドレスが192.168.0.128~255の場合は、192.168.0.128/25と設定します。
(6)POP before SMTP有効時間欄:
まず最初は、上の例の様に0のままにしておきます。
これは、クライアント機のメーラ(メールクライアント)がメールを送信する前にPOP3による認証を行わない仮設定です。
メールの不正中継試験が終了し、Radishが実運用稼動に入りましたら、忘れずに30分から60分程度に設定し直します
(7)空白のFROMを許可する欄:Ver.3.0.0-b030(2005年11月23日付)以降(2006.02.16追記)
RFC1123の項5.2.9の要求に応えるために空白の送信メールアドレスを許可します。 DNS Reportで、左の方の入力にドメイン名(example.com)を入力し、「DNS Report」ボタンを押すと、DNSサーバーの検査に加えてMailサーバーの検査が出来ます。 ここにチェックを入れておくと、結果のCategory欄がMailで、Test Name欄がAcceptance of NULL <> senderの項目のStatus欄にPASSと表示されます。 Information欄には、
「OK: All of your mailservers accept mail from "<>". You are required (RFC1123 5.2.9) to receive this type of mail (which includes reject/bounce messages and return receipts).」 (合格:全メールサーバーは、"<>"を受付ました。RFC1123の項5.2.9で、この様式(拒否/応答文や返信を含む)のメール受信を要求されます。)
と表示されているはずです。

4.4.POP3サーバの設定

前項の画面の「POP3サーバー」タブを左クリックして、以下の様に設定します。

RadishのSMTP/POP3サーバ設定ダイヤログのPOP3サーバタブの変更画面

(1)バインドアドレス欄:

LAN内のクライアント機から見たPOP3サーバー機の自身のプライベートIPアドレスだけを設定します。(インターネット側から110番ポートにアクセス出来ない様にして下さい。)これは、USER/PASS認証では、パスワードが平文でインターネット上を流れ、パスワードが盗聴される恐れがあるためです。(APOP認証は、パスワードは、暗号化されます。)

メールクライアントがLAN内だけの場合は、ルータでのPOP3ポート110番の静的NAT結合(ポートフォワーディング)は、不要です。又、WAN側(外部のインターネット側)より擬装したパケットが入ってこない様、ルータ等にプライベートIPアドレスのフィルタの設定が必要です。

INADDR_ANYを設定して、POP3サーバーのTCP110番ポートをインターネットに開放しますと、インターネット上から、メールを読出せる様になります。しかし、本例ではセキュリティが著しく低下しますので、設定しません。

サーバー機にウィルス駆除ソフトのAVGなどが入っている場合で、POP3 Proxy Serverが介在する場合、Radish独自のパスワードの変更コマンド(CHPS)が使用できません。メールのクライアントから、Webサーバーを通してパスワードの変更ができる様にするには、ここにサーバー機の自己診断用IPアドレス(127.0.0.1)を追加します

(2)認証欄:
APOP及びUSER/PASSのどちらでも認証できる様にします。Outlook Expressは、APOP認証を使用できません。
(3)パスワード変更欄:
パスワード変更をLAN内のクライアント機のユーザーから、変更できるように設定します。現在は、コマンドプロンプト画面だけからしか変更できません。現在、バインドアドレス欄に自己診断用IPアドレス(127.0.0.1)を追加して、Webサーバー経由でパスワード変更を行う実験を行っています。詳細は、おまけを参照して下さい。

以上で、「SMTP/POP3サーバの設定ダイヤログ」の設定が終了しました。画面下の「OK」ボタンを押しますと、下図の様な確認メッセージが現れます。

Radishの設定終了時の注意画面

5. メールサーバのユーザー名の設定例

メールサーバに、postmaster や webmaster 等のユーザ名の登録を行います。
電子メールアドレスwebmaster@example.comの@より左側の太字部分の登録を行います。

「設定(S)」の「ユーザー(U)」の設定を左クリックして、「ユーザー設定ダイヤログ」を起動します。

Radishの下りメニュー画面

5.1.ユーザーの設定

最初の「ユーザー設定ダイヤログ」は、下図の様になっていますので、postmasterの行を左クリックして、ユーザーのpostmasterを選択します。

Radishのユーザー設定画面

ユーザ名が選択されると、下図の様に「追加」と「削除」と「編集」ボタンが有効になります。

Radishのユーザー設定画面1

下図の様にパスワードを入力して「編集」ボタンを押し、パスワードを設定します。下記パスワードは、何文字まで入力できるかは不明です。 

Radishのユーザー設定画面2

パスワードを設定を行いますと、下図の様にパスワード表示が「*」(アスタリスク)に変わります。

Radishのユーザー設定画面3

ユーザ名とパスワードを設定して「追加」ボタンを押しますと、下図の様に表示されます。

Radishのユーザー設定画面4

ユーザ名には、必須のユーザ名があります。メールアドレスのユーザー名として、「MAILER-DAEMON」と「postmaster」(RFC822の項6.3,RFC1123の項5.2.7,RFC2821の項4.5.1)と共に「abuse」(RFC2142)は、必須ですから、必ず追加しておいて下さい。

RFC2142(一般的なサービス、役割、機能に対するメールボックス名)の日本語訳の項3から項7より、まとめますと自宅サーバーでは、一般的に以下のユーザー名が必要になると、考えられます。

○必須のメールアドレス
abuse@example.com <-------- 顧客関連用
postmaster@example.com <--- SMTPサーバー用

○稼動しているインターネットサーバーに対するメールアドレス
webmaster@example.com <---- WWWサーバー用
ftp@example.com <---------- FTPサーバー用
hostmaster@example.com <--- DNSサーバー用

○ある方が良いと考えられるメールアドレス、
noc@example.com <---------- ネットワーク管理用
security@example.com <----- ネットワークセキュリティ用

これらの管理用ユーザー名を追加した場合、メーラに全部を登録するのは面倒です。従って、エリアス設定ダイヤログで別名として設定し、一つのメールアドレスに転送する設定を行なうことも出来ます。

上記の管理用ユーザー名の登録が終りましたら、通常のメールアドレスのユーザー名[家族で使用する名前(本例では、taroやhanako)等]を登録します。

5.2.その他の設定

下図の様に示します様に「エリアス設定ダイヤログ」と「自動受信設定ダイヤログ」と「ヘッダ変換設定ダイヤログ」と「ホスト設定ダイヤログ」は、便利な機能ですがそのまま使用します。

Radishのエリアス設定ダイヤログの初期画面

Radishの自動受信設定ダイヤログの初期画面

Radishのヘッダ変換設定ダイヤログの初期画面

Radishのホスト設定ダイヤログの初期画面

6. DNSサーバの設定例

6.1 radishのDNSサーバの設定例

Radishをインストールしたサーバ機のブラウザからWebページが閲覧出来る場合、DNSサーバーの設定を行う必要はありませんので、初期状態のままにしています。ここでは、DNSサーバーの設定を行う必要はありませんが、メールサーバーとDNSサーバーの関係を説明します。

サーバをインストールしたマシンのプライベートIPアドレスの固定化がなされていて、下記の設定例の様に契約しているプロバイダのDNSサーバーが設定されていれば、「DNSサーバ設定ダイヤログ」の設定を行う必要はありません。

RadishのDNSサーバ設定ダイヤログの初期画面

メールサーバーとDNSサーバーの関係

自宅SMTPサーバーからのメールの送信
契約しているプロバイダのDNSサーバーや自前のDNSサーバー(「DNSサーバ設定ダイヤログ」の設定を行った場合は、RadishのDNSサーバ)を使用して、電子メールアドレスusr@example.comの@より右側の太字部分のドメイン名のMXレコードから、送信先のIPアドレスを決定する。
自宅SMTPサーバーへのメールの受信
相手(送信先)のSMTPサーバーが、自分の電子メールアドレスusr@example.comの@より右側の太字部分のドメイン名のMXレコードから、IPアドレスを決定する。メールを受信するには、DNSサーバーのMXレコードに自分のIPアドレスが、正しく設定されていることが必要です。

メールの受信は、かなり厄介です。メール受信試験DNSサーバーの調査をしっかり行って下さい。

6.2 自宅(自前)DNSサーバーの正引きゾーンファイルへのSPFレコード追加例

前述のDNSサーバーの調査で、ドメイン名を入力しますと、SPF record欄で、以下のような警告が出たりします。フリーメールのHotmail等は、spammer対策の為にDNSサーバーにSPFレコードが設定されていないと、メール受信を拒否するかもしれません。あるメールアドレスだけに送信ができない場合は、DNSサーバーや相手のSMTPサーバーの受信拒否設定なども関係しますので、注意が必要です。

Your domain does not have an SPF record. This means that spammers can easily send out E-mail that looks like it came from your domain, which can make your domain look bad (if the recipient thinks you really sent it), and can cost you money (when people complain to you, rather than the spammer). You may want to add an SPF record ASAP, as 01 Oct 2004 was the target date for domains to have SPF records in place (Hotmail, for example, started checking SPF records on 01 Oct 2004).

DNSサーバーの正引きゾーンファイルへのSPFレコード追加例(2006.02.16追記)
; SPF(Sender Policy Framework)レコードの定義

; xxx@sakaguch.comでの送信は、
; 接続元のIPアドレスが210.253.243.85で、MXレコードのSMTPサーバーがsmtp.sakaguch.comであり、
; 逆引きホスト名にasahi-net.or.jpが含まれている。「~all」で、それ以外のものは、全て偽者である。
sakaguch.com.           IN      TXT     "v=spf1 ip4:203.212.55.105 a mx ptr a:sakaguch.com mx:smtp.sakaguch.com include:asahi-net.or.jp ~all"

; xxx@smtp.sakaguch.comでの送信は、全く行っていない。
smtp.sakaguch.com.      IN      TXT     "v=spf1 -all"
参考URL:Sender ID:送信者側の設定作業 - @IT

7. おまけ(2005.11.03追記)

7.1. コマンドプロンプト画面より、POP3メールパスワードを変更するPerlスクリプト例

Radish(POP3サーバー)のパスワード変更実験用のPerlスクリプトを紹介します。

4.4項の「SMTP/POP3サーバの設定ダイヤログ」の「POP3サーバー」タブのバインドアドレス欄に自己診断用IPアドレス(127.0.0.1)を追加し、認証失敗時のタイムアウト時間(初期値:30秒)を1秒に設定変更します。

下記のPerlスクリプトをPOP3サーバー機に設置して、Perlスクリプトの「■□■ POP3サーバへの設定 ■□■」を済ませて、POP3サーバー機のコマンドプロンプト画面より、「perl   POPpassChg.pl」と起動すれば、ユーザーが「webmaster」で、そのパスワードが「ABcd01234#」の場合に新パスワードを「EFgh56789$」に変更することが出来ます。

自己診断用IPアドレスを使用しますので、サーバー機にウィルス駆除ソフトのAVGなどが入っている場合でも、POP3 Proxy Serverが介在しません。従って、Radish独自のパスワードの変更コマンド(CHPS)がPOP3 Proxy Server等に邪魔されずに使用できます。

#!D:/Perl/bin/perl.exe

# RadishのPOP3サーバーのパスワード変更実験用Perlスクリプト(IO::Socketモジュール使用例)
# POPpassChg.pl 2005.10.23 作成:鷹の巣 http://sakaguch.com/

# このスクリプトをコマンドプロンプト画面より、
# perl  POPpassChg.pl

use strict;
use IO::Socket;                                                        # IO::Socketモジュールを使用


#■□■ POP3サーバへの設定 ■□■
my $username='webmaster';
my $password='ABcd01234#';
my $new_password='EFgh56789$';
# サーバーへの接続待ち許容時間(秒)
my $timeout = 30;
#■□■ POP3サーバへの設定終わり ■□■

#POP3サーバ名を設定する
my $PopServer = '127.0.0.1';

# perlで、POP3サーバーのユーザーパスワードを変更
&main();
exit;

sub main {
        my $mes_error = &changePOPpassward($PopServer, $username, $password, $new_password, $timeout);
        print "$mes_error\n";
}

sub changePOPpassward {
        # 引数0:ホスト名、引数1:ユーザー名、引数2:パスワード、引数3:新パスワード、引数4:接続待ち許容時間(秒)
        my ($host, $username, $password, $new_password, $timeout) = @_;

        # POP3プロトコルgetservbyname('pop3','tcp')は110。
        my $port = 110;
        if ($host eq "") {$host = 'localhost';}

        # 戻り値を初期化。
        my $mes_err = "";
        my $SOCKET = IO::Socket::INET        -> new (PeerAddr => $host,    # POP3プロトコルでサーバーへ接続する
                                                PeerPort => $port,         # サービスポート番号
                                                Proto    => "tcp",         # プロトコル(通信手順)
                                                Timeout  => $timeout,      # 接続待ち許容時間(秒)
                                                );
        # POP3接続応答内容を破棄
        my $dummy = <$SOCKET>;

        if ($SOCKET) {
                # ログインユーザー名の送信
                $mes_err = &socket_command($SOCKET,"USER $username");
                # ログインパスワードの送信
                $mes_err = &socket_command($SOCKET,"PASS $password");
                if ( $mes_err eq "" ) {
                        # Radish POP3独自変更パスワードの送信
                        $mes_err = &socket_command($SOCKET,"CHPS $new_password");
                        if ( $mes_err eq "" ) {
                                $mes_err = "パスワードが正常に変更できました。";
                        } else {
                                $mes_err = "パスワードが変更できませんでした。\n\nPOP3応答:$mes_err";
                        }
                } else {
                        $mes_err = "ユーザー名又はパスワードが違います。\n\nPOP3応答:$mes_err";
                }
                # ログオフの送信
                &socket_command($SOCKET,"QUIT");
                # FTPサーバーから切断する
                $SOCKET -> close();
        } else {
                $mes_err = "$hostのポート$portに接続できません。";
        }
        return $mes_err;    # 戻り値を格納する。
}

sub socket_command {
        my ($socket,$command) = @_;
        # コマンドの送信
        print $socket "$command\n";
        # バッファに溜まっているデータも送る
        $socket        -> flush();
        # 応答内容を読み取る
        my $responce = <$socket>;
        # 行末の改行コードを削除
        chomp ( $responce );
        if ($responce =~ /OK/i){
                return "";
        } else {
                return $responce;
        }
}

注)上記のスクリプトは、実験用で、LAN内のプライベートアドレスからしかパスワード変更できない様なアクセス制限はありませんので、
  ご使用時には注意して下さい。

7.2.LAN内のブラウザからPOP3メールパスワードの変更

7.1のPerlスクリプトにCGIを実装し、Webサーバー経由でパスワード変更を行う様にしたものが、

ダウンロード ⇒ Windows用メールサーバーRadish(POP3サーバー)のパスワード変更CGI

です。このCGIは、LAN内のプライベートアドレスからしかアクセスできないように制限しています。

WebサーバーのCGIから、自己診断用IPアドレスを使用して、POP3サーバーに接続しますので、サーバー機にウィルス駆除ソフトのAVGなどが入っている場合でも、POP3 Proxy Serverが介在しません。従って、Radish独自のパスワードの変更コマンド(CHPS)がPOP3 Proxy Server等に邪魔されずに使用できます。

  1. 設置例

    Webサーバーのバーチャルホスト機能を使用して、公開Webページとは、別の実行パスの
     http://192.168.0.2/cgi-bin/POPpassChg (192.168.0.2:POP3サーバー機のプライベートアドレス)
    に同梱のファイルを一式設置します。

  2. アクセス方法

    LAN内のブラウザより
     http://192.168.0.2/cgi-bin/POPpassChg/POPpassChg.html
    でアクセスして、パスワード変更入力ページにアクセスする。
    アクセスには、プライベートアドレスを使用しないとアクセス出来ないようにします。

  3. 注意事項

    1. Perlのバージョンは、5以降でないと、動作しません。
    2. 安全上、プライベートアドレスでしか動作しない様に制限しています。
    3. インターネット側よりプライベートアドレスを偽装したパケットが入ってこない様にローカルルータ等を設定して下さい。
    4. インターネット側よりPOP3のTCP110番ポートにアクセスできない様にローカルルータ等を設定して下さい。
  4. 謝辞

    このCGIを作成するのにあたって、以下のURLを参考にして勉強し、このCGIを作成しました。

8. おわりに

以上で、サーバー側でのメールアドレスの設定が終わりました。
次にメールクライアントのOutlook Expressのメールアドレス設定Outlook Expressのオプション設定を設定して下さい。

メールクライアントのメールアドレスの設定が終りましたら、手順Cのサービスポートの確認で25番ポートが開放されていることを確認し、手順Fのメールサーバー動作の確認を行って下さい。

特記事項:(不正中継確認テストに関して)

4.3節のSMTPサーバの設定のバインドアドレス欄に「INADDR_ANY」(全てのIPアドレス)と設定すると、Radishは、インターネット上の全てのSMTPサーバーからメールの受信(中継)を行うことが出来る様になります。従って第三者から、Radishを不正に使用されない様、Radishの実運用稼動前に必ず不正中継確認テストを実施する必要があります。

不正中継確認テストでは、主に4.3節のSMTPサーバの設定の中継許可の許可リスト欄を検査することになります。そのためにも不正中継確認テスト時には、以下の仮設定を行っておくことをお奨めします。

  1. 「SMTP/POP3サーバの設定ダイヤログ」の「基本設定」タブのドメイン名欄に[グローバルIPアドレス](鍵括弧が必要)を登録しておくこと。(非固定IPアドレスの方は、仮設定です。)
  2. 「SMTP/POP3サーバの設定ダイヤログ」の「SMTサーバー」タブのPOP before SMTP有効時間欄は、0分にしておきます。(仮設定です。) ここに1分以上の数値が入っているとPOP3によるパスワード認証が行われて不正中継検査が正常に終了し、許可リスト欄の検査が出来なくなる場合もあります。

メールの不正中継試験が正常に終了しましたら、仮設定を元に戻して再度、不正中継試験を実施して下さい。Radishが実運用稼動に入っても設定を変更したり、バージョンアップした場合は、必ず不正中継試験を必ず実施して下さい。ご健闘を祈ります。

目次▲頁先頭