FrontPage

debianのインストールされているpackageのmd5sumをチェックする。

玄箱をdebian化するのに簡単なキットを使わせてもらっているがそのキットが信用できるのか?バックドアやトロイの木馬や単純なミスで正しくないファイルが含まれていないだろうか。 そのためのパッケージの内容とインストールされているファイルを検証した。結果GOODであった。

手順

まず配布物に含まれているファイルをdebianの公式パッケージと比較するのは簡単といえば簡単である。それぞれを展開してcmpすればよい。ただし 配布物は多くのパッケージから構成されておりいちいちパッケージをダウンロードして展開、比較という作業は面倒である。

debianでは現在動作中のシステムのファイルをチェックするdebsumsがある。これを用いて動作中の玄箱上でチェックした。手順はDebian パッケージに含まれるファイルのチェックを参考させていただいた。以下はこの文章を読んだことを前提にいくつかの手順についてあげたものである。

次のパッケージを取得して中身をとりだしてmd5sumを計算する。私は ftp.kddilabs.jp からもらってきた。

pool/main/b/bash/bash_2.05a-11_powerpc.deb
pool/main/b/base-files/base-files_3.0.2_powerpc.deb
pool/main/b/base-passwd/base-passwd_3.4.1_powerpc.deb
pool/main/m/mawk/mawk_1.3.3-8_powerpc.deb
pool/main/d/debsums/debsums_2.0.2_all.deb
pool/main/libd/libdigest-md5-perl/libdigest-md5-perl_2.13-2_powerpc.deb
pool/main/p/perl-transition/perl-5.6-base_6.3_all.deb
pool/main/p/perl/perl-base_5.6.1-8.3_powerpc.deb
pool/main/g/glibc/libc6_2.2.5-11.5_powerpc.deb
$ mkdir tmp
$ for i in ../*powerpc.deb; ar x $i; tar zxf data.tar.gz; done
$ find . -type f | xargs md5sum

のような感じで。

参考に(1)でつくったファイル。

チェックする。

$ md5sum -c deb-ppc-base.md5 
md5sum: MD5 check failed for '/usr/share/doc/perl/changelog.Debian.gz'
md5sum: MD5 check failed for '/usr/share/man/man1/perl.1.gz'
md5sum: MD5 check failed for '/usr/lib/perl/5.6.1/Config.pm'
md5sum: MD5 check failed for '/usr/lib/perl/5.6.1/Errno.pm'
md5sum: MD5 check failed for '/usr/lib/perl/5.6.1/auto/DynaLoader/DynaLoader.a'

このエラーはdeb-ppc-base.md5を作るときに古いパッケージ(pool/main/p/perl/perl-base_5.6.1-8.3_powerpc.deb)で計算してしまったから。今は5.6.1-8.7だ。 ftp.kddilabs.jp:/Linux/packages/debian/dists/woody/main/binary-powerpc/Packages.gz が古いせいなのか。とりあえず進む。(あとで.debの最新版と比較して一致することを確認した。)

そのあと(2)(3)は手抜きで今あるファイル&ミラー使用。(5)で--generate=missingオプションを追加してチェック。md5を持たない.debも計算してくれる。

# debsums -p /var/cache/apt/archives/ --generate=missing 

でチェックした。

mirror 関係のファイルが FAIL するけどこれ postinstでパッチ当ててるのでしょうがない。

課題

ファイルのメタ情報(mode, owner, group 等の情報)はチェックされない。 配布時は mail, news 等のグループIDが間違っている。このため メールサーバー(exim),mailコマンドの動作に不都合が生じる。たとえば/var/mailのグループが11というgidになっていた。 存在しないowner,groupに属するファイルは以下のコマンドでチェックできる。

# find / -nouser -or -nogroup

しかしこれでは正しいpermissionが設定されているかを確かめられる訳ではない。 ファイルのメタ情報の妥当性について検証する方法については今後の課題である。

配布物

http://kuro.kaguya.biz/ からもらってきたものを以下に置く。 と思ったら容量オーバーにつき削除しました。


添付ファイル: filedeb-ppc-base.md5-20041015 1702件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-14 (土) 19:19:59 (5275d)