[[FrontPage]]
 
 ** debianのインストールされているpackageのmd5sumをチェックする。
 
 玄箱をdebian化するのに簡単なキットを使わせてもらっているがそのキットが信用できるのか?バックドアやトロイの木馬や単純なミスで正しくないファイルが含まれていないだろうか。
 そのためのパッケージの内容とインストールされているファイルを検証した。結果GOODであった。
 
 
 *** 手順
 まず配布物に含まれているファイルをdebianの公式パッケージと比較するのは簡単といえば簡単である。それぞれを展開してcmpすればよい。ただし 配布物は多くのパッケージから構成されておりいちいちパッケージをダウンロードして展開、比較という作業は面倒である。
 
 debianでは現在動作中のシステムのファイルをチェックするdebsumsがある。これを用いて動作中の玄箱上でチェックした。手順は[[Debian パッケージに含まれるファイルのチェック:http://www.deer-n-horse.jp/linux/tips/debian-debcheck.html]]を参考させていただいた。以下はこの文章を読んだことを前提にいくつかの手順についてあげたものである。
 
 次のパッケージを取得して中身をとりだして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)でつくったファイル。
 
 #ref(deb-ppc-base.md5-20041015)
 
 チェックする。
 
  $ 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/ からもらってきたものを以下に置く。
 と思ったら容量オーバーにつき削除しました。
 
 http://gqg.jp/a/img/debian_2004_06_06_dist.tgz

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS