第1回 CMSツールをよりセキュアに導入しよう
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/5/23
SELinux(Targeted)でのPlone/Zope
CentOS 4.4では、SELinux(デフォルトのTargetedポリシー)を有効にした状態でも、Plone/Zopeをインストールして使用することができます。
デフォルトのTargetedポリシーの上でPloneをインストールすると、図1のようにzopeのプロセスはinitrc_tドメインで動作します。
[root@centos4 ~]# ps axZ | grep zope
root:system_r:initrc_t 3414 ? Ss 0:00 /usr/bin/python /usr/lib/zope/lib/python/zdaemon/zdrun.py -S /usr/lib/zope/lib/python/Zope2/Startup/zopeschema.xml -b 10 -d -s /var/lib/zope/var/zopectlsock -u zope -x 0,2 -z /var/lib/zope /var/lib/zope/bin/runzope root:system_r:initrc_t 3415 ? S 0:14 /usr/bin/python /usr/lib/zope/lib/python/Zope2/Startup/run.py -C /var/lib/zope/etc/zope.conf |
図1 zopeのプロセスとドメイン |
この状態で運用しても、SELinuxが有効になっているため、SELinuxを無効にして運用するよりはセキュリティが担保されます。しかし、これではSELinuxのセキュリティ機能を十分に活用しているとはいえません。
SELinuxでは図2のように、各サービスや機能ごとに「ドメイン」を定義して、そのドメインによりコンパートメント化を行うことができます。
図2 別ドメインにはアクセスできない |
しかしinitrd_tドメインでは図3のように、crondやsshdなどさまざまなサービスが起動しているため、これらのサービスのどれかにセキュリティ上の問題が発生した場合には、ZopeやPloneも影響を受けてしまいますし、逆にPlone/Zopeに問題が発生した場合には、これらのすべてのサービスに影響を与えてしまう可能性があります。
[root@centos4 ~]# ps axZ | grep initrc_t user_u:system_r:initrc_t 2483 ? Ss 0:00 /sbin/dhclient -1 -q -lf /var/lib/dhcp/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0 user_u:system_r:initrc_t 2522 ? Ss 0:00 klogd -x user_u:system_r:initrc_t 2603 ? Ss 0:00 /usr/sbin/acpid user_u:system_r:initrc_t 2641 ? Ss 0:00 /usr/sbin/sshd user_u:system_r:initrc_t 2654 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid user_u:system_r:initrc_t 2678 ? Ss 0:00 gpm -m /dev/input/mice -t imps2 user_u:system_r:initrc_t 2697 ? Ss 0:00 crond user_u:system_r:initrc_t 2728 ? Ss 0:00 xfs -droppriv -daemon user_u:system_r:initrc_t 2745 ? Ss 0:00 /usr/sbin/atd user_u:system_r:initrc_t 3360 ? Ss 0:00 sshd: root@pts/0 root:system_r:initrc_t 3414 ? Ss 0:00 /usr/bin/python /usr/lib/zope/lib/python/zdaemon/zdrun.py -S /usr/lib/zope/lib/python/Zope2/Startup/zopeschema.xml -b 10 -d -s /var/lib/zope/var/zopectlsock -u zope -x 0,2 -z /var/lib/zope /var/lib/zope/bin/runzope root:system_r:initrc_t 3415 ? S 0:14 /usr/bin/python /usr/lib/zope/lib/python/Zope2/Startup/run.py -C /var/lib/zope/etc/zope.conf |
図3 initrc_tドメインで動作しているサービスの例 |
図4 initrc_tドメインのままでは他のプロセスにも悪影響を与える可能性がある |
このような問題を解決するため、サービスとして起動しているzopeプロセス用にも、専用のドメインを定義することにしましょう。
新しいドメインを作るには、SELinuxのポリシーを修正する必要があります。これはディストリビューションのバージョン(より正確には、そのディストリビューションが採用しているSELinuxのバージョン)により大きく変わるのですが、今回はCentOS 4.4での方法を紹介します。
なお、CentOS 5やFedora 6などの新しいディストリビューションは、いわゆる「Referenceポリシー」を用いるバージョンのSELinuxを採用していますので、そのようなディストリビューションを使用する場合には@ITの「SELinuxの最新動向」や、「Red Hat Enterprise Linux 5で始めるSELinux」を参考にするとよいでしょう(実際、Referenceポリシーを使用した場合の方が、今回説明する方法よりも簡単になっています)。
【参考記事】 SELinuxの最新動向 (@IT) http://www.atmarkit.co.jp/fsecurity/rensai/selinux01/selinux01.html Red Hat Enterprise Linux 5で始めるSELinux(@IT) http://www.atmarkit.co.jp/fsecurity/special/97rhel/rhel01.html |
CentOS 4.4でのポリシーの編集方法
CentOS 4.4でドメインを新たに追加するなど、SELinuxのポリシーを修正する必要がある場合には、ポリシーのソースをインストールする必要があります。CentOS 4.4のCD-ROMの4枚目に入っているSELinuxのポリシーのソースファイル(最新版はyumを用いて取得可能)、
selinux-policy-targeted-sources-XXX.noarch.rpm (XXXはバージョン番号) |
をrpmコマンドを用いてインストールすると、/etc/selinux/targeted/src以下にポリシーのソースファイルが展開されます。
各ディレクトリ配下にあるファイルが最終的にpolicy.confファイルという1つのテキストファイルにまとめられ、さらに/etc/selinux/targeted/policy以下にあるpolicy.XX(XXはバージョン番号)バイナリポリシーへとコンパイルされるようになっています。
新たにXドメインを追加する場合には、
X.te(/etc/selinux/targeted/src/policy/domain/programs以下) X.fc(/etc/selinux/targeted/src/policy/file_contexts/programs以下) |
の2種類のファイルを追加してポリシーを再作成します。X.teファイルにはXドメインに関連するドメインの定義文やallow文などの構文を、X.fcファイルにはXドメインに関連したファイルのコンテキスト情報をそれぞれ記載します。
2/3 |
Index | |
CMSツールをよりセキュアに導入しよう | |
Page1 SELinuxは運用のステージへ PloneをSELinuxで保護する Ploneのインストール SELinux外でのセキュリティの担保 |
|
Page2 SELinux(Targeted)でのPlone/Zope CentOS 4.4でのポリシーの編集方法 |
|
Page3 Zopeドメインの構成情報を考える Zopeドメインを作成する このポリシーの注意点 |
スイッチ・オン! SELinux 連載インデックス |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|