• ベストアンサー

sendmailで自サーバーへ送信できない

phpからのメール送信で、sendmailで自サーバーあてのメールが送信できません。他サーバー宛ては送信できます。 chmod 4555 sendmail または chmod 4555 mailwrapper にすると送信できますが、セキュリティーが怖いです。 現在は パーミッション 0555 です。 2555 でも送信できません。 何か正しい設定があると思うのですが、色々調べましたが分かりませんでした。なにかヒントをいただければありがたいです。よろしくおねがいいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

sendmailは、普通はsetuidかsetgidかどちらかはしているものです。 中継しかしないsendmail(ローカルなメールボックス無し)だったら、set[ug]id無しで動かすことも可能でしょうけど。

unique2004
質問者

お礼

ありがとうございました。 安心しました。 3日ほど悩んだので、これですっきりしました。

その他の回答 (4)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.5

1日経つと SUID が自動的にリセットされてしまうとのことですが、作業手順を間違えているのだと思います。 setuid/setgidしているはずのファイル一覧と実際を比べて、予想外にsetuid/setgidされているファイルがあればモードを元に戻すと言う処理が1日に1回行われているのでしょう(cronに登録されているはず)。 セキュリティチェックの元台帳を書き換えれば、よいはず。 具体的には、OSの種類ごとに違いますので、改めて質問をするとよいでしょう。

unique2004
質問者

お礼

ありがとうございます。 それでは、改めて質問するように致します。 UNIXって、奥が深いですね。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.4

Ano2です。補足。 ローカルにメールボックスをおく場合、電子メールシステムの中にどれか一つはroot権限で動作するプログラムが必要です。それはsendmail自身でなくてもいいのですが、、。 各個人のメールボックスはその個人の所有するファイルで無ければなりませんから。 ただし、ローカルにメールボックスを置くがPOPでしかユーザがメールを取得しないと言うのならまた話は別ですけどね。

unique2004
質問者

補足

ありがとうございます。 chmod 4555 /usr/libexec/sendmail/sendmail で、一時的に問題は解消されましたが、 1日経つと SUID が自動的にリセットされてしまう(パーミッションが0555になる)のですが、これはセキュリティー上これを許さない環境になっているのでしょうか? サーバーの販売者いわく、「あまりこのようなことはしない」と言っています。(細かなことはサポート外で教えてくれません)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

sendmail.mcで MODIFY_MAILER_FLAGS(`LOCAL',`+S') とかで対応できませんか? (いまさらWIDE版のCFってことはないと思いますので)

unique2004
質問者

補足

ありがとうございます。 sendmail.mc を編集して、 m4 sendmail.mc > sendmail.cf そして、sendmailをリスタートさせました。 すると、OutlookExpressからのメール送信が出来なくなってしまったのですけど、私のやり方がまずかったのかな? phpからのメール送信については状況は変わりませんでした。

noname#98978
noname#98978
回答No.1

>なにかヒント ログを読む

unique2004
質問者

お礼

pastelflow様、ありがとうございます。 結局、急いでいるので、しばらくは chmod 4555 /usr/libexec/sendmail/sendmail で、使用しますが、これは普通のことなんでしょうか? それとも、セキュリティー面でよくないのでしょうか?

unique2004
質問者

補足

ログには、 ユーザー名 sendmail[xx]: xxx: SYSERR(www): Cannot open hash database /etc/mail/aliases.db: Permission denied と、 ユーザー名 sendmail[xx]: xxx:SYSERR(www): openmailer: insufficient privileges to change gid, RunAsUid=80, new_gid=0,gid=80,egid=25 と出ていますが、具体的に何をすればいいのか分かりません。