KaiGai Kohei
kaiga****@ak*****
2009年 3月 10日 (火) 17:42:53 JST
海外です。 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 <kaiga****@ak*****>