TOMOYO LinuxのLSM版をDebian(sid)で動かしてみる
Debian(sid)のカーネルが気づいたら2.6.30とかになってなのでやってみた。
カーネルを再構築
8.6. Compiling a New Kernelなどを参考に。
2.6.30になってTOMOYO Linuxがマージされたけれども、Debianの標準オプションでは無効化されているので、有効化してコンパイルする。
コンパイルする前に、設定を変更しておく。
まず、/etc/default/grubのGRUB_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/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とかやってみる。