[jsosug:00104] Re: SELinuxのログを詳細に出す方法をご教示願いたく

Back to archive index

Fumihiko Shiroyama shiro****@soba-*****
2009年 8月 21日 (金) 21:47:19 JST


海外様
才所様

早速のレスポンス本当に感謝いたします。

お二人のアドバイスに従い、以下のようにすることで問題を解決することに成功
いたしました。
実際のログファイルや生成されたteファイルは長大になるので省略いたします
が、もし同じような問題に苦しむ方がいらっしゃったら参考になると存じますの
で手順のみ記します。

# お二人のアドバイスに従ったのみです
# cd /usr/share/selinux/
# semodule -b enableaudit.pp #ベースモジュールを切り替え
# grep "avc" /var/log/audit/audit.log > avc.txt
# audit2allow -M rubyonrails -i avc.txt
# semodule -i rubyonrails.pp

今回のことは大変なノウハウになりました。ご教示いただけて幸甚です。
こういったMLに不案内ですので、何か他の人のノウハウの為にこういった情報は
開示すべきだよ、といったアドバイスがございましたらご指導ください。

ありがとうございました。

┏ ─────────────────────── ┓
  白山文彦 shiro****@soba-*****
       株式会社SOBAプロジェクト 開発部
       tel 075-323-6066 fax 075-323-6067
       http://www.soba-project.com/
┗ ─────────────────────── ┛

saisho wrote:
> 才所です。
> 
> 以下のenableaudit.ppは使えませんかね?
> 
> http://rokuha48.blog63.fc2.com/blog-entry-90.html
> 
> On Fri, 21 Aug 2009 17:43:22 +0900
> KaiGai Kohei <kaiga****@ak*****> wrote:
> 
>> 海外です。
>>
>> ちょっと CentOS5.3 でこのオプションがサポートされているかどうか、
>> 定かではないのですが
>>
>>   semodule -BD
>>
>> を実行し、その後で再度ログを収集するというのではいかがでしょう?
>>
>> 最近の SELinux ポリシーでは、プログラムの実行に必要な権限を網羅的に
>> 許可するのではなく、一部のあってもなくても構わない権限については、
>> 代わりに dontaudit ルールを用いるようにしています。
>>
>> # 例えば、コンソールにエラーメッセージを吐く時に必要な write 権限
>> ## どうせプログラムは書き込みが成功したかチェックしないので :-)
>>
>> ですが、この場合『実際には拒否られているのにログには出力されない』と
>> いう問題が発生することがあります。
>>
>> semodule コマンドの -B は、*.pp ファイルからのポリシーの再ビルド、
>> -D は再ビルド時に dontaudit ルールを無効化するオプションです。
>>
>> 追記:
>> rubyonrails.pp の元になったログファイルを送付して頂ければ、もう少し
>> 適切なアドバイスも可能かと思います。
>> 例えば、インストール先のファイルに適切な定義済みタイプを設定する、など。
>>
>> それでは、取り急ぎ。
>>
>> Fumihiko Shiroyama wrote:
>>> 初めまして、本日よりメーリングリストに参加させていただきました白山と申し
>>> ます。どうか宜しくお願いいたします。
>>>
>>> 本日は、SELinuxのログをより詳細に出力する方法について質問させていただき
>>> たく、メールを送らせていただきます。
>>>
>>> 現在、
>>> ・CentOS5.3 Linux
>>> ・SELinuxのTargetdポリシーが有効
>>> ・auditdが動いており、/var/log/audit/audit.logにSELinuxのログが一手に吐
>>> き出される状態
>>> で運用しております。
>>>
>>> この程、この環境でRuby on Rails(+Fast CGI)を動かすべく環境を整えました。
>>> 現在、
>>>
>>> # setenforce 0 #Permissive
>>>
>>> で、Ruby on Railsの全てのプログラムが正常に動作する状態です。
>>>
>>> この状態でsetenforce 1としてSELinuxを有効にしたところ、プログラムは動作
>>> しなくなり、audit.logにも多数の avc: denied {read} 等が出ておりましたの
>>> で、SELinuxのaudit2allowツールを使って以下のようにしました。
>>>
>>> # audit2allow -M rubyonrails -i /var/log/audit/audit.log
>>> # semodule -i rubyonrails.pp
>>>
>>> 何度かaudit2allowとaudit.logを交互に眺めながらトライアンドエラーしている
>>> 内に、audit.logには一切 "avc denied" 等の文言が出なくなり、これで許可し
>>> きったかと思ったのですが、相変わらずRuby on Railsプログラムは動作せず、
>>> 試しにその状態でもう一度SELinuxをPermissiveモードにしてみるときちんと動
>>> 作します。
>>>
>>> これまで、audit.logを一行一行眺めながら、全ての deny を取り去ってSELinux
>>> がきちんと動作しなかった経験がなかったので狼狽してしまいました。
>>> ログにこれ以上何も出なくなってしまったので、現在は問題解決の取っ掛かりを
>>> 失ってしまったような状態です。
>>>
>>> とりあえず安直に「もっと詳細なログを出すことが出来れば何か分かるのではな
>>> いか?」と考えて表題の通りなご質問になった次第です。
>>> どのようなアドバイスでも感謝いたします。どうぞ宜しくお願い申し上げます。
>>>
>>>
>>> 追記:
>>> Ruby on Railsを構成する環境は以下の通り、RPMで導入したものとソースからビ
>>> ルドしたものが混在しております。自分でビルドしたバイナリや、それを元に自
>>> 作したRPMからインストールした場合にどのようなドメインやタイプが割り当て
>>> られるのか無知であるため、情報として追記させていただきました。
>>>
>>> ・httpd-2.2.3-22.el5.centos.2 (公式リポジトリのRPM)
>>> ・ruby 1.8.6 (ソースから自作したRPM)
>>> ・rubygems 1.3.5 (ソースから自作したRPM)
>>> ・fastcgi 2.4.0 (ソースから自作したRPM)
>>> ・mod_fastcgi 2.4.6 (ソースから自作したRPM)
>>> ・rails 2.0.2 (gem installコマンドにてインストール)
>>>
>>>
>>> 以上、長文失礼いたしました。
>>>
>>
>> -- 
>> OSS Platform Development Division, NEC
>> KaiGai Kohei <kaiga****@ak*****>
>>
>> _______________________________________________
>> Japan secure operating system users group
>> users****@secur*****
>> http://lists.sourceforge.jp/mailman/listinfo/jsosug-users
> 
> _______________________________________________
> Japan secure operating system users group
> users****@secur*****
> http://lists.sourceforge.jp/mailman/listinfo/jsosug-users
> 
> 




Jsosug-users メーリングリストの案内
Back to archive index