2007年12月 9日

[selinux-users:02084] Re: setrlimitを許可するようなタイプはありませんでしょうか。

海外です。

> 今回は、2と3で対処しました。
> あれから、Sambaのパスワード変更処理部分も引っかかり、Permissiveで
> 一通り操作したあとaudit2allowで追加の設定をだして、teファイルに追加
> しましたが、make reloadすると
> allow httpd_sys_script_t unconfined_t:process { noatsecure rlimitinh
> siginh transition };

> という1行だけ
> assertion on line 25289 violated by allow httpd_sys_script_t
> unconfined_t:process { transition noatsecure siginh rlimitinh };
> make: *** [/etc/selinux/targeted/policy/policy.18] エラー 1
> となってしまいました。
> インターネットで検索したところ、dontauditがどうのこうの書いてある
> ようでしたがよく分からず。

これは neverallow ルールに引っかかっているものと思われます。

手元にRHEL4の該当ポリシーがありませんでしたので、CentOS4のポリシー
(selinux-policy-targeted-sources-1.17.30-2.145.noarch.rpm)で確認
してみたところ、以下のようなルールがありました。
------
# Confined domains must never touch an unconfined domain except to
# send SIGCHLD for child termination notifications.
neverallow { domain -unrestricted -snmpd_t -pegasus_t } unconfined_t:process ~sigchld;
------
これは、httpd_sys_script_t(CGIスクリプト)をはじめとする unconfined でないドメイン、
つまり SELinux が厳しいアクセス制御を行っているドメインが、unconfined_t ドメインには
一切手出しできないようにするためのルールです。

「process ~sigchld」は、オブジェクトクラス process の sigchld パーミッション以外全部を
意味しており、近藤さんが許可を出そうとしている「transition noatsecure siginh rlimitinh」も
含まれます。
したがって、httpd_sys_script_t → unconfined_t へのドメイン遷移を許可することはできません。

ところで、selinux-policy-targeted-sources-1.17.30-2.145.noarch.rpm の中身を確認した
ところ、httpd_unconfined_script_t/httpd_unconfined_script_exec_t が定義されていました…。

# unconfined_t への遷移は絶対に許さないが、httpd_unconfined_script_t への遷移は許す
# というのは、ポリシーとして如何なものかと思わなくもない。

RHEL4無印には無かったはずと思っていたのですが、何時の間にか Update で入っていたのか、
私のチェック漏れだったのか。恥ずかしながら、ガセ情報を撒き散らしていたようです。

再度、gpgを呼び出すスクリプトを httpd_unconfined_script_exec_t タイプに変更して
動作させることができるかどうか、試してみて頂けないでしょうか?

変更方法は、以下の通りです。
$ chcon -t httpd_unconfined_script_exec_t <スクリプトファイル>

Sambaのパスワードを操作するスクリプトも、同じように対処可能と思われますが、
手元に実環境が無いので、ポリシーだけを見てのサジェスチョンです。

> とりあえず、2と3で解決はしたようですが、httpd_sys_script_t unconfined_t
> は、httpd_unconfined_exec_tと同様RedHatEL4のSELinuxではなくRedHat5の
> SELinuxから使えるものということでしょうか?
> (unconfinedというキーワードが付くものはRedHat5?)
> という疑問がでたので、今後のために教えていただけたらと思います。

RedHatEL4 のポリシーと、RedHatEL5 のポリシーは、そもそも出自が違っており、
差分を比較するのはなかなか困難です。
# RHEL4: NSA配布のポリシーをベースにしている
# RHEL5: Reference Policy という 0 から書き直されたものがベース

で、unconfined_t は RHEL4/5 で同じ動きをするようにポリシーが記述されています。
しかし、httpd_sys_script_t(CGI)からは遷移パスを切る事で、CGIの弱点を突いて
権限を奪われないように設定されている、という事ですね。

以上です
--
KaiGai Kohei <kaigai@xxxxx>

投稿者 xml-rpc : 2007年12月 9日 21:35
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/67439
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。