- - PR -
リレーサーバ(sendmail8.13.5)でメールが受信できない
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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絡みかとも考えたのですが、問題の部分で特に規制していることは 無いので、やはりソフト的な問題かもしれません。 | ||||||||
|
投稿日時: 2005-11-15 00:51
こんばんは、はゆる です。
まず最初に確認させていただきたいのですが、 私はホストの配置を下図のように認識しているのですが、合っていますでしょうか? 最終的に、spool server が user@example.co.jp を受理するものと捉えているのですが。 (線で繋いでいるのは、本来のメールの流れをイメージしたものです。 たとえば、test@hotmail.com とのメールのやりとりなど)
上記の認識で、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 ] | ||||||||
|
投稿日時: 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のローカルに配送されることを意味しています。 この流れでメールが配送されるのがテストの目的です。 書き方が悪くて混乱させてしまいすみません。 失礼します。 | ||||||||
|
投稿日時: 2005-11-15 23:53
ごめんなさい、私がログを読み違えておりました(またか……) _| ̄|○
ではなく、
になります。 お手数をおかけして申し訳ないです。 この状態で、access データベースには、どういった記述がされていますか? # sendmail 本家の FAQ にも ヒント があります | ||||||||
|
投稿日時: 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 ] | ||||||||
|
投稿日時: 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 | ||||||||
|
投稿日時: 2005-11-17 17:17
こちらの設定で合っていると思うのですが、第三者中継チェックで 引っかかりますか……。 (上記の設定があれば、relay-domains ファイルは不要です。 このファイルには、中継を許可するホストやドメインを記述します) ! sendmail.mc から、下記の行
を削除して sendmail.cf を再作成し、sendmail を再起動してください。 その状態で、上記の access データベースの設定を行ったら、 まだ第三者中継チェックに引っかかりますか? | ||||||||
|
投稿日時: 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 ] |