- PR -

リレーサーバ(sendmail8.13.5)でメールが受信できない

投稿者投稿内容
A.W
常連さん
会議室デビュー日: 2005/11/08
投稿数: 27
投稿日時: 2005-11-14 12:33
こんにちは、A.Wです。

testmail(内部のリレーサーバ)からexampleドメインに送信したとき、
テスト送信用クライアント(DMZ。ホスト名はtestsendとします。)からexampleドメインに送信したときのSMTPとの会話内容は両方共に、

user@example.co.jp... Connecting to [127.0.0.1] via relay...
220 testsend.example.co.jp ESMTP Sendmail 8.13.5/8.13.5; Mon, 14 Nov 2005 11:41:33 +0900
>>> EHLO testsend.example.co.jp
250-testsend.example.co.jp Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<root@testsend.example.co.jp> SIZE=288
250 2.1.0 <root@testsend.example.co.jp>... Sender ok
>>> RCPT To:<user@example.co.jp>
>>> DATA
250 2.1.5 <user@example.co.jp>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 jAE2fXsn007106 Message accepted for delivery
user@example.co.jp... Sent (jAE2fXsn007106 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 testsend.example.co.jp closing connection

という結果を返しました。
結果はまったく同じでしたが、実際に送信が成功したのは
testmailから送ったときのみです。


/usr/lib/sendmail -bv -d0.4

に関しても、

Canonical name: testmail.example.co.jp
UUCP nodename: testmail
a.k.a.: [xxx.xxx.xxx.xxx]
a.k.a.: [127.0.0.1]
a.k.a.: [xxx.xxx.xxx.xxx]

============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = testmail
(canonical domain name) $j = $w.$m
(subdomain name) $m = example.co.jp
(node name) $k = testmail
========================================================

Recipient names must be specified


特に問題なく表示できているようです。

testmail.example.co.jpのログは、

Nov 14 11:41:40 testmail sendmail[13627]: [ID 801593 mail.notice] jAE2feXt013627: ruleset=check_rcpt, arg1=<user@example.co.jp>, relay=testsend.example.co.jp [xxx.
xxx.xxx.xxx], reject=550 5.7.1 <user@example.co.jp>... Relaying denied
Nov 14 11:41:40 testmail sendmail[13627]: [ID 801593 mail.info] jAE2feXt013627: from=<root@testsend.example.co.jp>, size=823, class=0, nrcpts=0, proto=ESMTP, daemon=MTA
, relay=testsend.example.co.jp [xxx.xxx.xxx.xxx]

のようになり、また、testsend(送信用クライアント。DMZ)のログは、

Nov 14 12:09:26 testsend sendmail[7125]: jAE39PqC007125: from=root, size=46, class=0, nrcpts=1, msgid=<200511140309.jAE39PqC007125@testsend.example.co.jp>, relay=root@l
ocalhost
Nov 14 12:09:26 testsend sendmail[7126]: jAE39QYc007126: from=<root@testsend.example.co.jp>, size=346, class=0, nrcpts=1, msgid=<200511140309.jAE39PqC007125@testsend.example.co.jp>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Nov 14 12:09:26 testsend sendmail[7125]: jAE39PqC007125: to=user@example.co.jp, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30046, rel
ay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (jAE39QYc007126 Message accepted for delivery)
Nov 14 12:09:26 testsend sendmail[7128]: jAE39QYc007126: to=<user@example.co.jp>, ctladdr=<root@testsend.example.co.jp> (0/0), delay=00:00:00, xdelay=00:00:00, mai
ler=smtp, pri=120346, relay=[xxx.xxx.xxx.xxx] [xxx.xxx.xxx.xxx], dsn=5.7.1, stat=User unknown
Nov 14 12:09:26 testsend sendmail[7128]: jAE39QYc007126: jAE39QYc007128: DSN: User unknown

というような感じになります。testmailでtestsendをaccessで許可すれば
エラーログは出なくなり、正常に配信されます。


FW絡みかとも考えたのですが、問題の部分で特に規制していることは
無いので、やはりソフト的な問題かもしれません。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-11-15 00:51
こんばんは、はゆる です。

まず最初に確認させていただきたいのですが、
私はホストの配置を下図のように認識しているのですが、合っていますでしょうか?
最終的に、spool server が user@example.co.jp を受理するものと捉えているのですが。
(線で繋いでいるのは、本来のメールの流れをイメージしたものです。
たとえば、test@hotmail.com とのメールのやりとりなど)

コード:

+----------+
| internet |
+---+---^--+
| |
+----------------+ |
| +----------------+
+-- DMZ -----|---|------------------------------------------------+
| | | |
| +---------V---+--------+ +--------------------------+ |
| | relay server | | test client | |
| | (mail.example.co.jp) | | (testsend.example.co.jp) | |
| +---------+---^--------+ +--------------------------+ |
| | | |
+------------|---|------------------------------------------------+
| |
| |
| |
+-- LAN -----|---|------------------------------------------------+
| | | |
| +---------V---+----------+ +--------------------------+ |
| | spool server | | inner relay server | |
| | (spool.example.co.jp?) | | (testmail.example.co.jp) | |
| +------------------------+ +--------------------------+ |
| |
+-----------------------------------------------------------------+



上記の認識で、2005-11-14 12:33 のログを拝見しますと、下記の 2点になるのですが、

 (1) testmail から testsend へメールを送ろうとしたが、リレーを拒否された。
   (途中のログだけなので……)
 (2) testsend にて、root から user@example.co.jp へのメールを受け付けたが、
   それを [xxx.xxx.xxx.xxx] のホストへ渡そうとしたら、拒否された。
   (「User unknown」 となっていますが、「dsn=5.7.1」 なのが引っかかります)

「testmailでtestsendをaccessで許可すればエラーログは出なくなり、正常に配信されます。」
とおっしゃる ”正常” の判断が、よく分かりませんでした。
(最終的に spool server に届けばいいのか? 等)
テスト用サーバのメールの流れを、一旦まとめていただきたいと思いまして、今回の投稿です。

[ メッセージ編集済み 編集者: はゆる 編集日時 2005-11-15 01:17 ]
A.W
常連さん
会議室デビュー日: 2005/11/08
投稿数: 27
投稿日時: 2005-11-15 12:00
こんにちは、A.Wです。
はゆる様、お返事ありがとうございます。

ネットワーク構成は提示して頂いた図で相違ありません。
最終的にはspool serverがexample.co.jpドメイン宛のメールを
受理することが目的となっております。

>(1) testmail から testsend へメールを送ろうとしたが、リレーを拒否された。
>(途中のログだけなので……)

2005-11-14 12:33にはログを二つ載せましたが、上から順に
testsendからtestmailに送ったときのtestmailに残っているログ、
testsendからtestmailに送ったときのtestsendに残っているログ、
ということになります。

testmailからtestsendへメールを送ったのではなく、
testmailからはspool serverに送ったのみです。
この時はエラーも出ず、配信されました。(当然と言えば当然ですが。)
リレー拒否のエラーが出たのはtestsendからtestmailに送ったときのみです。


>(2) testsend にて、root から user@example.co.jp へのメールを受け付けたが、
>それを [xxx.xxx.xxx.xxx] のホストへ渡そうとしたら、拒否された。
>(「User unknown」 となっていますが、「dsn=5.7.1」 なのが引っかかります)

testsendのmailertableにはtestmailへ直接配送するように記述しています。
ここでいうxxx.xxx.xxx.xxxというのはtestmailのIPです。



また、testmailでtestsendをaccessでRELAYを記述してやると正常に配信される、
というのは、

testsend→testmail→spool server

という流れでspool serverのローカルに配送されることを意味しています。
この流れでメールが配送されるのがテストの目的です。

書き方が悪くて混乱させてしまいすみません。
失礼します。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-11-15 23:53
ごめんなさい、私がログを読み違えておりました(またか……) _| ̄|○

引用:

 (1) testmail から testsend へメールを送ろうとしたが、リレーを拒否された。


ではなく、

引用:

 (1) testmail に testsend から user@example.co.jp 宛てのメールが届いたが、
   リレー対象外なので拒否した。


になります。
お手数をおかけして申し訳ないです。


この状態で、access データベースには、どういった記述がされていますか?

# sendmail 本家の FAQ にも ヒント があります
A.W
常連さん
会議室デビュー日: 2005/11/08
投稿数: 27
投稿日時: 2005-11-16 12:04
はゆる様

いえ、私の書き方が悪いだけと思われます(^^;
自分で見返しても読みにくいもので…orz


事態が少し進展しましたのでその旨を報告します。
まず、下に記す内容の環境ですが、テスト用として使用していた
testmailは停止させ、実稼動しているmailというホスト名のサーバで
実行したものです。
これは、テスト用と実稼動している環境が微妙に違うものであり、
危険は伴いますが、実環境でテストしたほうが良いと思ったからです。

現在、aliase、access、mailertable、local-host-namesを
一つ一つ見直して整形し、sendmail.cfも作り直してsendmailを起動したところ、
savemail panicは表示されなくなり、ホッとしています。

現在のaccessの中身は

/etc/mail/access------------------
localhost.localdoamin RELAY
localhost RELAY
127.0.0.1 RELAY
spool serverのIP RELAY
--------------------------------------

というようになっております。
このままでは外部からexample.co.jp宛に来たメールを全てRelayingDeniedで
弾いてしまいますが、

example.co.jp RELAY

を追加してDBを構築しなおした場合にはspool serverにリレーします。
これでOKかと思いました。
しかし、このままだとRBL第三者不正中継チェックに引っかかってしまいます…(汗
【追記】
%ハックの問題はmcの記述を変えることにより回避しましたが、
一番基本的なテストが、

250 2.0.0 Reset state
MAIL FROM: <rlychk@rep.rbl.jp>
250 2.1.0 <rlychk@rep.rbl.jp>... Sender ok
RCPT TO: <rlytest@rbl.jp>
250 2.1.5 <rlytest@rbl.jp>... Recipient ok

というふうに許可してしまいます。これ以外は許可しません。


現在はrelay-domainsは存在していませんが、はゆる様からご指摘頂いた
本家FAQを参考にしてrelay-domainsの設定もしてみようと思います。


また、mailertableには

/etc/mail/mailertable-------------------
example.co.jp smtp:[spool serverのIP]
subdomain.example.co.jp smtp:[spool serverのIP]
------------------------------------------------

というように記述しています。
spool server側では、example.co.jp宛のメールはローカルに配送し、
subdomain.example.co.jp宛のメールは別のサーバに配送するようにしています。

しかし、ちょっとそれ以前の問題で、

554 5.0.0 MX list for subdomain.example.co.jp. points back to
mail.example.co.jp
554 5.3.5 Local configuration error

という感じでメールを送信元へ返してしまいます。

http://www.sendmail.org/faq/section4.html#4.5

本家FAQにそれっぽいことが書いてありましたので、
テストしてみようと思います。


報告までに以上のことを書かせて頂きました。
実稼動サーバなのでテストは夜に行います。
テスト結果が出次第、またご報告に参ります。


[ メッセージ編集済み 編集者: A.W 編集日時 2005-11-16 13:15 ]
A.W
常連さん
会議室デビュー日: 2005/11/08
投稿数: 27
投稿日時: 2005-11-17 09:27
おはようございます。

結果を報告します。

まずRelayingDeniedになる件ですが、
relay-domainsにspool serverのFQDN(IPも)を記述し、
accessは
/etc/mail/access--------------------
localhost.localdoamin RELAY
localhost RELAY
127.0.0.1 RELAY
spool serverのIP RELAY
--------------------------------------

という内容の場合は、外部からexample.com.jp宛に来たメールを
全てRelayingDeniedで拒否し、spool serverに配送しないままです。
accessに

example.co.jp  RELAY

を追記した場合にはexample.co.jp宛のメールはspool serverに配送
されるようになりますが、前レスで示した第三者中継チェックに
引っかかってしまう状態です。

また、この状態で外部からuser@subdomain.example.co.jp宛に来たメールは

554 5.0.0 MX list for subdomain.example.co.jp. points back to
mail.example.co.jp.co.jp
554 5.3.5 Local configuration error

のエラーで弾いてしまう件ですが、本家FAQなどを参考にして
local-host-namesに、

subdomain.example.co.jp

を記述してみたらUserUnknownが返ってきます。
リレーサーバのローカルに配送しようとしてしまうのですから
当然と言えば当然ですが…。
他のWebを参照して、local-host-namesに

subdomain.example.co.jp smtp:spool serverのFQDN

みたいなことを書いてみましたが変化無しでした。


すいません、昨日からまったく前進してませんね。orz
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-11-17 17:17
引用:

A.Wさんの書き込み (2005-11-17 09:27) より:
accessに

example.co.jp  RELAY

を追記した場合にはexample.co.jp宛のメールはspool serverに配送
されるようになりますが、前レスで示した第三者中継チェックに
引っかかってしまう状態です。


こちらの設定で合っていると思うのですが、第三者中継チェックで
引っかかりますか……。
(上記の設定があれば、relay-domains ファイルは不要です。
このファイルには、中継を許可するホストやドメインを記述します)


sendmail.mc から、下記の行

引用:

A.Wさんの書き込み (2005-11-08 16:11) より:
define(`confOPERATORS', `.:@!^/[]+')dnl


を削除して sendmail.cf を再作成し、sendmail を再起動してください。
その状態で、上記の access データベースの設定を行ったら、
まだ第三者中継チェックに引っかかりますか?
A.W
常連さん
会議室デビュー日: 2005/11/08
投稿数: 27
投稿日時: 2005-11-18 17:23
こんばんは、A.Wです。

はゆる様にご指摘頂いた行を削除してcfを作成して
sendmailを再起動して第三者中継チェックを実行してみましたが、

中継テスト その0
>>> RSET
<<< 250 2.0.0 Reset state
>>> MAIL FROM: <rlychk@rep.rbl.jp>
<<< 250 2.1.0 <rlychk@rep.rbl.jp>... Sender ok
>>> RCPT TO: <rlytest@rbl.jp>
<<< 250 2.1.5 <rlytest@rbl.jp>... Recipient ok
relay accepted!!

というふうにばっちり許可してしまう表示が…。
他のテストは全て拒否しました。

http://www.abuse.net/relay.html



http://www.nanet.co.jp/rlytest/relaytest.html

のテストなら問題無くリレーは全て拒否するのですが…。


【追記】
RBLチェックのトップのメッセージを引用すると、

"赤が表示されたから無条件にいけないというわけではありません。
サーバーの設定によってはとりあえずメールを取り込んでから廃棄したり、管理者に転送するようなこともあり迷惑メールが発信されないときでも赤で表示されます。"

となっているので、もしかしたらこの辺の問題かもしれませんね。
sendmail.mcでできるかどうか調べてみます。


[ メッセージ編集済み 編集者: A.W 編集日時 2005-11-18 17:37 ]

スキルアップ/キャリアアップ(JOB@IT)