Windows 2000、Windows XP、および Exchange Server での SMTP の中継動作

文書翻訳 文書翻訳
文書番号: 304897 - 対象製品
この記事は、以前は次の ID で公開されていました: JP304897
すべて展開する | すべて折りたたむ

目次

はじめに

マイクロソフトの SMTP (Simple Mail Transfer Protocol) 中継とは、SMTP クライアントが SMTP サーバーを使用して電子メール メッセージをリモートのドメインに転送する機能のことです。RFC (Request for Comments) 282 のセクション 2.1 および 3.7 に定義されているように、SMTP は電子メール メッセージの中継を行うよう設計されています。

ただし、中継が制御されていない場合 (制御されていないホストを "第三者中継" ホストといいます)、悪意のあるユーザーが中継を使用して、大量の迷惑メール メッセージを送信する可能性があります。このような迷惑メール メッセージを中間のホストを経由して送信することで、悪意のあるユーザーは自分の身元をわかりにくくします。これにより、中継ホストのリソースが消費され、中継ホストから有効な電子メール メッセージを送信できなくなる場合もあります。特に、このような迷惑メール メッセージを送信する、悪意のあるユーザーは、自分自身の帯域幅を使用せずに 1 つのメッセージをばく大な数の受信者に送信することができます。

対象製品に記載されているマイクロソフト製品は、デフォルトでは第三者中継用に構成されません。

詳細

一部のサードパーティ製ツールを使用して SMTP サーバーの中継テストを行うと、SMTP サーバーがテストに失敗したように見え、マイクロソフトの SMTP 製品が実際とは異なり、第三者中継を実行できるように見える場合があります。これは、SMTP サーバーが電子メール メッセージを即座に拒否しない場合があることが原因です。SMTP サーバーは電子メール メッセージを拒否するのではなく、電子メール メッセージを処理した後、配信不能レポート (NDR) を送信します。中継される SMTP サーバー応答の詳細については、「中継される SMTP サーバー応答」を参照してください。SMTP サーバーの中継をテストする方法の詳細については、「中継テストの方法」を参照してください。

SMTP プロトコルのメッセージの宛先アドレスや差出人アドレスには、ローカル部分とドメイン部分の 2 つの部分があります。ドメイン部分 (@ 記号以降の部分) が指定されていない場合、その電子メール メッセージはローカルであると見なされます。マイクロソフトの SMTP 製品の一部ではローカル ドメインが付加されます。これは、ユーザー名のみを電子メール アドレスとして使用するように SMTP クライアントを構成しているユーザーがいるためです。デフォルトのローカル ドメインを追加することにより、マイクロソフトのサーバーではローカル ドメインの可能性が最も高いドメイン名を追加して、サポート コストを削減することができます。

ドメイン名の付加が行われるのは、一部のマイクロソフトの SMTP 製品では、配信する SMTP 電子メール メッセージを受け入れる前にディレクトリ参照を行わないためです。マイクロソフトの SMTP 製品における受信者のドメインの検査は、ローカル ドメインあるいは明示的に許可されているドメインであるかどうかを確認するためにのみ行われます。受信者のドメインがローカル ドメインまたは許可されたドメインのいずれにも該当しない場合、SMTP サーバーは次のようなエラー メッセージを返します。
550 5.7.1 Relaying prohibited
中継が行われないようにするために必要なことは、宛先アドレスのドメイン部分がローカルであることを確認することだけです。メール サーバーのディレクトリで受信者が有効かどうかを確認することも 1 つの選択肢ですが、これは必須ではありません。メール サーバーでメッセージが受け入れられた後、メッセージの配信はできないという判断が下された場合、サーバーでは NDR を生成する必要があります。マイクロソフトの SMTP 製品は、この要件を満たしています。

: Microsoft Exchange Server 2003 では、SMTP プロトコル メッセージの送受信中にディレクトリ参照を実行できます。この機能はシステム マネージャで有効にできます。 Exchange Server 2003 の受信者フィルタの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
823866 Exchange 2003 で接続フィルタを構成してリアルタイム ブロック リスト (RBL) を使用する方法と受信者フィルタを構成する方法

SMTP プロトコル メッセージの送受信中におけるディレクトリ参照の実行は、アドレスの検証に使用される場合があります。そのため、次の「サポート技術情報」 (Microsoft Knowledge Base) に記載される TarpitTime 機能をオンにすることをお勧めします。
842851 Microsoft Windows Server 2003 の SMTP タール ピット機能
重要 : SMTP プロトコル メッセージの送受信中にディレクトリ参照を行えるようにする必要がある場合は、Microsoft Windows 2000 SMTP プロトコル イベント シンクを作成します。 詳細については、次の Microsoft Developer Network (MSDN) Web サイトの「SMTP Protocol Events」を参照してください。
http://msdn.microsoft.com/library/en-us/smtpevt/html/0e0c3b0d-5b08-42b5-8312-59a9f3cd8fd9.asp?frame=true

中継される SMTP サーバー応答

推奨される RFC 準拠の応答は、次のような応答です。
550 5.1.1 UserName@DomainName.tld... User unknown
マイクロソフトでは、対象製品に記載されている製品については、以下のような理由に基づき、SMTP プロトコルのメッセージ送受信中にディレクトリ参照を行わないことにしました。
  • なりすましをしているユーザーに 5xx エラーを返すと、大量の迷惑メール メッセージ (スパムまたは UCE) をサーバーに送信しているユーザーに、どのアドレスが本物でどれが偽物かを知られてしまう可能性があります。そのユーザーが SMTP プロトコルを使用して人名辞典を操作することにより、有効な電子メール アドレスの一覧を簡単に取得することができます。ユーザー名と電子メール アドレスは同じであることが多いため、ローカル ユーザーにとってセキュリティ リスクになる可能性があります。
  • 悪意のあるユーザーが、差出人アドレスを使用してシステムに対し許可のないアクセスを実行し、被害者のサーバーを使用して目的の受信者に NDR を送信する場合があります。この攻撃によってこのサーバーが受ける被害は、攻撃しているユーザーがサーバーに送信するデータ量と同量です。つまり、悪意のあるユーザーは、1 MB のデータを第三者に送信する場合、自分自身の帯域幅を 1 MB 消費して 1 MB のデータを SMTP サーバーに送信しなければなりません。通常、このような悪意のあるユーザーはわずか 1 MB のデータを送信して、インターネット全体で数 10 から数 100 MB のデータが被害者に送信されるように仕向けます。被害者は複数の場合もあります。
  • SMTP プロトコルのメッセージ送受信中にディレクトリ参照が行われると、SMTP プロトコルの処理が大幅に遅くなる可能性があります。この資料が公開された時点では、マイクロソフトは、インターネット上またはデスクトップ SMTP クライアント上で SMTP メッセージがブロックされないように、SMTP サーバーは可能な限り高速でなければならないということを前提としています。インターネット サービス プロバイダ (ISP) がホストしている環境では、ディレクトリが使用できなくなったり、または特定のドメインの中継が必要であるにもかかわらず、ディレクトリのコピーが利用できなくなったりする場合もあります。

中継テストの方法

SMTP サーバーが電子メールを中継するように構成されているかどうかを確認するために、SMTP サーバーをテストすることができます。以下の例では、中継テスト 1 〜 5 は SMTP サーバーによって受け付けられず、即座に拒否されます。テスト 6 および 7 は SMTP サーバーによって受け付けられますが、電子メール メッセージは中継されず、サーバーは最終的に NDR を生成します。

以下の中継テストを実行するには、最初に Telnet セッションを開始して SMTP サーバーのポート 25 に接続します。
  1. コマンド プロンプトを開きます。
  2. telnet ServerName 25 と入力し、Enter キーを押します。ServerName は SMTP サーバー名または IP アドレス、25 はポート番号です。
  3. EHLO と入力し、Enter キーを押します。

中継テスト 1

これは SMTP 中継の標準的なテストです。管理者が特に許可している場合や、クライアントで先に認証を行う場合を除き、この方法を使用する SMTP クライアントからの中継を許可するべきではありません。このテストを行うには、以下の操作を実行します。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:UserName@DomainName.tld と入力します。UserName はユーザー名、DomainName はドメイン名、tld は最上位のドメイン (.com、.net など) です。

    次のような応答が返されます。
    250 2.1.0 UserName@DomainName.tld....Sender OK
  3. RCPT TO:RecipientName@DomainName.tld と入力します。RecipientName は受信者の電子メール アドレスです。

    次のような応答が返されます。
    550 5.7.1 Unable to relay for RecipientName@ DomainName.tld

中継テスト 2

これは基本的には中継テスト 1 と同じですが、送信元がリモート ドメインのユーザーではなくローカル ユーザーになっています。システムに対して許可のないアクセスを実行する場合、差出人アドレスが使用されることが多いため、サーバーが電子メール メッセージを中継してはなりません。このテストを行うには、以下の操作を実行します。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:LocalUser と入力し、Enter キーを押します。LocalUser は、ドメイン内のユーザー アカウントのローカルの電子メール名です。

    次のような応答が返されます。
    250 2.1.0 LocalUser@DomainName.tld....Sender OK
  3. RCPT TO:RecipientName@DomainName.tld と入力します。

    次のような応答が返されます。
    550 5.7.1 Unable to relay for RecipientName@DomainName.tld

中継テスト 3

これは NULL または空白のエンベロープ送信者アドレスのテストです。NDR およびその他の通知には、NULL のエンベロープ送信者アドレスが使用されます。ただし、通知であっても、宛先アドレスのドメインがローカル ドメインでない限り、通知を送信するべきではありません。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:<> と入力し、Enter キーを押します。

    次のような応答が返されます。
    250 2.1.0 <>....Sender OK
  3. RCPT TO:RecipientName@DomainName.tld と入力します。

    次のような応答が返されます。
    550 5.7.1 Unable to relay for RecipientName@DomainName.tld

中継テスト 4

このテストは中継テスト 2 と同じですが、電子メール アドレスにローカルのドメインが明示的に追加されています。中継処理をクローズしている SMTP サーバーでは、この電子メール メッセージを中継してはなりません。このテストを行うには、以下の手順を実行します。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:UserName@DomainName.tld と入力し、Enter キーを押します。DomainName はローカルのドメインの名前です。

    次のような応答が返されます。
    250 2.1.0 UserName@DomainName.tld....Sender OK
  3. RCPT TO:UserName@DomainName.tld と入力し、Enter キーを押します。

    次のような応答が返されます。
    550 5.7.1 Unable to relay for UserName@DomainName.tld

中継テスト 5

このテストも中継テスト 2 と同じですが、ドメイン名ではなく、サーバーの IP アドレスが使用されています。この形式のアドレスは通常は受け入れられますが、サーバーではリモート ドメインへの中継は行われるべきではありません。差出人アドレスに "ローカルホスト" あるいはサーバーの DNS (Domain Name System) 名を入れる他のさまざまなテストについても、サーバーはこの方法を使用した電子メール メッセージを中継してはなりません。このテストを行うには、以下の手順を実行します。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:UserName@10.10.10.10 と入力し、Enter キーを押します。

    次のような応答が返されます。
    250 2.1.0 UserName@10.10.10.10....Sender OK
  3. RCPT TO:UserName@DomainName.tld と入力し、Enter キーを押します。

    次のような応答が返されます。
    550 5.7.1 Unable to relay for UserName@DomainName.tld

中継テスト 6

このテストは、ローカル ドメインを付加し、アット マーク (@) をパーセント記号 (%) に変更して電子メール メッセージをルーティングする、旧式の UNIX ベースのサーバーに特化したテストです。パーセント記号 (%) は電子メール アドレスのローカル部分では有効な文字であるため、SMTP サーバーはメッセージを受け入れ、ディレクトリ参照が失敗した場合に NDR を送信することがあります。メッセージは転送されず、NDR が生成されるため、マイクロソフトの SMTP 製品には、この種の中継に対する脆弱性はありません。このテストを行うには、以下の手順を実行します。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:UserName と入力し、Enter キーを押します。

    次のような応答が返されます。
    UserName@DomainName.tld....Sender OK
  3. RCPT TO:UserName%DomainName.tld と入力し、Enter キーを押します。

    次のような応答が返されます。
    250 2.1.5 UserName%DomainName.tld@DomainName.tldUserName@DomainName.tld
    : ローカルのドメインは、電子メール アドレスの受信者ドメインに追加されます。

中継テスト 7

これは中継テスト 6 を変形させたものです。二重引用符 (") は電子メール アドレスのローカル部分では有効な文字であるため、SMTP サーバーはメッセージを受け入れます。そして、ディレクトリ参照が失敗した場合には NDR を送信します。メッセージは転送されず、NDR が生成されるため、マイクロソフトの SMTP 製品には、この種の中継に対する脆弱性はありません。
  1. Telnet セッション プロンプトで、RSET と入力します。

    次のような応答が返されます。
    250 2.0.0 Resetting
  2. MAIL FROM:UserName と入力し、Enter キーを押します。

    次のような応答が返されます。
    UserName@DomainName.tld....Sender OK
  3. RCPT TO:"UserName@DomainName.tld" と入力し、Enter キーを押します。

    次のような応答が返されます。
    "UserName@DomainName.tld"@DomainName.tld
    : ローカルのドメインは、電子メール アドレスの受信者ドメインに追加されます。

SMTP サーバーが中継テスト 6 および 7 をクローズしているかどうかを確認する方法

Exchange 2000 コンピュータに対して中継テスト 6 および 7 を実行すると、解決できない受信者宛てのメッセージが生成されるため、Exchange システム マネージャで指定されたメールボックスに NDR が送信されます。解決できない受信者用のメールボックスは、Exchange システム マネージャの [メッセージ] タブにある [解決できない受信者を含むメールの転送先ホスト] ボックスのデフォルトの SMTP 仮想サーバーのプロパティで構成できます。

これらの NDR によって、電子メール メッセージが中継されていないことを証明することができます。

関連情報

Exchange Server 5.5 を実行していて、第三者中継を許可しないようにサーバーを構成する必要がある場合の対処方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
196626 [XFOR] Internet Mail Service でルーティングを制限する
Windows 2000 で中継を防ぐ方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
310356 [HOW TO] Windows 2000 の IIS 5.0 SMTP サーバーでメールの中継を防ぐ方法
SMTP サーバーの中継テストで使用できる一般的なテストがあります。たとえば、以下のサードパーティ Web サイトおよびツールを使用できます。 他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

プロパティ

文書番号: 304897 - 最終更新日: 2006年12月11日 - リビジョン: 10.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange Server 5.0 Standard Edition
キーワード:?
kbhowto kbwinservnetwork kbnetwork KB304897
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com