SELinuxのポリシーに悪戦苦闘

| コメント(2) | トラックバック(0)
前々から気づいていたのだが、誰かがブログにコメントした場合、コメントがあった旨のお知らせメールが送信されないでいた。理由は単純で、SELinuxのセキュリティポリシーのせいだ。httpd(Apache)からmail(sendmail)を起動した場合、ドメイン遷移が行われないようになっているため、httpdがsendmailのリソースにアクセスできないようになっている。

ブログにコメントする人もいないし、コメント自体は問題なく登録できているのでほったらかしにしていた。ところが、昨日、システムのログをチェックしていたところ、だれかコメントをしようとした形跡があった。ブログへのユーザ登録までは終わっていたようだ。登録されたユーザは「保留」になっていた。これは、「登録確認用のメール」が送信されなかったため、登録者は「保留」から「有効」に変更できなかったからだ。これじゃ、コメントのしようもなかったのだろう。申し訳ない。

そこで、SELinuxのセキュリティポリシーを変更し、ブログからメールが送られるようにした。最初は、たいしたことはないと思っていたのだが、ちょっと手間取ってしまった。
httpd(実際は、httpd_sys_script_t)から sendmail のプログラム(sendmail_exec_t)が起動されたとき、ド メインを sendmail_t または system_mail_t に遷移させれば問題ないはずだと思い、以下のようなポリシーを追加した。
domain_auto_trans(httpd_sys_script_t, sendmail_exec_t, sendmail_t)
または
domain_auto_trans(httpd_sys_script_t, sendmail_exec_t, system_mail_t)
ところが、ポリシーのコンパイルでエラーになる。上記以外にも色々試してもだめだった。しかたないので、httpd_sys_script_t に sendmail が使用するリソースへのアクセス許可を追加しようとしたが、これはあまりにも危険すぎると思いあきらめた。

「まぁ、コメントする人も少ないだろうから、やっぱ対策はやめようかな」とあきらめかけていたとき、何気に Apache のポリシー(apache.te)を眺めていたところ、 以下のような記述を発見した。
## Allow http daemon to send mail
gen_tunable(httpd_can_sendmail, false)

なんてことだ、メール送信許可用のフラグが用意されているではないか。デフォルト値は"false"なので httpd からメールは送信禁止になっている。
setsebool -P httpd_can_sendmail=on
早速、上記コマンド(-Pオプションは、設定内容をファイルに保存)を実行し、httpd にメール送信の許可を与えると、無事コメント時のメールが送られてきた。・・・めでたし、めでたし。

トラックバック(0)

トラックバックURL: http://ueno.myhome.cx/mtos/mt-tb.cgi/249

コメント(2)

お久しぶりです。某社sPF4のiです。
たま~に見ていたのですが今回コメントの設定ということで試しに書かせて頂きます。

おぉ~、初コメントありがとうございます。
iさんのアカウントが既に「有効」になっていたので、確認したら、昨日のシスログの形跡は「アカウント登録確認」のメールが送れなかったログだったのですね。
ちょっと勘違いしていたので、本文を修正しました。

読んでいる人がいると励みになります。

コメントする

このブログ記事について

<前自転車:多摩川をめざして

次>プリンタ(MP640)到着

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ

最近のコメント

Powered by Movable Type 4.27-ja

最近のつぶやき


アイテム

  • sP1000657.JPG
  • sP1000656.JPG
  • sP1000655.JPG
  • sP1000654.JPG
  • sP1000653.JPG
  • sP1000652.JPG
  • sP1000651.JPG
  • sP1000650.JPG
  • sP1000649.JPG
  • sP1000648.JPG
  • sP1000647.JPG
  • sP1000646.JPG
  • sP1000645.JPG
  • sP1000644.JPG
  • sP1000643.JPG
  • sP1000642.JPG
  • sP1000641.JPG
  • sP1000640.JPG
  • P1000640.JPG
  • sP1000639.JPG