Monday, October 3, 2016 5:00AM to 11:00AM (UTC) Schedouled down time to change site domain

Debianで使うTOMOYO Linux

ここでは、DebianでTOMOYO Linux 1系(非LSM版)を導入するための手順を紹介します。

Debian用のパッケージ

やまねさんがDebian用に以下のパッケージを開発されています。

導入手順

TOMOYOカーネルの構築

今回は、上記のパッチを適用したカーネルをdebパッケージとして作成します。 以下のパッケージをインストールします。

% sudo apt-get install fakeroot kernel-package zlib1g-dev

カーネルソースとパッチの入手

linux-patch-tomoyoをapt-get installすると、依存関係から 自動的にカーネルソースがダウンロードされます。

% sudo apt-get install linux-patch-tomoyo

カーネルソースは/usr/srcに、TOMOYOパッチは /usr/src/kernel-patches/diffs/tomoyo の下に保存されます。作業ディレクトリにcdして、カーネルソースおよびTOMOYOのパッチを解凍し、カーネルソースにパッチをあてます。

make menuconfig

/boot/の下から、カーネルソースに対応するconfig-*のファイルを探し、カーネルソースを展開したディレクトリの直下に".config"としてコピーします。引き続き、make menuconfigでconfigオプションを選択します。

% cp /boot/config-XXX .config
% make menuconfig

make menuconfigでは、TOMOYOに関して以下の質問を受けますが、全てデフォルトでOKです。

SAKURA (Domain-Free Mandatory Access Control) support (SAKURA) [Y/n/?] (NEW)
TOMOYO (Domain-Based Mandatory Access Control) support (TOMOYO) [Y/n/?] (NEW)
  Default maximal count for learning mode (TOMOYO_MAX_ACCEPT_ENTRY) [2048] (NEW)
  Default maximal count for grant log (TOMOYO_MAX_GRANT_LOG) [1024] (NEW)
  Default maximal count for reject log (TOMOYO_MAX_REJECT_LOG) [1024] (NEW)
SYAORAN (Tamper-Proof Device Filesystem) suport (SYAORAN) [M/n/y/?] (NEW)

カーネルパッケージのビルド

make-kpkgを使ってTOMOYOカーネルをビルドします。下記では、20090410という日付およびビルド番号001というリビジョン名を指定している例です。リビジョン名には"-"は使えないので注意ください。

% fakeroot make-kpkg --revision 20090410.001 --initrd kernel_image

コンパイルが無事終了したらひとつ上のディレクトリにlinux-image*.debというファイルが作成されているはずです。これをdpkgでインストールします。

% sudo dpkg -i ../linux-image-XXX.db

これでTOMOYOカーネルパッケージが導入されました。grubのmenu.lstのデフォルト指定は変更されませんので、常にTOMOYOカーネルで起動した場合には、/boot/grub/menu.lstを編集します。

ユーザランドツールの導入

TOMOYO対応カーネルが導入されただけでは、TOMOYO Linuxが有効化されません。引き続きユーザランドツールを導入します。

% sudo apt-get install tomoyo-ccstools

tomoyo-ccstoolsパッケージは、必要なディレクトリおよび設定ファイルの作成を自動的に行うため少し時間がかかります。 コマンドが終了したら/etc/ccs/というディレクトリができているか確認してみましょう。

% sudo ls /etc/ccs

再起動

以上で、準備ができました。PCを再起動して、TOMOYO Linuxカーネルを選択して起動します。正しく導入されていれば、ポリシーエディタでドメインの遷移が確認できるはずです。

% sudo /usr/lib/ccs/editpolicy