SELinuxシステム管理

セキュアOSの基礎と運用

この商品は品切れ再入荷未定です

内容

米国国家安全保障局が開発したSELinuxが注目されています。SELinuxを導入すれば、高価な軍事レベルのOSを動かしている高信頼セキュリティシステムにしかなかったような高度なセキュリティ技術をLinuxシステムで利用できるようになります。つまり、攻撃や侵入の危険性を大幅に低減できるわけです。ただし、これは適切に管理されたSELinuxを使っていればの話です。SELinuxを適切に管理するためには、SELinuxが持つ複雑な機能、独自の考え方、ポリシー設定を理解する必要があります。本書では、SELinuxの概念・導入・設定方法をわかりやすく解説します。これからSELinuxをはじめる技術者にとって必須の入門書となるでしょう。

監訳者によるサポートページ

関連書籍

目次

監訳者まえがき
まえがき

1章 SELinuxの概要
	1.1 ソフトウェアの脅威とインターネット
		1.1.1 権限の昇格
		1.1.2 パッチサイクルとゼロデイ(0-day)問題
		1.1.3 ゼロデイを防ぐ
		1.1.4 ネットワークおよびサーバホストの防御
		1.1.5 任意アクセス制御(DAC)方式と強制アクセス制御(MAC)方式
	1.2 SELinuxの特徴
		1.2.1 SELinuxの仕組み
		1.2.2 SELinuxの構成とLSM(Linuxセキュリティモジュール)
	1.3 SELinux上のアプリケーション
	1.4 SELinuxの歴史
	1.5 関連Webサイトと関連FTPサイト
		1.5.1 メーリングリスト

2章 SELinuxのセキュリティモデル
	2.1 サブジェクトとオブジェクト
	2.2 セキュリティコンテキスト
	2.3 一時的なオブジェクトと永続的なオブジェクト
	2.4 アクセス判定
	2.5 ドメイン遷移、タイプ遷移
	2.6 SELinuxのアーキテクチャ
		2.6.1 カーネルレベルのコード
		2.6.2 SELinux共有ライブラリ
		2.6.3 SELinuxセキュリティポリシー
		2.6.4 SELinuxのツール
		2.6.5 参考文書

3章 SELinuxのインストールと初期設定
	3.1 SELinuxのバージョン
	3.2 SELinuxのインストール方法
	3.3 SELinuxをサポートしているディストリビューションでのインストール
		3.3.1 Fedora Core
		3.3.2 Red Hat Enterprise Linux
		3.3.3 Turbolinux
	3.4 SELinuxをサポートしていないディストリビューションでのインストール方法
	3.5 バイナリまたはソースパッケージからのインストール
		3.5.1 Debian GNU/Linux
		3.5.2 Gentoo Linux
		3.5.3 SUSE LINUX
	3.6 ソースからのインストール

4章 SELinuxのオペレーションとシステム管理
	4.1 SELinuxの動作モード
	4.2 SELinuxの基本的な操作
		4.2.1 動作モードの切り替え
		4.2.2 セキュリティポリシーのロード
		4.2.3 ラベル(セキュリティ属性)の設定
		4.2.4 マクロ、tunable、Booleans
	4.3 SELinuxの基本的なシステム管理
		4.3.1 ロール
		4.3.2 セキュリティコンテキストの表示
		4.3.3 ユーザの追加
		4.3.4 デーモンの起動と制御
	4.4 アクセスログの監視
		4.4.1 SELinuxのログメッセージの出力形式
		4.4.2 ログの抑制
		4.4.3 audit2allowコマンド
	4.5 SELinuxの代表的なトラブルシューティング
		4.5.1 ブートの問題
		4.5.2 ローカルログインの問題
		4.5.3 プログラム実行の問題
		4.5.4 デーモンの問題
		4.5.5 Xの問題

5章 SELinuxのセキュリティポリシーとポリシー言語の概要
	5.1 SELinuxのセキュリティポリシー
	5.2 SELinuxのセキュリティポリシーは2つの形式
	5.3 代表的なポリシーファイルの構造
		5.3.1 FCファイル
		5.3.2 TEファイル
	5.4 SELinuxポリシーの構造
		5.4.1 flaskディレクトリ
		5.4.2 macrosディレクトリ
		5.4.3 file_contextsディレクトリ
		5.4.4 typesディレクトリ
		5.4.5 domainsディレクトリ
		5.4.6 appconfigディレクトリ
		5.4.7 ポリシーのソースディレクトリ

6章 RBAC(Role-Based Access Control)
	6.1 SELinuxのRole-Based Access Control(RBAC)
	6.2 ポリシー構文図
		6.2.1 ポリシー構文図の役割
		6.2.2 ポリシー構文図の書き方
	6.3 SELinuxポリシーの構文図
		6.3.1 ポリシーの基本要素
	6.4 ユーザの定義
	6.5 RBACのアクセス制御の定義
		6.5.1 ロールに利用許可するドメインを宣言
		6.5.2 ロールの優位性を宣言
		6.5.3 ロール遷移を宣言
		6.5.4 ロールを切り替える許可を宣言

7章 TE(Type Enforcement)
	7.1 SELinuxのTEモデル
	7.2 SELinuxポリシーの構文のまとめ
	7.3 TEの宣言
		7.3.1 タイプを宣言
		7.3.2 タイプのエイリアスを宣言
		7.3.3 タイプ属性の宣言
		7.3.4 TEのアクセスベクタポリシーを宣言
		7.3.5 遷移動作を宣言
		7.3.6 ブール変数を宣言
		7.3.7 条件文を宣言
	7.4 SELinuxのサンプルポリシーの例

8章 その他のセキュリティポリシー言語
	8.1 制約条件(constraints)の宣言
	8.2 その他のセキュリティコンテキスト関連の宣言
		8.2.1 初期SIDのセキュリティコンテキスト
		8.2.2 ファイルシステムのセキュリティコンテキスト
		8.2.3 genfsconポリシー
		8.2.4 ネットワークのセキュリティコンテキスト
	8.3 Flask関連のセキュリティコンテキスト
		8.3.1 security_classesの定義
		8.3.2 initial_sidsの定義
		8.3.3 access_vectorsの定義

9章 セキュリティポリシーのカスタマイズ
	9.1 セキュリティポリシーのソースツリー
	9.2 複雑なセキュリティポリシーファイル
	9.3 SELinuxのMakefileの使用方法
	9.4 SELinuxユーザの作成
		9.4.1 システム管理者を追加
		9.4.2 一般ユーザを追加
	9.5 ロールのカスタマイズ
	9.6 アクセス許可ポリシーの追加
	9.7 既存のドメインに対するユーザアクセスの許可
	9.8 新しいドメインの作成
		9.8.1 どのファイルがドメインに関連しているかを特定
		9.8.2 ファイルのセキュリティコンテキストを特定
		9.8.3 新しいドメインに適切なセキュリティコンテキストを定義
		9.8.4 基本的なTEファイルを作成
		9.8.5 基本的なFCファイルを作成
		9.8.6 他のFCファイルから矛盾する指定を削除
		9.8.7 修正したポリシーをロードしてファイルにラベルを割り当て
		9.8.8 必要に応じてTEファイルとFCファイルのテストと修正を実施
	9.9 audit2allowの使用方法
	9.10 セキュリティポリシー管理ツール
		9.10.1 Apol
		9.10.2 seAudit
		9.10.3 SePCuT
		9.10.4 SeUser
	9.11 SELinuxについて今後学ぶべきこと

付録A オブジェクトクラス
付録B アクセスベクタ
付録C マクロ
付録D タイプ
付録E 属性


索引

正誤表