最終回 Heartbeat+独自ドメインでセキュアな世界のその先へ
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2008/7/16
ドメイン遷移の設定
それでは、各ドメインにドメイン遷移する際には、どのようにポリシーに追記すればよいのでしょうか。
以前のバージョンと比べて、CentOS 5でのSELinuxはドキュメントの整備が行われており、「policyhelp」というコマンドで、ポリシー作成に関するヘルプファイルを見ることができます。
SELinuxの開発環境(selinux-policy-devel-XX)がインストールされていることが前提条件ですが、/usr/share/selinux/devel以下に「policyhelp」というプログラムがありますので、
# /usr/share/selinux/devel/policyhelp |
として起動します。Webブラウザが立ち上がり、現在システムにインストール/ロードされているポリシーの構成情報に関するヘルプファイルが表示されます。
図17 ポリシーの構成情報に関するヘルプファイル(クリックで拡大します) |
これらは、ポリシーを作成する際に使用できるマクロ類で、CentOS 5からは何度もallow文でポリシーを追加していくよりも、これらのマクロ類を使用してポリシーを書くことが推奨されています。
左側ペインで「Template Index」を開くと、「domain_auto_trans」というマクロがあります。このマニュアルによると、
domain_auto_trans( source_domain , entry_file , target_domain ) |
と指定することで、ドメイン遷移用のポリシーが追加されます。
そこで今回は、
domain_auto_trans(heartbeat_t, heartbeat_initrc_exec_httpd_t, httpd_t) domain_auto_trans(heartbeat_t, heartbeat_initrc_exec_mysqld_t, mysqld_t) |
を追加します。
では、Permissiveモードでのログとaudit2allowを活用して、httpd_t、mysqld_tのそれぞれにheartbeat_tドメインが遷移できるようなポリシーを作成しましょう。
- まず、
# selinux=0
でPermissiveモードにします。
- 自動生成されたheartbeat.teファイルに上述のdomain_auto_transマクロを記載したものと、上述1の2行を加えたheartbeat.fcファイルから、heartbeat.ppファイルを作成します。この際、.fcファイルに加えたとおりのコンテキストを「chcon」コマンドなどで修正できるように、heartbeat.shファイルを書き換えます。
作成したら、system-config-selinux内の「Add」ボタンで、heartbeat.ppファイルをロードします。
- 次に、コマンドラインで、
#/etc/init.d/heartbeat start
として、Heartbeat、およびHeartbeatから起動されるhttpd/mysqldが完全に立ち上がるまで待ちます。
- 前述の手順と同じく、テスト用のサンプルURLにアクセスし、きちんとCGIも動作していることを確認します。
- コマンドラインで、
#/etc/init.d/heartbeat stop
として、Heartbeat、およびhttpd/mysqldを停止させます。
- 「Remove」ボタンを押して、heartbeat.ppモジュールをアンロードします。
- コマンドラインで、
# cat /var/log/audit/audit.log |audit2allow -R > /root/policies/heartbeat.add
として、SELinuxのエラーログから、Heartbeatの追加ポリシーを自動生成します。
- ポリシーを適宜調整しながら、heartbeat.addファイルの中身をheartbeat.teファイルに加えます。
- heartbeat.ppファイル、tmpディレクトリを削除し、
# sh ./heartbeat.sh
コマンドで、新たにheartbeat.ppモジュールを作成します。
- 今度は、
# setenforce 1
としてSELinuxを有効にしてHeartbeatからhttpd/MySQLが予定どおりに動作するかを確認します。
このような手順になります。最終的には図18のように、pstreeで確認してもHeartbeatはheartbeat_t、httpdはhttpd_t、mysqlはmysqld_tと、きちんとそれぞれのドメインに遷移しているのが分かります。
-heartbeat(`root:system_r:heartbeat_t') | |-attrd(`root:system_r:heartbeat_t') | |-ccm(`root:system_r:heartbeat_t') | |-cib(`root:system_r:heartbeat_t') | |-crmd(`root:system_r:heartbeat_t') | | |-pengine(`root:system_r:heartbeat_t') | | `-tengine(`root:system_r:heartbeat_t') | |-heartbeat(`root:system_r:heartbeat_t') | |-heartbeat(`root:system_r:heartbeat_t') | |-heartbeat(`root:system_r:heartbeat_t') | |-lrmd(`root:system_r:heartbeat_t') | |-mgmtd(`root:system_r:heartbeat_t') | |-pingd(`root:system_r:heartbeat_t') | `-stonithd(`root:system_r:heartbeat_t') |-hidd(`system_u:system_r:bluetooth_t') |-httpd(`root:system_r:httpd_t') | |-httpd(`root:system_r:httpd_t') | |-httpd(`root:system_r:httpd_t') | |-httpd(`root:system_r:httpd_t') | |-httpd(`root:system_r:httpd_t') ------------------中略------------------------ mysqld_safe(`root:system_r:mysqld_t') | `-mysqld(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') | |-{mysqld}(`root:system_r:mysqld_t') |
図18 ドメイン遷移が行われていることが分かる |
SELinuxの設定を行う際には、出力されたログからポリシーを自動生成するようなツールを用いることで、確かに簡単に設定できるようになりました。しかし、自動生成ツールの出力をそのまま検証せずに用いると、設定者の意図しない動作が起きることがあります。
そこで、個々のセキュリティ目標をあらかじめきちんと設定し、それに沿ってSELinuxのポリシーが正しく作られているか、確認を行うことが必要になります。しかし、確認を行い、ポリシーを修正するには、それなりの経験が必要となります。
そのような場合は、「policy help」で起動されるオンラインマニュアルなど、マクロの書き方など細かく解説されているものを参考にするとよいでしょう。
業務アプリケーションでもスイッチ・オンは怖くない!
第10回まで続きましたこの連載も、これでいったん区切りとします。SELinuxを体験することにより、皆さまがシステムを構築する際にSELinuxのスイッチをオン! にして、よりセキュアなシステムを構築できるようになればうれしく思います。
3/3 |
Index | |
Heartbeat+独自ドメインでセキュアな世界のその先へ | |
Page1 Heartbeat用の独自ドメインの設定 Heartbeat用のひな型の作成 |
|
Page2 自動生成されたポリシーを調整する 子プロセスを各ドメインへ遷移させるには |
|
Page3 ドメイン遷移の設定 業務アプリケーションでもスイッチ・オンは怖くない! |
Profile |
面 和毅(おも かずき) サイオステクノロジー株式会社 OSSテクノロジーセンター 開発支援グループ グループマネージャー 学生時代よりUNIXに親しむ。1997年からサーバ構築およびセキュリティ全般を扱う仕事に従事、Linuxを使い始める。 現在はLIDSの普及活動に注力。LIDSユーザ会(LIDS-JP)の立ち上げやLIDS関連文書の日本語化、LIDSを用いたシステム構築の紹介などを行っている。また、サイオステクノロジーでビジネス面でのLIDSの普及活動に注力している。 2005年12月より、LIDS Teamに参加し、LIDSの公式な開発チームの一員として活動している。 |
スイッチ・オン! 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)対策の観点から考える。
|
|