TOMOYO LinuxのLSM版をDebian(sid)で動かしてみる

Debian(sid)のカーネルが気づいたら2.6.30とかになってなのでやってみた。

カーネルを再構築

8.6. Compiling a New Kernelなどを参考に。

2.6.30になってTOMOYO Linuxがマージされたけれども、Debianの標準オプションでは無効化されているので、有効化してコンパイルする。

コンパイルする前に、設定を変更しておく。

まず、/etc/default/grubGRUB_CMDLINE_LINUXにsecurity=tomoyoという設定を追加する。
GRUB_CMDLINE_LINUX="vga=791 quiet security=tomoyo"みたいになる。これがないとTOMOYO対応カーネルでもTOMOYOが有効化されない。

それから、/etc/kernel/postinst.d/initramfs-toolsを開き、7行目の[ -z "$2" ] || exit 0というコードをコメントアウトする。これをしないとカスタムカーネルに対してinitrdが生成されない。

% sudo aptitude install kernel-package linux-source-2.6.30 fakeroot libqt3-mt-dev
% tar jxf /usr/src/linux-source-2.6.30.tar.bz2
% cd linux-source-2.6.30
% fakeroot make-kpkg --initrd --revision tomoyo.2.2 --append_to_version -tomoyo-686 --subarch 686 --config xconfig kernel_image

ここで、カーネルのビルドオプションを設定するウインドウが出るので、「Security options」の「TOMOYO Linux Support」という項目を探してチェックを入れ、保存して終了する。
あとはコンパイルが始まるので、1〜2時間ほど待つ。

% cd ..
% sudo dpkg -i linux-image-2.6.30-tomoyo-686_tomoyo.2.2_i386.deb

これでTOMOYO対応カーネルがインストールされる。

ツールをインストールする

Debianにあるtomoyo-ccstoolsはバージョン1系のものなので使えない。

ここでは多少しっかりしたパッケージにしてみた。

Debianベースのシステムでパッケージを自作する - SourceForge.JP Magazine : オープンソースの話題満載Debian New Maintainers' Guideなどを参考に。

% sudo aptitude install build-essential debhelper libncurses5-dev
% wget http://osdn.dl.sourceforge.jp/tomoyo/41908/tomoyo-tools-2.2.0-20090727.tar.gz
% tar zxvf tomoyo-tools-2.2.0-20090727.tar.gz
% cd tomoyo-tools
% dh_make -p tomoyo-tools_2.2.0 -e your@mail.example.com -s -n

ここで、debian以下にいくつかのファイルができるが、そのうち以下のものを残して他は消す。
tomoyo-ccstoolsのパッケージ(apt-get source tomoyo-ccstoolsでソースが得られる。)を参考にしている。

debian/changelog

そのままでよい。

debian/compat

そのままでよい。

debian/control

Sectionはadmin、Homepageは http://tomoyo.sourceforge.jp/ にする。Build-Dependsにlibncurses5-devを追加(カンマ区切り)する。Dependsのmiscはたぶん不要。Descriptionはtomoyo-ccstoolsのものをコピペすればよい。

debian/copyright

tomoyo-ccstoolsのを参考に書き換える。ライセンスはGPLv2である。いま確認したらlater versionとか書いてなかったので気をつけましょう。

debian/dirs

よくわからないけど、etc/tomoyoなどを追加しておくといいと思う。

debian/docs

README.tomoyoと書いておく。

debian/postinst

tomoyo-ccstoolsのものをコピーし、POLICYDIRを"/etc/tomoyo"に変更する。/usr/lib/ccs/init_policy.shを/usr/lib/tomoyo/tomoyo_init_policyに変更する。cd $POLICYDIR &&となっている行を、cd $POLICYDIR || mkdir $POLICYDIRとする。

debian/postrm

tomoyo-ccstoolsのものを参考にする。

rules

tomoyo-ccstoolsのものをコピーし、tomoyo-ccstoolsをtomoyo-toolsで、/usr/lib/ccsを/usr/lib/tomoyoで置き換える。README.ccsとCOPYING.ccsもREADME.tomoyoやCOPYING.tomoyoで置き換える。ccs-auditdの行は消す。

以上の

書き換えがおわったら

% dpkg-buildpackage -rfakeroot
% cd ..
% sudo dpkg -i tomoyo-tools_2.2.0_i386.deb

実行する。

以上でインストールが完了するので再起動し、tomoyo対応カーネルを選択する。
sudo tomoyo-editpolicyとかやってみる。