2009年3月10日

[jsosug:00073]PHP/SELinuxインターフェース

海外です。

PHPスクリプトからSELinuxの各種インターフェースを利用するための
モジュールなる物を作成してみました。

* SELinux binding for PHP script language
http://pecl.php.net/package/selinux
http://cvs.php.net/viewvc.cgi/pecl/selinux/


* php-pecl-selinux (Fedoraでのパッケージ名)
http://koji.fedoraproject.org/koji/packageinfo?packageID=7917

* 関数の一覧
http://code.google.com/p/sepgsql/wiki/Memo_PHP_SELinux
(すいません英語です…)

あと数日もすれば、yum install php-pecl-selinux で手元の Fedora 環境に
落ちてくるようになる(Fedora9〜)と思いますが、新しいもの好きの方は、
上記のURLよりダウンロードできます。

インストール)
# wget http://.../php-pecl-selinux-0.1.2-1.fc10.i386.rpm
# rpm -Uvh php-pecl-selinux-0.1.2-1.fc10.i386.rpm
$ php -r 'echo selinux_getcon()."\n";'
unconfined_u:unconfined_r:unconfined_t:SystemLow-SystemMiddle

使い方の例としては、SELinuxのセキュリティポリシーが、どういった
アクセス制御のルールを持っているかを見るために selinux_compute_av()
関数を使ってみて…

$ php -r '$scontext = "staff_u:staff_r:staff_t";
$tcontext = "system_u:object_r:etc_t";
$avd = selinux_compute_av($scontext, $tcontext, "file");
var_dump($avd);'
array(4) {
["allowed"]=>
array(21) {
["ioctl"]=>
bool(true)
["read"]=>
bool(true)
["write"]=>
bool(false)
["create"]=>
bool(false)
["getattr"]=>
bool(true)
["setattr"]=>
bool(false)
["lock"]=>
bool(true)

(以下略)

なんて事ができます。

そもそもの目的は、Apache上でPHPスクリプトを動かした際に、
SELinux関連の機能を利用してゴニョゴニョするためなのですが、
LL言語で簡単に SELinux の挙動を眺める事ができるという事で、
教育目的としても良いのではないかと踏んでいたりします。

では。
--
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@xxxxx>

_______________________________________________
Japan secure operating system users group
users-ml@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/jsosug-users


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




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