- ベストアンサー
sendmailで自サーバーへ送信できない
phpからのメール送信で、sendmailで自サーバーあてのメールが送信できません。他サーバー宛ては送信できます。 chmod 4555 sendmail または chmod 4555 mailwrapper にすると送信できますが、セキュリティーが怖いです。 現在は パーミッション 0555 です。 2555 でも送信できません。 何か正しい設定があると思うのですが、色々調べましたが分かりませんでした。なにかヒントをいただければありがたいです。よろしくおねがいいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
sendmailは、普通はsetuidかsetgidかどちらかはしているものです。 中継しかしないsendmail(ローカルなメールボックス無し)だったら、set[ug]id無しで動かすことも可能でしょうけど。
その他の回答 (4)
- a-saitoh
- ベストアンサー率30% (524/1722)
1日経つと SUID が自動的にリセットされてしまうとのことですが、作業手順を間違えているのだと思います。 setuid/setgidしているはずのファイル一覧と実際を比べて、予想外にsetuid/setgidされているファイルがあればモードを元に戻すと言う処理が1日に1回行われているのでしょう(cronに登録されているはず)。 セキュリティチェックの元台帳を書き換えれば、よいはず。 具体的には、OSの種類ごとに違いますので、改めて質問をするとよいでしょう。
お礼
ありがとうございます。 それでは、改めて質問するように致します。 UNIXって、奥が深いですね。
- a-saitoh
- ベストアンサー率30% (524/1722)
Ano2です。補足。 ローカルにメールボックスをおく場合、電子メールシステムの中にどれか一つはroot権限で動作するプログラムが必要です。それはsendmail自身でなくてもいいのですが、、。 各個人のメールボックスはその個人の所有するファイルで無ければなりませんから。 ただし、ローカルにメールボックスを置くがPOPでしかユーザがメールを取得しないと言うのならまた話は別ですけどね。
補足
ありがとうございます。 chmod 4555 /usr/libexec/sendmail/sendmail で、一時的に問題は解消されましたが、 1日経つと SUID が自動的にリセットされてしまう(パーミッションが0555になる)のですが、これはセキュリティー上これを許さない環境になっているのでしょうか? サーバーの販売者いわく、「あまりこのようなことはしない」と言っています。(細かなことはサポート外で教えてくれません)
- yambejp
- ベストアンサー率51% (3827/7415)
sendmail.mcで MODIFY_MAILER_FLAGS(`LOCAL',`+S') とかで対応できませんか? (いまさらWIDE版のCFってことはないと思いますので)
補足
ありがとうございます。 sendmail.mc を編集して、 m4 sendmail.mc > sendmail.cf そして、sendmailをリスタートさせました。 すると、OutlookExpressからのメール送信が出来なくなってしまったのですけど、私のやり方がまずかったのかな? phpからのメール送信については状況は変わりませんでした。
>なにかヒント ログを読む
お礼
pastelflow様、ありがとうございます。 結局、急いでいるので、しばらくは chmod 4555 /usr/libexec/sendmail/sendmail で、使用しますが、これは普通のことなんでしょうか? それとも、セキュリティー面でよくないのでしょうか?
補足
ログには、 ユーザー名 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 と出ていますが、具体的に何をすればいいのか分かりません。
お礼
ありがとうございました。 安心しました。 3日ほど悩んだので、これですっきりしました。