『eBones patch for Linux rev.0.1』 桑村 潤 juk@rccm.co.jp eBones を Linux で動かすためのパッチを作りました 。まだ不完全ですが、 興味ある方にはこれを叩き台にして使ってもらえればと思いますし、また、ネッ トワーク・プログラミングの経験豊富な方々のお知恵を拝借してもっと完全な ものにできれば良いと思います。 eBones は MIT の Athena プロジェクトで開発された分散環境でのセキュリ ティ維持システム Kerberos(Version4) から DES の部分を取り外した Bones (patchlevel 9)に合州国外で Eric Young (eay@surf.sics.bu.oz.au) の DES ライブラリをくっつけたもののようです。 Kerberos は、クライアントとサーバ間のセキュリティを保つために「信頼 のおける第三者機関による認証方式」と呼ばれる方式を用いて、領域 (Realm) 毎に1つのサーバ (Key Distribution Center) で鍵を管理するシステムです。 一般的に、ケルベロスのレルムはインターネットのドメインに対応させられて 運用されているようです。 DES は対象暗号方式で既に特許の期限は切れているものの、合州国政府によ る輸出規制のため持ち出しには許可を受ける必要があるようです。 Kerberos についての FAQ は に あります。また、設定については installation.PS(Bill Bryant の "Kerberos Installation Notes") や operation.PS(Bill Bryant の "Kerberos: Operation Notes")などのドキュメントが FTP サイトにあります が、FreeBSD のハンドブックの和訳の に Kerberos 設定の方法についての項目がありますのでこちらの方も参考にな ると思います。また、『オープンデザインNo.14』でも Kerberos についての 章があり、その概念を理解する上で助けとなると思います。 現在、MIT の SIPB(Student Information Processing Board)では RedHat Linux 4.0.0 用の Athena キットが用意されていてダウンロードサービスもあ るようですが、部外者によるダウンロードはできないようです。 http://www.mit.edu:8001/afs/sipb/project/doc/ilinux/linux-athena/html/linux-athena.html 今、私の使っている Linux は『Linux 入門』の Slackware3.1 をベースに していて、kernel のバージョンは 2.0.28 です。古いバージョン(1.2.13)で も出来なくはありませんが、Makefile を作った後、余分な空白を手で取り除 いてやらなければなりませんでした。今回のパッチでは FreeBSD のパッケー ジに含まれる eBones に合わせて環境設定ファイルをおくディレクトリのパス を /etc/kerverosIV に、ログファイルのパスを /var/log/kerberos.log にし てあります。ただし、インストール先は /mit の下にしてます。 今回のパッチを当ててメイク、インストールした後、 Kerberos サーバ (kerberos)の起動、Kerberos DB作成コマンド(kdb_init, kdb_edit)、および Kerberos ユーザコマンド(kinit, klist, kdestroy)等を実行し動作確認をし ました。また、サンプルアプリケーションの sample_server を登録して sample_client を実行しそれらが動作することも確認しました。 ですが、下記のように已然として不完全なままです。 - Imakefile の記述はメイク時にサブディレクトリもメイクするよう になっているはずですが、Linux の make ではやってくれなかったの で、cd して make depend コマンドを実行するようにしました。 - 附属の imake コマンドではコメント行に "'" があるとエラーとな るので "'" を "`" に換えてごまかしています。 - Linux には lint がないため、Linux-ML で紹介して頂いた lclint を使おうとしましたがライブラリ出力オプションが分からなかったの で結局 lint にはかけないようにしました。 - bsd の r-コマンドの内 login.c がコンパイルエラーになるのを直 せていません。 eBones のインストールのし方は以下の通りです。 (0) メイクをする前に次のシステムのヘッダーファイルのシンボリックリンク を張っておきます。 # ln -s /usr/include/linux/stddef.h /usr/include/stddef.h (1) eBones-p9 のソースアーカイブを ftp で取得し、それを展開します。そ こにこの Linux 用のパッチを当てます。krb.h を修正し、環境設定ファイル のパスなどをサイトの好みに合わせます。なお、パッチを当てた後、 "find . -name "*.orig* -exec rm -f {} ¥;" などを実行して src/util/ss/ss.h.orig を消してしまわないように注意して下さい。このファ イルはメイクに必要です。 % ncftp ftp://ftp.funet.fi/pub/unix/security/login/kerberos/eBones-p9.tar.Z % tar xvfz eBones-p9.tar.Z % zcat eBones-p9-lx.patch.gz | patch -p0 % vi src/include/krb.h (2) メイクを行なうディレクトリを作り(ここでは obj ディレクトリ)、そ のディレクトリに移り、makeconfig を行なってディレクトリツリーの枠組を 作ります。そして、config.Imakefile ファイルを修正し、ソースのトップディ レクトリやインストール先ディレクトリおよびコンパイルオプションなどの設 定を適切に行ないます。それから make world を実行して全体をメイクします。 ここで、$TOP は eBones-p9.tar.Z を展開したところのディレクトリです。 % mkdir obj % cd obj/ % make -f $TOP/src/tools/makeconfig SRCDIR=$TOP/src % vi util/imake.includes/config.Imakefile % make world (3) root になってインストールを行ないます。インストール先のディレクト リはなければ作成されます。 % su # make install