第3回 Referenceポリシーを設定してみよう
古田 真己サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/2/9
2006/1/24版Referenceポリシーの設定手順
作業内容は基本的に第2回で解説した内容と同じですが、細かいところを補足します。以下に必要なコマンドをそのままの形で記します。
1.Source ForgeのCVSからソースを取得
# cd /usr/local/src # cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/serefpolicy login # cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/serefpolicy co -P refpolicy |
2.ソースのインストール
# cd refpolicy # make install-src |
3.ポリシーの設定
# cd /etc/selinux/refpolicy/src/policy/ # vi build.conf【注1】 |
【注1】 2006/1/24版ではポリシーの設定項目が「/etc/selinux/refpolicy/src/policy/Makefile」から「/etc/selinux/refpolicy/src/policy/build.conf」に移されています。この設定内容にはRedhat、Suse、Gentooなどのディストリビューションの種別、/etc/init.dにあるスクリプトからのサービス起動を許可するかどうか、モジュールをモノリシックにするかモジュール化するかなどが含まれています。 今回設定を変更する内容は以下のとおりです。
なお43行目を「MONOLITHIC=n」に変更すると、CVS版のReferenceポリシーでは「/etc/selinux/refpolicy/src/policy/policy/modules.conf」でほとんどのアプリケーション用ポリシーが「= module」と記載されているため、多数のモジュール化が行われますが、取りあえずこれで作成してみてください。 |
4.ポリシーの初期化
# make conf # make |
5.ポリシーモジュールの作成
# make modules |
6.再起動時の設定
# touch /.autorelabel # vi /etc/selinux/conf【注2】 |
【注2】 Fedora Coreではルートディレクトリ(/)に.autorelabelという空のファイルを作成しておくと起動時にファイルシステムに対してのセキュリティコンテキストのリラベルを実行します。また、リファレンスポリシーに変更した直後のシステムではEnforcingでは起動できないので、/etc/selinux/configファイルを修正して「SELINUXTYPE=refpolicy」とするついでに「SELINUX=permissive」に変更しておくのを忘れないでください。 |
7.再起動
# reboot |
再起動後のテスト
上記の手順を実行した結果、無事に再起動し、コマンドプロンプトまでこぎ着けることができたでしょうか。ここまでくれば、あとはReferenceポリシーの特徴でもあるポリシーモジュールの状態確認と組み込みを試してみることができます。
まず、作成されたモジュールを確認してみましょう。
# cd /etc/selinux/refpolicy/src/policy # ls *.pp
|
ポリシーモジュールの組み込み状況を確認するには以下のように実行します。
# semodule -l No modules. |
試しにモジュールを組み込んでみましょう。以下のようにするとuserdomainモジュールを組み込むことが可能です。
# cd /usr/share/selinux/refpolicy # semodule -s refpolicy -b ./base.pp -i ./userdomain.pp libsemanage.semanage_install_active: Non-fatal error:Could not copy /etc/selinux/refpolicy/modules/active/seusers to /etc/selinux/refpolicy/seusers. security: 3 users, 6 roles, 313 types, 45 bools security: 55 classes, 390 rules security: context root:system_r:getty_t is invalid security: context system_u:system_r:unconfined_t is invalid security: context user_u:sysadm_r:init_t is invalid security: context root:system_r:unconfined_t is invalid security: context user_u:sysadm_r:initrc_t is invalid security: context user_u:sysadm_r:getty_t is invalid security: context system_u:system_r:init_t is invalid security: context root:sysadm_r:init_t is invalid security: context system_u:system_r:getty_t is invalid security: context system_u:system_r:initrc_t is invalid security: context root:sysadm_r:initrc_t is invalid security: context user_u:system_r:init_t is invalid security: context user_u:sysadm_r:unconfined_t is invalid security: context root:sysadm_r:getty_t is invalid security: context user_u:system_r:initrc_t is invalid security: context root:system_r:init_t is invalid security: context user_u:system_r:getty_t is invalid security: context root:sysadm_r:unconfined_t is invalid security: context root:system_r:initrc_t is invalid security: context user_u:system_r:unconfined_t is invalid # semodule -l userdomain 1.2.3 |
「security: context XXX is invalid」と出力されていますが、これはuserdomainモジュールで使用されているセキュリティコンテキストがほかのモジュールに含まれているために取得できず、不正なコンテキストとして認識されている状態です。今回はPermissiveモードで動作させているため、これが出力されていても動作していますが、Enforcingモードで実行するときはこれは異常動作を引き起こす原因となります。
今回は、可能な限りのアプリケーションをモジュール化し、動作を確認するためこのようになっていますが、次回以降は実際に必要なものだけモジュール化して動作させることにしましょう。
ドキュメントの確認
Referenceポリシーでは/etc/selinux/refpolicy/src/policyディレクトリでmakeターゲットにhtmlを指定することで、インストールされているポリシーに関するドキュメントを/usr/share/selinux/refpolicy/src/policy/doc/html以下に自動生成させることができます。これはhttp://serefpolicy.sourceforge.net/api-docs/で公開されているのと同じ体裁のものです。
# cd /usr/share/selinux/refpolicy/src/policy # make html |
今回は取りあえずReferenceポリシーでのモジュール動作を確認するところまでを行いました。次回からはこのポリシーを正常動作させ、さらにモジュールを作成していく予定です。また、Raw Hide用に作成されているselinux-policy-targeted-sourceのSRPMなどのインストールスクリプト、コンフィグレーションも参考にしながら進めていきます。
2/2
|
Index | |
Referenceポリシーを設定してみよう | |
Page1 ポリシー記述の必要性 ポリシー設定の手順 |
|
Page2 2006/1/24版Referenceポリシーの設定手順 再起動後のテスト ドキュメントの確認 |
Profile |
古田 真己(ふるた まさき) サイオステクノロジー株式会社 インフラストラクチャービジネスユニット Linuxテクノロジー部 OSSテクノロジーグループ 学生時代にUNIXマシン欲しさ、触りたさに秋葉原へ通い詰める。秋葉原でAT互換機や中古UNIXマシンの販売などを経て、IT業界に転職。その後Linuxのエンタープライズ分野での性能評価や、構築案件などを経験し、2004年にテンアートニ(現・サイオステクノロジー)入社。RedHat Linuxのサポート業務、構築案件に取り組んできた。 現在はサイオステクノロジーでSELinuxの調査・研究、ビジネスでの普及活動に注力している。 |
Security&Trust記事一覧 |
- 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)対策の観点から考える。
|
|