IIS4.0 で SMTP をリレーする

SERVER


SMTP の中継

SMTP ( Simple Mail Transfer Protocol ) とは、電子メールの配信を行うためのプロトコルです。

  1. ユーザや他のメールサーバから送られてきたメールの受理を行う。
  2. 目的のメールサーバへ受理したメッセージを配信する。
  3. メールの格納場所(メールボックス)へ受理したメールを保存する。

といったことを行います。

 

メール配信の一般的な流れとしては、

  1. ユーザがメールソフトを使って自分の SMTP サーバへメールを送る。
  2. 上記の SMTP サーバが、配信先の SMTP サーバへメールを送る。
  3. 配信先の SMTP サーバは受け取ったメールをメールボックスへ保存する。

というような流れとなります。ii にもあるように外部からのメールは SMTP へ送られてきますので、メールボックスをファイアーウォール内に置くような場合には、SMTP へのパケットをフォワーディングによってそのまま通過させるか、外部から内部へのメールを中継する SMTP を用意するなどの対処が必要になってきます。

今回のお話しでは、2. 番のメール中継の話を中心にしていきます。ファイアーウォール内のメールサーバ(受信専用)は既に出来上がっているものとして、中継用メールサーバを IIS で構築することにします。いわゆる MAIL PROXY というもので、メールボックスを持つメールサーバを内部ネットワークに置くことで外部ネットワークと遮断して、外部と内部の中継を行うためのサーバとして設定します。

 

ネットワーク構成

内部ネットワークアドレスとして、[192.168.0.0/24], [192.168.1.0/24], [192.168.2.0/24] の3つのネットワークを用意します。外部と直接接触しているのが [192.168.0.0/24] です。他の2つのネットワークは、外部とは直接的に接続されていません。

[192.168.1.0/24] には、外部とは隔たれた状態で [Mail Server] が用意されます。[Mail Proxy] によって外部から保護された配置になっています。

[192.168.2.0/24] は、いわゆる内部関係者のコンピュータが所属しているネットワークです。ここから [Mail Server] へ接続するための方法はいくつかありますが、今回はここからでも [Mail Proxy] を経由する方法を想定しています。

メールの流れとしては下のようになるように設定を行っていきます。

 

[A] -- [ 192.168.0.0/16 (内部全体)] から [ Mail Server ]

内部クライアントは SMTP サーバとして [ Mail Proxy ] を指定します。そして送られてきたメールのあて先を見て [ Mail Server ] 宛てだった場合、 [ Mail Proxy ] は [ Mail Server ] へ中継します。

[B] -- [ 192.168.0.0/16 (内部全体)] から [ 外部 ]

[A] でも述べたとおり、内部クライアントは SMTP サーバとして [ Mail Proxy ] を指定しています。[ Mail Proxy ] は内部から送られてきたメールのあて先が [ Mail Server ] 以外であった場合には外部へメールを中継します。

[C] -- [ 外部 ] から [ Mail Server ]

外部から内部宛てのメールは DNS サーバによって [ Mail Proxy ] へ配信されるように設定します。そして外部から [ Mail Proxy ] 宛てに届いたメールのあて先が [ Mail Server ] 宛てであった場合には、[ Mail Server ] へメールを中継します。

[D] -- [ 外部 ] から [ 外部 ]

外部から [ Mail Proxy ] へ配信されてきたメールのうち、あて先が外部宛てのものは受理しない。これは外部の人が [ Mail Proxy ] を SPAM メールに利用しないようにするための措置。

 

これら [A] 〜 [D] を [ Mail Proxy ] 側の設定で言い換えると、

  • 内部からの接続においては、あて先に関わらず中継する。
  • 外部からの接続は基本的に中継しない。
  • [ Mail Server ] 宛てのメールは、内外を問わず中継する。

このような表現になると思います。

 

SMTP サーバのインストール

Windows NT 用の Microsoft SMTP Server は、Windows NT Option Pack 内の Internet Information Server 4.0 の一部として付属していますので、まずはそれをインストールします。

CD-ROM ドライブへ Windows NT Option Pack の CD-ROM を挿入します。

【インストール】 のページから、【5. Windows NT Option Pack のインストール】 を選択して Option Pack のインストールを開始します。なお、Option Pack のインストールには、あらかじめ Windows NT Service Pack 3 と Internet Explorer 4.0 がインストールされている必要があるようです。

 

インストールする項目として、

  • Internet Information Server (IIS)
    • SMTP Service

をチェックします。SMTP Service をインストールすると、World Wide Web Publishing Service も同時にインストールされます。

あとはセットアッププログラムにしたがって、正常にインストールが終了すれば完了です。

 

SMTP サーバの設定

Microsoft SMTP Service の設定は、【スタート】メニューから、【プログラム】 → 【Windows NT 4.0 Option Pack】 → 【Microsoft Internet Information Server】 とたどっていった中の、【インターネットサービスマネージャ】 にて行います。

SMTP のインストールが完了した時点で、インターネットサービスマネージャには ”既定の SMTP サイト” という項目が追加されていると思います。SMTP サイトは、他の Web サイトや FTP サイトとは違って、Windows NT 1台あたり1サイトまでとなっていて、新規に SMTP サイトを追加することはできませんので注意しましょう。

 

■ SMTP サイトの設定 ■

まずは、SMTP Server の基本的な設定でもしましょうか。

既定の SMTP サイト” で右クリックして現れたポップアップメニューから 【プロパティ】 を選択すると、SMTP サイトの設定ダイアログが現れます。ここでは、SMTP サーバの全体的な設定を行うことができます。

受信接続の設定は、この SMTP サーバがメールを受け付けるポート等の設定です。通常はほとんどの SMTP サーバが  25 番ポートへ接続要求を出してきますので、特別な事情がない限りは 25 番ポートを指定することになります。

送信接続の設定は、この SMTP サーバがメール配信を行う際の接続先のポート等の設定です。これも基本的に 25 番ポートを使用しますが、中継サーバが特別なポート番号を割り当てている場合には、こちらもそれにあわせて設定する必要があります。今回の [ Mail Server ] は通常どおり 25 番ポートで待ち受けていますので、ここは 25 番に設定しておきます。

セキュリティ” タグを選択すると、さまざまなアクセス制限がかけられるようになっています。もともと SMTP にはパスワードによる認証システムが備わっていませんので、このあたりを細かく設定すると、接続できるクライアントがかなり限られてくると思います。

ここでは、”中継の設定” だけを行うことにします。今回の設定では、基本的に内部からだけの中継を許可して、それ以外の外部からは中継を遮断することになるので、まずは ”基本的にすべての中継を禁止” します。例外として内部アドレスである、192.168.0.0 ( 255.255.0.0 ) を許可することで、内部からの中継をすべて許可します。

 

■ ドメインの設定 ■

つぎに、受信するメールアドレスのドメイン名を設定しましょう。

”既定の SMTP サイト” の中に、”ドメイン” という項目がありますので、ここで右クリックをしてポップアップメニューから 【新規作成】 → 【ドメイン】 を選択します。

ここで設定するドメインというのは、たとえば webmaster@mail.ez-net.jp というメールアドレスの場合の、mail.ez-net.jp の部分がそれにあたります。ドメインとして登録しておくことで、そのメールアドレスをメールボックスへ格納したり特別なメールサーバへ中継したりという指定ができます。なお、ここに該当しないドメインは、DNS を参照して、適切なサーバへ配信するようです。

今回は仮に mail.ez-net.jp 宛てのメールを mailserver.ez-net.jp へ配信するような設定にしてみることにします。

まず、外部の SMTP サーバ ( mailserver.ez-net.jp ) へ配信するような設定にしますので、ドメインは ”リモートドメイン” を選択します。

「ドメイン名」 の項目へ、mail.ez-net.jp と入力します。ここで *.ez-net.jp というような設定も可能です。この場合、たとえば mail.ez-net.jp 宛てのメールだけではなく、mail2.ez-net.jp や ez-net.jp といったメールも対象となります。

ルートドメイン” の項目には、中継の通り道となる SMTP サーバを指定します。今回は mailserver.ez-net.jp というように指定して、mail.ez-net.jp 宛てのメールが [ Mail Server ] へ中継されるように指示します。

このドメインへ受信メールを中継する” という項目があります。これはこのドメインに対してはどこから来た要求でも中継するように設定することができます。今回の場合も、[ Mail Server ] 宛てのメールは内外問わずに中継するので、ここにチェックを入れます。

この中継設定は、SMTP サイトの設定よりも優先されますので、すべての接続者がこのドメインへは中継してもらえるようになります。

 

これだけ設定すれば、今回想定していた SMTP 中継サーバの設定は完了です。