第2回 構成が大きく変わったセキュリティポリシー 2.x系

古田 真己
サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/1/14

 /etc/selinux/refpolicyのディレクトリ構造

 /etc/selinux/refpolicyのディレクトリ構造は以下のようになっています。

図3 /etc/selinux/refpolicyのディレクトリ構造

 /etc/selinux/ポリシー名/src/policyというディレクトリはFC4、RHEL4と変わらず、セキュリティポリシーのソースファイルが置かれる場所です。ただしReferenceポリシーではこの下にもう1つ「policy」というディレクトリが存在し、さらにその下にモジュール化されたポリシーの配置場所である「modules」ディレクトリが作成されています。

 policyディレクトリにはmodules.confファイルがあり、各ポリシーファイルについてベースモジュールに組み込むか、または独立したモジュール化にするか設定します。

 Referenceポリシーはデフォルトで次のようになっています。「= base」という記述はベースポリシーに組み込む設定で、モジュール化するときは「= module」と記述します。

#
# This file contains a listing of available modules.
# To prevent a module frombeing used in policy
# creation, set the module name to "off".
#
# For monolithic policies, modules set to "base" and "module"
# will be built into the policy.
#
# For modular policies, modules set to "base" will be
# included in the base module."module" will be compiled
# as individual loadable modules.
#

# Layer: kernel
# Module: selinux
# Required in base
#
# Policy for kernel security interface, in particular, selinuxfs.
#
selinux = base

# Layer: kernel
# Module: filesystem
# Required in base
#
# Policy for filesystems.
#
filesystem = base

# Layer: kernel
# Module: files
# Required in base
#
# Basic filesystem types and interfaces.
#
files = base

(以下略)

 /etc/selinux/refpolicy/src/policy/policy/modules以下にはadmin、apps、kernel、services、systemの5つのディレクトリが見えますが、このレイヤ名の下にそれぞれのモジュールのポリシーファイルが置かれています。

図4 modulesディレクトリ以下の構造

 ポリシーモジュール用のポリシーファイルの構成

 次回で簡単なポリシーモジュールを作成する予定ですので、今回はそれぞれのファイルについて簡単に触れます。仮にアプリケーション名を「some-application」とすると、ポリシーモジュールの記述は以下のようになっています。

- /etc/selinux/refpolicy/policy/policy/modules/(レイヤ名)/
  some-application.fc: File Context
     (オブジェクトに対するラベル付け)を記述したファイル
  some-application.te: Type Enforcement
     (TEルール【注4】、AVルール【注5】)を記述したファイル
  some-application.if:
     モジュール用のインターフェイスを定義したファイル

【注4】
TEルールとはSELinuxのポリシーで「type etc_t, file_type;」という記述は「etc_tにfile_typeの属性を与える」という設定になります。

【注5】
AVルールとは行頭が「allow」「auditallow」などで始まるルールのことです。例えば「allow postgresql_t self:file { getattr read };」という記述は「postgresql_tが自分自身(self)のfileに対してgetattr()、read()システムコールを実行できる」といった動作を許可します。

 次回はポリシーの書き方を説明し、実際に簡単なポリシーを記述してみたいと思います。

3/3
 

Index
構成が大きく変わったセキュリティポリシー 2.x系
  Page1
SELinuxのセキュリティポリシーが2.x系に移行
Referenceポリシーの目標
  Page2
Referenceポリシーをセットアップ
Page3
/etc/selinux/refpolicyのディレクトリ構造
ポリシーモジュール用のポリシーファイルの構成


Profile
古田 真己(ふるた まさき)

サイオステクノロジー株式会社
インフラストラクチャービジネスユニット Linuxテクノロジー部
OSSテクノロジーグループ

 学生時代にUNIXマシン欲しさ、触りたさに秋葉原へ通い詰める。秋葉原でAT互換機や中古UNIXマシンの販売などを経て、IT業界に転職。その後Linuxのエンタープライズ分野での性能評価や、構築案件などを経験し、2004年にテンアートニ(現・サイオステクノロジー)入社。RedHat Linuxのサポート業務、構築案件に取り組んできた。

 現在はサイオステクノロジーでSELinuxの調査・研究、ビジネスでの普及活動に注力している。

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間