投稿日:2004年03月20日 作成鷹の巣

No.15251 メールサーバの不正中継テスト項目の内容は?



メールサーバの不正中継テスト項目の内容は?

No.15251 投稿時間:2004年03月20日(Sat) 22:03 投稿者名:yokoyama URL:


こんばんは。

メールサーバの第三者中継チェックについてお聞きしたい事があります。

【第三者中継チェック RBL.JP】
http://www.rbl.jp/svcheck.php

上記のサイトにてチェックをし、全て合格しているのですが、
各チェック項目の内容が分かりません。
今後、別のメールサーバを構築した際にエラーが出たとしても、
メールサーバのどの部分の設定を直せば良いのか判断できません。

上記のサイトの中継テスト 0~19の合計20項目中、
0~4までの5つの項目内容は理解できたのですが、
それ以降の5~19のテスト内容とその違いがよく分かりません。
テスト結果をみると5~19は全て同じに見えます。
この5~19のテスト内容はどのようなものなのでしょうか?

ちなみに、
0~4のテスト内容の解釈で違っている箇所があれば、ご指摘下さい。

【0】違うドメイン宛
【1】ドメイン無しアドレス
【2】空アドレス
【3】存在しないアカウント
【4】ドメインがIPアドレス


とりあえずローカルネットワーク以外からのリレーをすべて禁止すれば問題ない。

No.15255 投稿時間:2004年03月21日(Sun) 00:51 投稿者名:誰かさん URL:

とりあえずローカルネットワーク外からのリレーをすべて禁止すれば問題ないかと。


メールサーバの不正中継テスト項目の内容。

No.15259 投稿時間:2004年03月21日(Sun) 06:24 投稿者名:通行人 URL:

> とりあえずローカルネットワーク外からのリレーをすべて禁止すれば問題ないかと。

SMTP の設定作業を行い、「ローカルネット外からのリレーは禁止した」と思い込むことなら誰にでもできます。
作業者が知らない部分は見落とされます。

MTA によっては、次のようなメールを受け付け、処理できる (或いは「受け付け、処理してしまう」) 設定を持つものがあります。

【3, 4】 MAIL FROM のドメイン部がローカルなホスト (であれば受け付ける)
【5, 6】 経路指定された RCPT TO (RFC 1123)
【9】 経路指定された RCPT TO (RFC 733)
【12, 13】 経路指定された RCPT TO (RFC 821, 822)
【14 - 16】 UUCP 形式の RCPT TO
【19】 MAIL FROM のドメイン部がローカルなホスト


テスト結果の表記が同じ場合、テスト内容の違いをどこで見分けるのでしょうか?

No.15270 投稿時間:2004年03月22日(Mon) 01:40 投稿者名:yokoyama URL:


皆さんありがとうございます。

> 【19】 MAIL FROM のドメイン部がローカルなホスト
失礼しました。診断結果にもきちんと載っているのを見落としていました。

> 【5, 6】 経路指定された RCPT TO (RFC 1123)
> 【9】 経路指定された RCPT TO (RFC 733)
> 【12, 13】 経路指定された RCPT TO (RFC 821, 822)
> 【14 - 16】 UUCP 形式の RCPT TO
なるほど。そういうテストだったのですね。
RFCの解説サイトで調べたところ、
『配送経路指定は非推奨もしくは避ける』という記述や、
ソースルーティングなどの記事を見つけましたので、
合わせてだいぶ理解が深まりました。

1つ疑問なのですが、
【0】~【4】や【19】はテスト結果の表記に、何のテストをしたのかが書かれていますが、
【5】以降のテスト結果の表記は全て同じです。
テスト結果の表記が同じ場合、
配送経路指定やUUCP形式、ソースルーティングなどのテストをしているというのは、
どのようにして判断するのでしょうか?


【Mail relay testing】
http://www.abuse.net/relay.html

このサイトの不正中継テストは、
全てのテスト結果の表記に、何のテストをしたのかが書かれているので、
例えそのテストの内容が判らなくても、
テスト結果の表記を元に検索すれば、ある程度調べる事が出来ますが、
BRL.JPのサイトの不正中継テストでは、どのように判断すればよいのでしょうか?


テストの目的は、そのパラメータを見て自力で判断するしかありません。

No.15292 投稿時間:2004年03月23日(Tue) 21:14 投稿者名:通行人 URL:

> 1つ疑問なのですが、
> 【0】~【4】や【19】はテスト結果の表記に、何のテストをしたのかが書かれていますが、
> 【5】以降のテスト結果の表記は全て同じです。

「テスト結果の表記」とは、どの部分でしょうか。
RBL.JP のテスト画面は、基本的に www.rbl.jp と対象サーバ間の通信内容を表示しているだけです。

> テスト結果の表記が同じ場合、
> 配送経路指定やUUCP形式、ソースルーティングなどのテストをしているというのは、
> どのようにして判断するのでしょうか?

RBL.JP のテストでは、SMTP の MAIL FROM、RCPT TO の 2 つのコマンドを、様々なパラメータをつけてサーバに与え、サーバがどういう応答を返すかを見ています。
RCPT TO: に対し肯定的応答があれば「relay accepted!!」、そうでなければ「relay NOT accepted!!」と表示します。
テストの目的は、そのパラメータを見て自力で判断するしかありません。

例)
| Relay test 12
|
| >>> RSET
| <<< 250 Reset state
| >>> MAIL FROM: <spamtest@***********.ne.jp>
| <<< 250 spamtest@***********.ne.jp... Sender ok
| >>> RCPT TO: <@***********.ne.jp:relaytest@rbl.jp>
| <<< 553 @***********.ne.jp:relaytest@rbl.jp... Relay operation rejected
| relay NOT accepted!!

例えばこのテストでは宛て先が「@対象サーバ名:relaytest@rbl.jp」であるメールの送信を試み、サーバが第三者中継と判断したため「Relay operation rejected」というメッセージを返しています。
「Relay operation rejected」はあくまで対象サーバの行った判断であり、www.rbl.jp はそれをそのまま画面に出力しているだけです。

実は上記メールアドレスは、中継指定の構文になっています。
これを RFC に沿って解釈すれば、
1) まず、メールを ***********.ne.jp のサーバへ送信する
2) そのサーバから、relaytest@rbl.jp へ送信する
という動作を指示したことになります。
テスト対象のサーバから見れば自分が中継点として指示されているわけですから、MTA によっては素直に受け取ってしまうかもしれません。

その他、「@」を 2 つ含んだアドレスや「%」の文字は、各 RFC 等で中継指定を行う方法として定義されています。
また「!」の文字は、UUCP を扱えるサーバで宛て先指定に使われます。

この機会に、SMTP のコマンドについても理解を深められると良いと思います。


通信内容のパラメータが全て同じ表示なのは異常ですか?

No.15314 投稿時間:2004年03月24日(Wed) 21:22 投稿者名:yokoyama URL:

こんばんは。
詳細なご回答、ありがとうございます。

> 「テスト結果の表記」とは、どの部分でしょうか。
> RBL.JP のテスト画面は、基本的に www.rbl.jp と対象サーバ間の通信内容を表示しているだけです。
失礼しました。表現がおかしかったですね。この『通信内容の表示』の事です。

> RBL.JP のテストでは、SMTP の MAIL FROM、RCPT TO の 2 つのコマンドを、
> 様々なパラメータをつけてサーバに与え、サーバがどういう応答を返すかを見ています。
はい。通行人さんに教えて頂いたり、自分で調べたりして、
全部ではありませんが、パラメータの意味がだんだん判ってきました。

> RCPT TO: に対し肯定的応答があれば「relay accepted!!」、
> そうでなければ「relay NOT accepted!!」と表示します。
はい。ここまでは理解できるようになりました。

> テストの目的は、そのパラメータを見て自力で判断するしかありません。
問題は、ここなのですが、
このパラメータをみて自力で判断する基準について、
大変申し訳ありませんが、もう一度解説を是非お願い致します。

通行人さんが『パラメータ』と書いてくれたおかげで、
何をどう尋ねれば良いのかが判りました。
今度の質問は完璧だと思います(^_^;)


RBL.JP の【0】~【4】と【19】のテストでは、
通信内容に表示してあるパラメータが全て違うので、
私がそのパラメータの意味が判らなくても、
パラメータについて調べれば、どんなテストをしたのかが判別できると思います。

しかし、【5】以降のテストでは、
通信内容に表示してあるパラメータが全て同じです。

例えば、通行人さんが示してくださった【Relay test 12】でいうと、
私がテストした通信内容と異なっています。
(当然ですが、固有の環境のドメイン・IPアドレス以外。)


【通行人さんが示してくださった通信内容】
> 例)
> | Relay test 12
> |
> | >>> RSET
> | <<< 250 Reset state
> | >>> MAIL FROM: <spamtest@***********.ne.jp>
> | <<< 250 spamtest@***********.ne.jp... Sender ok
> | >>> RCPT TO: <@***********.ne.jp:relaytest@rbl.jp>
> | <<< 553 @***********.ne.jp:relaytest@rbl.jp... Relay operation rejected
> | relay NOT accepted!!


【私がRBL.JPで行ったテストの通信内容】
中継テスト その12
>>> RSET
<<< 250 Reset state
>>> MAIL FROM: <spamtest@***********.com>
<<< 550 Please, mail from a valid e-mail address.
relay NOT accepted!!

中継テスト その13
>>> RSET
<<< 250 Reset state
>>> MAIL FROM: <spamtest@**********.com>
<<< 550 Please, mail from a valid e-mail address.
relay NOT accepted!!

中継テスト その14
>>> RSET
<<< 250 Reset state
>>> MAIL FROM: <spamtest@***********.com>
<<< 550 Please, mail from a valid e-mail address.
relay NOT accepted!!


このような感じで、【5】~【18】までが全て同じパラメータなので、
パラメータの違いからテスト内容を判別する事ができません。

しかし、【0】~【4】と【19】だけは、パラメータが他と違う為、
何のテストをしているのかが判別できました。


【私がRBL.JPで行ったテストの通信内容】
中継テスト その0
>>> RSET
<<< 250 Reset state
>>> MAIL FROM: <spamtest@rbl.jp>
<<< 250 <spamtest@rbl.jp>... Sender ok.
>>> RCPT TO: <relaytest@rbl.jp>
<<< 550 Sorry relaytest@rbl.jp, I don't allow unauthorized relaying.
relay NOT accepted!!

中継テスト その1
>>> RSET
<<< 250 Reset state
>>> MAIL FROM: <spamtest>
<<< 550 Please, mail from a valid e-mail address.
relay NOT accepted!!


通行人さんの例では、【テスト12】の通信内容にパラメータが記述してあり、
私が行ったテストとはパラメータが違います。
しかも、【5】以降のテストでは、全てのパラメータが同じです。
これは私の環境が何かおかしいのでしょうか?


syslogへの出力はいかがでしょうか?

No.15316 投稿時間:2004年03月24日(Wed) 21:28 投稿者名:かず URL:

的外れならごめんなさい。

syslogへの出力はいかがでしょうか?


BRL.JPのテスト内容の判別を、皆さんsyslogでしているのでしょうか?

No.15317 投稿時間:2004年03月24日(Wed) 21:47 投稿者名:yokoyama URL:

早速ありがとうございます。

> syslogへの出力はいかがでしょうか?
すみません。syslogについての理解が未熟なので、正確な返答ができず申し訳ありません。

皆さんがテストした場合も、パラメータが全て同じ表示になっていて、
BRL.JP のサイト上の表示だけから判別できず、
syslogへ出力してそのログを見てテスト内容を判別するという事を行っているのでしょうか?

もし、そうならば私もsyslogについて理解を深め、やってみたいと思いますが、
通行人さんの記述の感じからすると、
BRL.JP のサイト上の通信内容のパラメータの表示が全て違う感じがするのですが・・・


MAIL FROM を送信した時点で拒絶 (500 番台のコード: エラー応答) してしまうわけですね。

No.15320 投稿時間:2004年03月25日(Thu) 07:02 投稿者名:通行人 URL:

> 中継テスト その12
> >>> RSET
> <<< 250 Reset state
> >>> MAIL FROM: <spamtest@***********.com>
> <<< 550 Please, mail from a valid e-mail address.

yokoyama さんのメールサーバが MAIL FROM で告げられたアドレスの (構文チェックだけでなく) 正当性を検査しているために、MAIL FROM を送信した時点で拒絶 (500 番台のコード: エラー応答) してしまうわけですね。
それなら test 5 ~ 18 は全て同じに内容に見えます。失礼しました。

私のサーバでは MAIL FROM の内容は構文チェックのみなので、「MAIL FROM: <spamtest@サーバのホスト名>」は必ずパス (200 番台のコード: 肯定的応答) します。
そのため、次の RCPT TO の送信が行われます。

参考までに、RBL.JP のテスト内容を列記すると次のようになります。
MAIL FROM の内容がサーバ側で拒絶対象となった場合は、RCPT TO は送らず次のテストへ進みます。

Relay test 0
>>> MAIL FROM: <spamtest@rbl.jp>
>>> RCPT TO: <relaytest@rbl.jp>

Relay test 1
>>> MAIL FROM: <spamtest>
>>> RCPT TO: <relaytest@rbl.jp>

Relay test 2
>>> MAIL FROM: <>
>>> RCPT TO: <relaytest@rbl.jp>

Relay test 3
>>> MAIL FROM: <spamtest@サーバのホスト名>
>>> RCPT TO: <relaytest@rbl.jp>

Relay test 4
>>> MAIL FROM: <spamtest@[サーバの IP アドレス]>
>>> RCPT TO: <relaytest@rbl.jp>

Relay test 5
>>> MAIL FROM: <spamtest@サーバのホスト名>
>>> RCPT TO: <relaytest%rbl.jp@サーバのホスト名>

以下、test 18 までの MAIL FROM は「spamtest@サーバのホスト名」です。
この値そのものについてのテストは、すでに test 3 で実行済みです。
「MAIL FROM: <spamtest@サーバのホスト名>」を拒絶している場合は、test 5 から 18 はテストされていないものとして扱ったほうが良いのかもしれません。

Relay test 6
>>> RCPT TO: <relaytest%rbl.jp@[サーバの IP アドレス]>

Relay test 7
>>> RCPT TO: <"relaytest@rbl.jp">

Relay test 8
>>> RCPT TO: <"relaytest%rbl.jp">

Relay test 9
>>> RCPT TO: <relaytest@rbl.jp@サーバのホスト名>

Relay test 10
>>> RCPT TO: <"relaytest@rbl.jp"@サーバのホスト名>

Relay test 11
>>> RCPT TO: <"relaytest@rbl.jp"@[サーバの IP アドレス]>

Relay test 12
>>> RCPT TO: <@サーバのホスト名:relaytest@rbl.jp>

Relay test 13
>>> RCPT TO: <@[サーバの IP アドレス]:relaytest@rbl.jp>

Relay test 14
>>> RCPT TO: <rbl.jp!relaytest>

Relay test 15
>>> RCPT TO: <rbl.jp!relaytest@サーバのホスト名>

Relay test 16
>>> RCPT TO: <rbl.jp!relaytest@[サーバの IP アドレス]>

Relay test 17
>>> RCPT TO: <"relaytest%rbl.jp"@親ドメイン名>

Relay test 18
>>> RCPT TO: <"relaytest@rbl.jp"@親ドメイン名>

Relay test 19
>>> MAIL FROM: <spamtest@localhost>
>>> RCPT TO: <relaytest@rbl.jp>


構文チェック・正当性検査によって、その後の応答が違うのですね。

No.15328 投稿時間:2004年03月25日(Thu) 20:43 投稿者名:yokoyama URL:

詳細なご回答頂きまして、ありがとうございます。

> yokoyama さんのメールサーバが MAIL FROM で告げられたアドレスの (構文チェックだけでなく)
> 正当性を検査しているために、MAIL FROM を送信した時点で拒絶してしまうわけですね。
> それなら test 5 ~ 18 は全て同じに内容に見えます。失礼しました。
なるほど。
アドレスの構文チェックだけか、正当性検査もするか、によって、
その後の応答が違うのですね。
通信内容の表示が同じ内容に見える原因が判明して助かりました。

構文チェックや正当性検査についてまだきちんと把握できていないので調べてみますが、
今回の通信内容の疑問は解けました。


> MAIL FROM の内容がサーバ側で拒絶対象となった場合は、RCPT TO は送らず次のテストへ進みます。

> 「MAIL FROM: <spamtest@サーバのホスト名>」を拒絶している場合は、
> test 5 から 18 はテストされていないものとして扱ったほうが良いのかもしれません。
テストされていないかも知れないとなると、少し不安ですね。
【5】以降のパラメータの不正中継拒否の設定をもう一度確認してみます。

『%@"'!』などはデフォルトで拒否する設定になっていると思うのですが、確認してみます。

パラメータの意味などもそうですが、特に通信内容の読み方を教えて頂きとても助かりました。
通信内容自体を多少理解できるようになったので、不正中継拒否の設定も、
設定項目の丸暗記ではなく、多少理解した上で設定できるようになった気がします。恐らく(^_^;)
詳細な解説をして頂きましてありがとうございました。


|目次|掲示板|過去ログ目次|▲頁先頭|