第8回 なぜクラスタリングにSELinuxを使わないのか!
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2008/4/16
Heartbeatで実現するクラスタリング
Linuxでオープンソースソフトウェアを用いて簡単にクラスタリングを実現するソフトとしては、「Heartbeat」があります。Heartbeatのインストール方法については@ITの記事「Heartbeatでかんたんクラスタリング」の第2回の手順に従い設定を行いましたので、詳しい導入方法に関しては、そちらを参照してください。
今回の環境では、CentOSのextraパッケージからCentOS 5.1用のパッケージ
heartbeat-2.1.3-3.el5.centos.i386.rpm
heartbeat-devel-2.1.3-3.el5.centos.i386.rpm
heartbeat-gui-2.1.3-3.el5.centos.i386.rpm
heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
をインストールしました。また、/etc/ha.d/ha.cfファイルは上記の記事と同じ設定にしています。
/var/lib/heartbeat/crm/cib.xmlファイルはリスト2のものを使用しました。
<cib generated="true" admin_epoch="0" epoch="1" num_updates="1" have_quorum="true" ignore_dtd="false" num_peers="2" ccm_transition="2" cib_feature_revision="2.0" cib-last-written="Fri Mar 28 00:58:19 2008"> <configuration> <crm_config> <cluster_property_set id="cib-bootstrap-options"> <attributes> <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="2.1.3-node: 552305612591183b1628baa5bc6e903e0f1e26a3"/> </attributes> </cluster_property_set> </crm_config> <nodes> <node id="1d19af62-ee33-490a-91e3-5353cdd0d5c3" uname="secondary" type="normal"/> <node id="2d343f83-10fa-4ae9-8b6a-90907164cc37" uname="primary" type="normal"/> </nodes> <resources> <group id="group_apache"> <primitive id="ipaddr" class="ocf" type="IPaddr" provider="heartbeat"> <instance_attributes id="ia_ipaddr"> <attributes> <nvpair id="ia_ipaddr_ip" name="ip" value="192.168.135.100"/> <nvpair id="ia_ipaddr_nic" name="nic" value="eth0"/> <nvpair id="ia_ipaddr_netmask" name="netmask" value="24"/> </attributes> </instance_attributes> </primitive> <primitive class="ocf" provider="heartbeat" type="Filesystem" id="fs0"> <meta_attributes id="ma-fs0"> <attributes/> </meta_attributes> <instance_attributes id="ia-fs0"> <attributes> <nvpair id="ia-fs0-1" name="fstype" value="ext3"/> <nvpair id="ia-fs0-2" name="directory" value="/var/www/html/testdir"/> <nvpair id="ia-fs0-3" name="device" value="/dev/sdb1"/> </attributes> </instance_attributes> </primitive> <primitive id="apache" class="lsb" type="httpd"> <instance_attributes id="ia_apache"> <attributes> <nvpair id="ia_apache_configfile" name="configfile" value="/etc/httpd/conf/httpd.conf"/> </attributes> </instance_attributes> </primitive> </group> </resources> <constraints/> </configuration> </cib> |
リスト2 /var/lib/heartbeat/crm/cib.xmlの内容 |
リソースは、システムでHeartbeatにより提供される順に、
- バーチャルIP:192.168.135.100
- 共有ディスク:/dev/sdb1(/var/www/html/testdirにマウント)
- Apache:CentOS 5.1標準を使用
となっています。Apacheの設定は、上記記事に従った内容にしています。これらの設定ファイルは、プライマリ/セカンダリの両方で行います。
SELinuxの設定はほぼデフォルトで
SELinuxの設定は、CentOSのデフォルトのものを、特にカスタマイズせずに使用しています。デフォルトのポリシーのままですと、Heartbeat関連のプロセスは、
# ps axZ | grep heartbeat |
の結果を見て分かるとおり、initrc_tドメインで動作しています(リスト3)。
[root@primary ~]# ps axZ | grep heartbeat root:system_r:initrc_t 2621 ? SLs 0:00 heartbeat: master control process root:system_r:initrc_t 2624 ? SL 0:00 heartbeat: FIFO reader root:system_r:initrc_t 2625 ? SL 0:00 heartbeat: write: bcast eth1 root:system_r:initrc_t 2626 ? SL 0:00 heartbeat: read: bcast eth1 root:system_r:initrc_t 2629 ? S 0:00 /usr/lib/heartbeat/ccm root:system_r:initrc_t 2630 ? S 0:00 /usr/lib/heartbeat/cib root:system_r:initrc_t 2631 ? S 0:00 /usr/lib/heartbeat/lrmd -r root:system_r:initrc_t 2632 ? SL 0:00 /usr/lib/heartbeat/stonithd root:system_r:initrc_t 2633 ? S 0:00 /usr/lib/heartbeat/attrd root:system_r:initrc_t 2634 ? S 0:00 /usr/lib/heartbeat/crmd root:system_r:initrc_t 2635 ? S 0:00 /usr/lib/heartbeat/mgmtd -v root:system_r:initrc_t 2636 ? S 0:00 /usr/lib/heartbeat/pingd -m 10 -d 5s -a default_ping_set |
リスト3 SELinux上でのHeartbeat関連プロセスの動作 |
また、/var/www/html/testdir以下のタイプはリスト4のように、httpd_sys_content_tになっています。
[root@secondary html]# ls -lZ /var/www/html -rw-r--r-- root root root:object_r:httpd_sys_content_t index.html drwxr-xr-x root root system_u:object_r:httpd_sys_content_t testdir [root@secondary html]# ls -lZ /var/www/html/testdir -rw-r--r-- root root system_u:object_r:httpd_sys_content_t index.html drwxr-xr-x root root system_u:object_r:httpd_sys_content_t LIDS-JP drwx------ root root system_u:object_r:httpd_sys_content_t lost+found |
リスト4 testdirのタイプはhttpd_sys_content_tとなっている |
2/3 |
Index | |
なぜクラスタリングにSELinuxを使わないのか! | |
Page1 クラスタリングとSELinux、相性はバッチリ……? クラスタリング・Powered by SELinuxの検証環境 VMWare Serverを用いた共有ディスクの実現 |
|
Page2 Heartbeatで実現するクラスタリング SELinuxの設定はほぼデフォルトで |
|
Page3 クラスタリングの動作を確認する 静的コンテンツでは問題なし! |
スイッチ・オン! 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)対策の観点から考える。
|
|