- PR -

qmailのbounceができないのですが…。

1
投稿者投稿内容
cacYAH
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 11:53
誰か教えてください。
先日、qmailを利用してメールサーバを構築したのですが、転送メールがエラーになっているようなのです。
キューにたまっているものは、全てbounceで失敗しているものばかりのようで、maillogを見ると、
"warning: trouble injecting bounce message, will try later"
が出力されていました。
…いろいろと調べてみましたが、ディスクの空き容量はぜんぜんありますし、普通のあて先を指定したメールは配送されています。キューにたまっているのは全て、「ユーザーなし」、またはメーリングリスト(qmail-*)のメールのようなのです。
…どこかのフォルダ、またはファイルの権限が間違っているようなのですが、一通り確認したつもりなのです。
qmail/alias、qmail/bin、qmail/queue、qmail/control

…どこか間違っている(または間違っていそうな場所)ご指摘お願いいたします。

環境はRedhat Enterprise Server 3です。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-08-02 13:31
こんにちは。
一番くさいのは qmail-queue のパーミッションに思えるのですが、とりあえず確認するなら、qmail をビルドしたディレクトリに戻って、root で make check です。
一応、空き容量だけでなく、i-node数も確認はした方が良いと思います。(普通引っかかることは稀ですけど)

根性があるなら、動作中の qmail-send を strace で動作解析しても良いですが、これは最終手段かも。構築して間もないテスト段階であれば、設定を退避して qmail を再ビルドすることも考えた方が良いでしょう。

以上、ご参考まで。
cacYAH
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 20:56
早速のご回答どうもありがとうございます。
確かに、make checkを行なったところ、「qmail-queueのパーミッションが違います」という結果になりましたが、このサーバでは「アンチウィルスfor q-mail」をインストールしているので、qmail-queue自体をアンチウィルスさソフトが書き換えて、一度アンチウィルスソフトが中継されています。
表示されたのはその1行だけでした。

メールサーバは移行する予定で既にメインのメールサーバからデータを転送して蓄積しています。
根性はあるので、「strace」の方法を教えてください。お願いします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-08-02 21:55
こんばんは。
引用:
確かに、make checkを行なったところ、「qmail-queueのパーミッションが違います」という結果になりましたが、このサーバでは「アンチウィルスfor q-mail」をインストールしているので、qmail-queue自体をアンチウィルスさソフトが書き換えて、一度アンチウィルスソフトが中継されています。


アンチウイルスソフトが絡んでいるにしても、qmail-queue のパーミッションが変わっているのは致命的なように思うのですが…。

標準では、qmailq:qmail 所有の 4711(srwx--x--x) のパーミッションになっています。
qmail-send も、キュー登録には qmail-queue を呼び出しますし、自分の権限 (qmails) ではキュー登録ができないので、SUID されているのが特に重要なのです。

取り敢えずは、アンチウイルスソフトの仕様も含めて、qmail-queue のパーミッションを細かく確認してみては如何でしょうか。

※straceは慣れないと(慣れても)根性がいりますよ…。先に man を見て簡単な使い方に慣れておくことをお勧めします。コマンドとしては…、例えば strace cat /etc/hosts とか。

[ メッセージ編集済み 編集者: angel 編集日時 2005-08-02 21:59 ]
cacYAH
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 22:45
どうもありがとうございます。
qmail-queueのパーミッションは4777に設定されていたためでした。4711に変更したところ、make checkでのエラーはなくなりましたが、動作に変化はありませんでした。(当然ですよね)
…とすれば、別の要因なのでしょうか。
…どうもありがとうございました。もう少し調べてみて、結果わかりましたらこの場でご報告いたします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-08-03 03:24
こんばんは。
strace のリクエストがありましたので、qmail を strace して得られた結果を載せて見ます。丁度、bounce メールを qmail-queue でキューに登録する部分です。
※重要な部分だけ抜粋しています。

コマンドとしては、root で strace -fp $(pgrep qmail-send) になります。

引用:
出力結果
vfork() = 13773
Process 13773 attached
[pid 13773] chdir("/var/qmail") = 0
[pid 13773] execve("bin/qmail-queue", ["bin/qmail-queue"], [/* 7 vars */]) = 0
[pid 13773] chdir("/var/qmail") = 0
[pid 13773] chdir("queue") = 0
[pid 13773] open("pid/13773.1122999140.1", O_WRONLY|O_CREAT|O_EXCL, 0644) = 9
[pid 13773] link("pid/13773.1122999140.1", "mess/6/359749") = 0
[pid 13773] unlink("pid/13773.1122999140.1") = 0
[pid 13773] read(0, "Date: 2 Aug 2005 16:12:20 -0000\n"..., 2048) = 1138
[pid 13773] write(9, "Received: (qmail 13773 invoked f"..., 70) = 70
[pid 13773] write(9, "Date: 2 Aug 2005 16:12:20 -0000\n"..., 1138) = 1138
[pid 13773] read(0, "", 2048) = 0
[pid 13773] open("intd/359749", O_WRONLY|O_CREAT|O_EXCL, 0644) = 10
[pid 13773] read(1, "F\0Tangel@example.com\0\0", 2048) = 25
[pid 13773] write(10, "u108\0p13773\0F\0Tangel@example."..., 36) = 36
[pid 13773] link("intd/359749", "todo/359749") = 0
[pid 13773] open("lock/trigger", O_WRONLY|O_NONBLOCK) = 11
[pid 13773] write(11, "\0", 1) = 1
[pid 13773] close(11) = 0
[pid 13773] exit_group(0) = ?



…とまぁ、このような形で、プロセス実行やファイル関連処理が、OSのシステムコールレベルで出ますので、どんな処理をやってるか、どこでエラーが発生しているかが分かるということです。

以上、ご参考まで。
cacYAH
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-03 09:29
どうもありがとうございます。試してみます。
cacYAH
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-03 22:40
やっと判りました。
straceを実行していると、途中でエラーが出てstraceが終了したので、終了直前のログを見ながら色々と調査しました。
やはり、qmail-queueでパーミッションエラーが発生していました。
qmail-queueは、アンチウィルスが一度通るので…と考えながら、アンチウィルスを調べた結果、
アップデートしていないことに気づきまして、アップデートしたらすんなり通りました。
angelさん、いろいろと細かくお教えいただきまして誠にありがとうございました。

一週間近く悩んだ結果がアップデートで終わったとは、いやはや…。
1

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