- - PR -
リレーサーバ(sendmail8.13.5)でメールが受信できない
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-11 08:56
おはようございます。A.Wです。 外部から送信したときのログは「Relaying denied」のままで、 その外部のホストをaccessで許可するとリレーされる、といった感じです。 mailertableを設定しているので静的に配送してもらいたいんですけどね(汗 accessを許可した場合、mailertableに設定した通りの経路でメールが 配送されるので、mailertableが無効になってる、というわけでは無さそうです。 しかもシェル上にsavemail panicが何度も出てしまうという…。 試しにSMART_HOSTを設定してみたら、accessを許可しなくても指定した スプールサーバに配送されるのですが、このリレーサーバは内部から外部宛の メールを経由するので、SMART_HOSTじゃ根本的な解決にはなりません。 うーん…あと少し、という感じなのですが。 | ||||
|
投稿日時: 2005-11-11 12:28
ndbm は、sendmail に組み込み済みでしたね。
お返事ありがとうございました。 う〜ん…… 「savemail panic」 が出てくるとのことですので、 # /usr/lib/sendmail -bv postmaster で、最終的な配信先を確認してみてください。 私は、以前、ルールセットの記述を間違えたまま sendmail.cf を生成して、 その状態で aliases の再構築をしたら、動作がおかしくなったことがあります。 (時間がなかったので、エラー検証を詳しくやらなかったのですが…… orz) DB 化していないファイルの内容が、きちんと動作に反映されるように、 テスト中は sendmail の再起動をこまめにやっておくとよいかもしれません。 それと、ログファイルには、もっと詳細な情報が書かれていると思いますので、 そちらも確認してみてください。 各種ファイルの記述については、 sendmail.mc は、FEATURE(`use_cw_file') があるので、 define(`confCW_FILE',〜) は不要です(デフォルトと一緒なので)。 【追記】 DOMAIN(generic) があるので、FEATURE(`use_cw_file') も不要です (^^; Dwmail と Dmexample.co.jp も、DMZ 内に配置されているサーバとのことですので、 DNS がきちんと引けているでしょうから、不要です。 【追記】 define(`confDOMAIN_NAME',〜) も不要です。 mailertable は、ブラケットで囲むとすれば、ホストの部分(コロンの右側)だけです。 (今のままですと、「動作しない」 で正解のように思います) local-host-names は、自ホスト宛てのメールを受け取るだけでしたら、 空のファイルを用意するだけでよいでしょう。 (今のままですと、user@example.co.jp 宛てのメールを自ホストで処理してしまい、 内部にリレーしません) [ メッセージ編集済み 編集者: はゆる 編集日時 2005-11-11 12:59 ] | ||||
|
投稿日時: 2005-11-11 13:32
こんにちは、A.Wです。
はゆる様、早々のお返事ありがとうございます。 早速ですが、 # /usr/lib/sendmail -bv postmaster ではlocalのrootに配送ということになりますし、 # /usr/lib/sendmail -bv user@example.co.jp だとmailertableで指定しているスプールサーバに配送される、 という結果になります。 mailertableが機能していなければ内部DNSのMXを参照している可能性もあります。 (前と話が矛盾しちゃってるので、最後に今のテスト環境を書いておきました。) mailertableの記述方法は、この掲示板の投稿時に間違って表記してしまいました。 (↑コピペの後、何故か編集してしまうというわけのわからないことを…w) 混乱させてしまって申し訳ありません。サーバ上では、 example.co.jp smtp:[スプールサーバのIP] という形になっております。 mcファイルの書き方のご解説ありがとうございます。 とても参考になります。 local-host-namesにはスプールサーバのIPのみを記述したり、 中身を空にして動作させてみましたが、状況は変わりません。 ※設定を変えるごとにsendmailの再起動をしています。 リレーサーバのログは、 Nov 10 16:33:51 mail sendmail[12703]: [ID 801593 mail.notice] jAA7Xpla012703: ruleset=check_rcpt, arg1=<user@example.co.jp>, relay=xxx.aaa.com [xxx.xxx. xxx.xxx], reject=550 5.7.1 <user@example.co.jp>... Relaying denied Nov 10 16:33:51 mail sendmail[12703]: [ID 801593 mail.info] jAA7Xpla012703: from=< test@aaa.com>, size=582, class=0, nrcpts=0, proto=ESMTP, daemon=MTA , relay=xxx.aaa.com [xxx.xxx.xxx.xxx] です。ただ単にリレー拒否されてるだけのような…。 となると、やはり静的に配送する動作がうまくいっていない、 ということでしょうか。 少し話がややこしくなってしまうのですが、 現在、DMZのリレーサーバ(ホスト名:mail)でのテストは危険なので控えていまして、 内部にある使っていないサーバ(ホスト名:testmail)をリレーサーバとして構築し、 また、DMZにある別のサーバからメールを送ったときに、mailertableで testmailにフォワードするように設定してテストしています。 この送信用として利用したDMZにある別のサーバのmailertavleは正しく動作 していると言えます。(linuxなので若干設定が違うのですが…。) 内部ではスプールサーバをMXで指定しているので、この記事の一番始めに書いた # /usr/lib/sendmail -bv user@example.co.jp のテストでは、mailertableで指定された場所に配送しているのか、 MXレコードを参照して配送してるのか判別がつかない状況です。 後者の場合なら「Relaying denied」になるのもわかります。 せめてこの切り分けができたら話も変わってくると思うのですが。 | ||||
|
投稿日時: 2005-11-11 14:13
はい、そのようです。 下記のように、sendmail のテストモードで、access データベースがきちんと引けるか 確認してみてください。 # /usr/lib/sendmail -bt : : > /map access example.co.jp (/quit でテストモードを抜けられます) 「no match」 と表示されなければ、引けています。 | ||||
|
投稿日時: 2005-11-11 14:22
早々のお返事、ありがとうございます。
早速、結果の方ですが、 > /map access example.co.jp map_lookup: access (example.co.jp) returns RELAY (0) > /map access test.com map_lookup: access (test.com) no match (0) という感じなので、accessを引けていると思います。 test.comはaccessに記述していないドメインです。 | ||||
|
投稿日時: 2005-11-11 18:18
access データベースには問題なさそうですね……う〜ん。
2005-11-11 13:32 のログを拝見する限り、 xxx.aaa.com からの接続を testmail.example.co.jp(かな?)が拒否していますので、 ご心配されているような、静的配送に失敗しているわけではなさそうです。 (それ以前の段階ですので) ちなみに、mailertable にてホスト部分をブラケットで囲むと、 DNS の MX レコードを参照せずに配送するようになります。 いきなり外部(test@aaa.com)からメールのテストを行うのではなく、 内部から少しずつ試していったら、原因が絞り込めないでしょうか? testmail.example.co.jp 上からテストを行うのでしたら、 $ /usr/lib/sendmail -v user@example.co.jp < 適当なファイル(/etc/hosts など) のようにすると、sendmail の応答を確認しながらメールが送れます。 スプールサーバ(内部)からは、telnet でお話しながらやってみてはどうでしょうか。 (参考: @IT:TCP-IPアレルギー撲滅ドリル【超実践編】(3)) | ||||
|
投稿日時: 2005-11-11 20:52
はゆる様
お返事ありがとうございます。お手数かけます。 来週に一つずつ問題を切り分けていってみます。 またご報告します。 | ||||
|
投稿日時: 2005-11-12 01:00
はい、ひとつずつ片付けていったほうが、解決が早いと思います。
私、投稿内容を読み違えていたのですが、 testmail.example.co.jp は、内部に設置されているサーバなのですよね orz ご提示いただいたログも、mail.example.co.jp のもののようですので、 直近のテスト結果のものを記載されたほうが、返答を得やすいと思います。 それと、testmail.example.co.jp は、内部に設置されているサーバですので、 自ホスト名の設定がうまくできていないかもしれません(DNS を引けるのが前提で)。 sendmail は、起動時にホスト名のチェックを行っています。 # /usr/lib/sendmail -bv -d0.4 で、エラーが出ているようでしたら、 /etc/hosts の自ホスト名の後ろに、FQDN を追加してみてください。 (または、sendmail.mc の 「Dmexample.co.jp」 と 「define(`confDOMAIN_NAME', `$w.$m')」 を復活させます) ログファイルも、テスト中は tail -f で監視しておくとよいかもしれません。 |