2007年11月22日

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

さすが海外さん。

ラベルを臨時に変えても、
再起動では大丈夫なんですね。
でも、relabelすると、元に戻るらしいので、この場合、
やはり、ポリシを作るというのがよさそうですね。

ラベルを変えて、しばらくうまく動いていても、

リラベルしてみよう、と誰かがやったら、エラーの嵐に。。

http://danwalsh.livejournal.com/4208.html


07/11/22 に KaiGai Kohei<kaigai@xxxxx> さんは書きました:
> 海外です。
>
> >> chconでタイプを変更してもいいと思いますが、再起動したら、
> >> 元に戻ってしまうと思います。
> >
> > えっ!そうだったんですか?
> > (再起動時にrestoreconが実行されるのかな)
>
> いえ、再起動しても SELinux のセキュリティコンテキストは
> 保持されますのでご安心を。
>
> >>> PHPプログラムからは、以下の様なコマンドを実行します。
> >>> echo "暗号化する文字列" |/usr/bin/gpg -a --batch --homedir
> >>> /var/www/.gnupg -e --recipient メールアドレス
>
> PHPのsystem()関数などを使って、上記のコマンドを実行されている
> ものと推測します。PHPから外部コマンド呼び出し系の関数を実行した
> 場合、/bin/sh 経由での実行になってしまいます。
>
> これは httpd_t ドメインによる shell_exec_t タイプの実行となり、
> これによって httpd_sys_script_t ドメインへのドメイン遷移が発生
> します。このドメインは process:{setrlimit} 権限が無く、他の適
> 当なドメインへの遷移パスの無いので、ポリシーの編集以外に手段が
> 無いように見えます。
> ただし、これは boolean の httpd_ssi_exec が on に設定
> されている場合。
>
> httpd_ssi_exec を off に設定すると、httpd が /bin/sh を実行しても、
> httpd_t ドメインのままですので、ポリシーの編集以外にも手の打ちよう
> があります。
>
> まず、上記の処理を行うシェルスクリプトを作成してください。
> /usr/local/bin/gpg-wrapper.sh 等という形で
> -----
> #!/bin/sh
>
> echo "$1" | /usr/bin/gpg -a --batch --homedir /var/www/.gnupg -e --recipient "$2"
> -----
> を作成し、これに httpd_unconfined_exec_t というタイプを付与します。
> PHPからは system("/usr/local/bin/gpg-wrapper.sh 暗号化する文字列 メールアドレス"); という形で
> 実行できるでしょう。
>
> httpd_t が httpd_unconfined_exec_t を実行した場合のドメイン遷移は
> httpd_unconfined_script_t ですので、必要な権限が付与されることに
> なります。
>
> 但し、"unconfined" と付いているように、このドメインは非常に強い
> 権限を持っており、入力値の検査には注意するようにしてください。
> 例えば、暗号化する文字列に「a"; cat /etc/shadow; echo "abc」なんて
> 入っていたらとても悲しいことになります。
>
>
> ポリシーを編集する場合の別解としては、
> /usr/share/selinux/devel/include/apps/gpg.if に定義されている
> gpg_per_role_template を使って、CGIから実行するためのgpg専用の
> ドメインを作成するというのもできそうです。
> が、こちらは私自身で試したわけではありません。
>
> というわけで、こんな感じでいかがでしょう?
> --
> OSS Platform Development Division, NEC
> KaiGai Kohei <kaigai@xxxxx>
>
>


--
Shintaro Fujiwara
segatex project (SELinux policy tool)
http://sourceforge.net/projects/segatex/
Home page
http://intrajp.no-ip.com/
Blog
http://intrajp.no-ip.com/nucleus/
CMS
http://intrajp.no-ip.com/xoops/
Wiki
http://intrajp.no-ip.com/pukiwiki/

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




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