Cms on SELinux

1,369 views

Published on

2008年OSC名古屋(夏)資料

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
1,369
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Cms on SELinux

  1. 1. CMS on SELinux (やってみた編) 日本セキュアOSユーザ会 石川 裕基
  2. 2. Agenda1. SELinux の概略2. CMS on SELinux
  3. 3. 1. SELinux の概略
  4. 4. SELinux の概略 (アクセス制御(TE)) 「誰(Subject)が何(Object)に対して何を するか(Action)」の巨大なルール集 事前に許可をした動作のみを可能にする  httpd プロセス が A.html に対して読み込みをする Subject, Object, Action の例 Subject Process Object File / Directory Action Read / Write / Link
  5. 5. SELinux の概略 (ラベル) Subject, Object に付与された特殊な文字列 全てのSubject, Object にはラベルが付与される  Subject に付与されるラベル = ドメイン  Object に付与されるラベル = タイプ 付与されるラベルの例 httpd httpd_t /var/www/html(/.*)? http_sys_content_t /etc/shadow shadow_t
  6. 6. SELinux の概略 (アクセス制御とラベル) Subject, Object 付与されたラベルを もとにアクセス制御を行う (httpdプロセス) の (A.html) に対する (読み込み)を許可 (httpd_t) の (httpd_sys_content_t) に 対する (read) を許可
  7. 7. 2. CMS on SELinux
  8. 8. CMS on SELinux (前提条件)以下の環境下で動作検証を行うOS(Linux) CentOS 5.2SELinux Targeted Policy 2.4.6-137 Web Apache 2.2.3 PHP - 5.1.6 DB MySQL 5.0.45-7 XOOPS CMS 1.0.1b (ホダ塾ディストリビューション)※ アプリケーションは全て yum を使用してインストールをする
  9. 9. CMS on SELinux (必要なAction) XOOPS が動作するために必要なAction 1. httpd から XOOPS を読み込みができる 2. httpd から XOOPS に書き込みができる 3. httpd から XOOPS DBに接続ができる 4. 適切なラベルを付与する 最も簡単な方法を紹介
  10. 10. CMS on SELinux (必要なAction)1. httpd から XOOPS を読み込みができる XOOPS を Apache (httpd_t) から 読ませて良いファイルとして設定する Webコンテンツに付与されるラベルは 一般的には httpd_sys_content_t である /var/www/html 以下に配置されたファイルには httpd_content_t が付与される ⇒ /var/www/html 以下に XOOPS を配置する
  11. 11. CMS on SELinux (必要なAction)2. httpd から XOOPS に書き込みができる httpd_sys_content_t は httpd_t からの 読み込みのみを許可する Boolean値と呼ばれるものを変更することで 書き込みを可能にすることができる 変更するBoolean値は 「httpd_builten_scripting」である ⇒ # setsebool -P httpd_builten_scripting 1
  12. 12. CMS on SELinux (必要なAction)2. httpd から XOOPS に書き込みができる(※) 前述の場合、全ての httpd_sys_content_t に 影響を及ぼす 書き込みを行いたい対象のみを httpd_t から 書き込ませて良いものとしてラベリングする httpd_t の 書き込みを許可するラベルは httpd_sys_script_rw_t である ⇒ # setsebool -P httpd_builten_scripting 0 ⇒ # semanage fcontext -a -t httpd_sys_script_rw_t ‘/var/www/html/hd(/.*)?’
  13. 13. CMS on SELinux (必要なAction)3. httpd から XOOPSのDB(mysql) に接続できる local に存在するの DB に接続する場合は 対応する必要はない 外部の DB を使用する場合は Boolean値を変更する必要がある 変更するBoolean値は 「httpd_can_network_connect_db」である ⇒ # setsebool -P httpd_can_network_connect_db 1
  14. 14. CMS on SELinux (必要なAction)4. 適切なラベルを付与/再構築する SELinux はラベルを用いてアクセス制御を行う ラベルが適切に設定されていない場合、 不正なアクセスとして処理される 適切なラベルを付与/再構築する ⇒ # touch /.autorelabel && shutdown -r now # restorecon -RF -v /var/www (または、)
  15. 15. Demo 時間があれば Demo をします。

×