Ubuntu 7.10 TOMOYO Linux 1.5.3のインストールメモ

概要

開発環境の導入

8月19日の日記にあるように、以下のパッケージを導入する。

  • wget
  • build-essential
  • kernel-package
  • libncurses5-dev
# apt-get install wget build-essential kernel-package libncurses5-dev
カーネルソースの導入

まずはベースとなるUbuntu用のカーネルソースを取得する。

# apt-get install linux-source

/usr/srcにlinux-source-2.6.22.tar.bz2が取得された。dpkgの出力によると、これは2.6.22.14カーネルUbuntuパッチを適用したものだ。/usr/src/linux-source-2.6.22として展開する。

# tar xvfj linux-source-2.6.22.tar.bz2
# cd linux-source-2.6.22
TOMOYO Linux 1.5.3の導入

カーネルにパッチをあてる

# tar xvfz cc-patch-1.5.3-20080131.tar.gz
# patch -p1 < patches/ccs-patch-2.6.22.9-ubuntu1.diff

patchesとspecsのディレクトリが作成され、patchesの下にカーネルパッチが展開される。今回は、少し古い2.6.22.9-ubuntuを使ったが、rejectはなかった。

config作成

genericの.configをベースにmake menuconfigを実行し、カーネルコンフィグを定義する。

TOMOYO Linux関連の設定は、Securiytではなく、File Systemsのセクションにある。設定内容は特に変更の必要はない。

  [*] SAKURA (Domain-Free Mandatory Access Control) support
  [*] TOMOYO (Domain-Based Mandatory Access Control) support
  (2048) Default maximal count for learning mode
  (1024) Default maximal count for grant log
  (1024) Default maximal count for reject log
   SYAORAN (Tamper-Proof Device Filesystem) support

カーネルをビルドする

# sudo make-kpkg --initrd --append_to_version tomoyo kernel_image

ツールを展開してコンパイルする

ツールはどこに展開しても良いが、今回はカーネルソースのトップに展開した。ccstoolsというディレクトリが作成されるので、そこにcdする。今回試したところ、libreadline5-devが必要だった。

# tar xvfz ccs-tools*.gz
# cd ccstools
# apt-get install libreadline5-dev
# make
# make install

初期化ツールの実行

今回は、LSM版ではなく1.5の導入なので、init_policy.shを実行する。

# sh /usr/lib/ccs/init_policy.sh

/etc/ccsディレクトリが作成され、profile.conf等が生成されていることを確認する。

カーネルパッケージの導入

パッケージは/usr/srcに作成されているはずなので、確認後、dpkg -iでインストールする。

環境設定

version 1.5.3のeditpolicyでは、ファイルアクセス制御の表示内容がカスタマイズできるようになった。rwx表示にするために、/usr/lib/ccs/editpolicy.shを作成した。

# cat /usr/lib/ccs/editpolicy.sh
#! /bin/sh

export  EDITPOLICY_KEYWORD_ALIAS='1=--x:2=-w-:3=-wx:4=r--:5=r-x:6=rw-:7=rwx'
/usr/lib/ccs/editpolicy $@


1,2...7も同時に表示したければ、'1=1 --x:2=2 -w-:...'のようにすれば良い。


VMware toolsのインストール

最後に導入したカーネルにあわせてVMware toolsも更新しておこう。これは通常の手順。