Libretto20な日々

もらい物のノートPC Libretto20を日々いじくっている記録です。
この真似をして壊れてしまっても私は知りませんので悪しからず。

2000/12/15

基研の昼食会にて、二宮さん(基研の教授、世界的に著名な物理学者)が 「昔買ったLibrettoがあるが、今は使っていない。誰か使う人はいないか?」 と提案。早速、私が手を挙げてもらう事になる。

2001/1/29

二宮さんからLibretto20を受けとる。色んな人々に使ってもらっていたらしいが、外見の状態は結構良い。 HDは500MBが搭載されていた。 一緒にもらったのはACアダブタ、急速充電器、拡張アダプタとPC-Card接続のFDD。 FDD用のPC-Cardはまだ…。 HDの中のWindow95の状態はぼちぼち。 ただ、Winsock周辺がおかしくなっていて、ping localhost が帰ってこない、というよりpacketが送り出せていない様だ。 よって、このままではモバイルマシンとしての使用は絶望的。 FreeBSDの導入を考えるも、FDDもしばらくは使えそうにないので、しばらく放置。

2001/2/2

FDD用のPC-Cardも二宮さんからもらう。 FreeBSD or Linux の導入が原理的に可能になる。 ただ、500MBしかないHDを増設(交換か?)したいとする欲求も増大。

2001/2/初旬

この辺から、 NiftyサイトのLibretto FAQで色々勉強。で、 が分かったが、MK8113MAT は色んなパーツ屋を探したが、見つからず。 それどころか、8.45mm厚のHDはもはや市場には存在しそうにない。

2001/2/17(土)

の情報をもとに IBM DJSA-210 (10GB ATA-5 UDMA66 9.5mm厚) を購入。DOS/Vパラダイス京都店にて13980円ナリ。 ついでに、Libretto20単独でHD間のWindows95の引越しに失敗する事に備えて、 2.5inch-3.5inch変換コネクタ/マウンタも1200円で購入した。使わない事を祈る。

2001/2/18(日)

Windows95の保存作業: Librettoを解体。: HD領域の確保 FreeBSD 4.2 の導入: そうこうしている間に、夜も明けてしまったようだ。そのまま作業を続行…。

2001/2/19(月)

FreeBSD上にXFree86の導入

2001/2/20(火)

Windows95の再導入:
先にWindowsでMOにコピーしたファイルをFreeBSD上でDOS領域に戻す。 Windows95の再インストールによって、HDのマスターブートレコードがWindows用に書き換えられてしまった。そのままではFreeBSDが使えないので、元に戻す:

2001/2/21(水)

電源管理:

2001/2/22(木)

小さな筐体に8.4GのHDを搭載し、アプリケーションを大量にインストール可能になったLibretto20ではあるが、いかんせんCPUが486DXにメモリ16MBなんで、人間相手のGUIなアプリケーションはちと荷が重過ぎる気がする。まあ、gnome+enlightment+netscapeを入れる方も入れる方なんだが…。 あと、これは弱点と言うよりは性質といった類のことで文句の言える筋合いの事ではないんだが、キーボードとディスプレーが小さくて肩が凝る…。 これらの事に鑑み、このマシンはサーバ用途と決定し、あり余るHDを有効利用する事とした。(ほんまに有効利用かなぁ…。) まずは、FreeBSDのportsコレクションを探してみると、sambaが日本語化されたport ja-samba-2.0.7.j2.1 が見つかったのでこれをインストールする事にした。 非力なマシンにmakeさせるのは大変なので、pkg_addしたが、すんなり入った。 やはりsmb.confに日本語の説明コメントが付いているのは楽である。

2001/2/23(金)

不精者の私はrootでも平気でmuleをつかっている。 当然、rootのログインシェルもcshからtcshに替える事にした。 /etc/shellの最後の記述にしたがい、 chshで/bin/cshから/usr/local/bin/tcshへと全てのユーザとrootのログインシェルを変更した。(もちろん標準エディタの設定はmuleである。)
ところが、いきなりログインできなくなってしまった…というよりログイン認証はするけども、シェルが存在しないと言われてすぐに追い出されてしまうのである。要は/usr/local/bin/tcshが存在しなかったのだ! なんで、存在しないshellが/etc/shellに載ってるんだ? tcshは/bin/tcshに移っていたのだった…。
結局、リセットしてsingle user modeで作業をするはめに…。
boot: カウントダウン で 何かキー入力
> boot -s	シングルユーザモードへ
# fsck		これをしないとマウントできない
# mount -a	/etc/fstabに従い(noauto以外)全部マウント
# chsh		vi で /bin/tcsh に変更
# exit		マルチユーザーモードへ
久しぶりに、viと格闘した…。

2001/3/6(火)

ここしばらく忙しかったのでリブレットをさわっていなかったが、 久しぶりにハイバネ状態から復旧した。 コンセントを抜いておいたため、バッテリーの残量がゼロになっていたのには少々驚いた。 このリブレットのバッテリーには疲労が溜っているようだ…。 非力なリブレットのサーバー化計画と言う事で、 WWWサーバーをインストールすることにした。 せっかくなんで、SSLで暗号化対応なWWWサーバーにする。 初めは、SSL+OpenSSLなApacheの導入を図るも失敗。 どうやらFreeBSD4.2に初めから入っているOpenSSLとApacheの相性が悪いというより、 要求されるOpenSSLのバージョンがずれている…。 仕方がないので、Apache1.3+mod_sslの導入を図る。 自前でSSLの認証局(CA局)を上げて、自分で自分の認証を図りたいので、 packageからではなくportsからmakeを行う。
# cd /usr/ports/www/apache13-modssl
# make				コンパイル
# make certificate TYPE=custom	自己認証
# make install
初めは、単なるmakeでコンパイルを行うが、その後に make certificate TYPE=custom で自分自身でのCA局の立ち上げと自分自身の認証を行う。 認証の手続きは初めにCA局に関する事を問答形式で聞いてくるのでそれに答え、 そのあとでCA局に認証されるべきサーバーの事を答える。 まあ、どっちにも同じ内容を答えるわけだが…。 この操作は、portのディレクトリ/usr/ports/www/apache13-modsslの workディレクトリ以下のコンパイル済のバイナリを使うので、 make cleanした後では再コンパイルが必要になる。 make installのあとに再び認証したい場合には、 make certificate TYPE=customで認証した後に、 work/apache_1.3.14/conf/ssl.*に認証に関わる全てのファイル
ssl.crt/ca.crt		CA局の公開鍵=証明書
ssl.key/ca.key		CA局の秘密鍵
ssl.csr/ca.csr		CA局の(上位CA局へ向けた)CA署名の要求 (自己署名では不要なファイル)

ssl.crt/server.crt	CA局により署名されたサーバーの公開鍵=証明書
ssl.key/server.key	サーバーの秘密鍵
ssl.csr/server.csr	サーバーのCA署名の要求
がストアされるので、 それらを/usr/local/etc/apache/ssl.*にコピーする。 それらのファイル名はhttpd.confに合わせる必要があるが、 make certificate TYPE=customで生成されるファイル名はhttpd.confの記述に符合しているはず。 httpd.confの全体の記述(つまり、ポート80に関わる記述)の DocumentRootの項目が通常のWWWサーバーの公開文書のルートになり、 <VirtualHost _default_:443> で囲まれた部分の記述(つまり、ポート443に関わる記述)のDocumentRootの項目が暗号化文書のルートとなる。 apacheの起動は(setuidするから)root権限でapachectl startsslで行う。 停止はapachectl stop。 マシン起動時に実行される/usr/local/etc/rc.d/apache.shは固定IPマシンで非SSLでapacheを起動する分には問題ないが、PCカードDHCPマシンやSSL動作を指せる場合には大分と問題ありそう…。

今回はmake certificate TYPE=customでCA局の立ち上げを行ったが、 一度opensslを使ってCA局を作ってみたい。 どうやら、CA.shとかCA.plなどを使うようだがpathも通っていないし、FreeBSD4.2に初期導入されているOpenSSLからのやり方が今一つ良くわからん…。と思ったら、/usr/src/crypto/openssl/apps/CA.plが有るではないか! 今度やってみよう。 あと、現時点での問題点は、暗号化をしないといけないようなWWW文書がない点…。

2001/3/12(月)

かねてよりの懸案であった(そうだったのか?) OpenSSLによる認証局(CA局)の立ち上げと自己署名をする。

事前準備

FreeBSD4.2にはあらかじめOpenSSLが導入されているが、CA.plがすぐに使えるようにはなっていない。それを使えるように事前準備する。 とりあえず、自分のホームディレクトリ/home/nagataniの下にディレクトリsslを作ってそこを作業ディレクトリにする。
% mkdir ssl
% cd ssl
% copy /usr/src/crypto/openssl/apps/CA.pl .
さらにCA.plの先頭の1行を各システムのperlのbinary位置に合わせる。 FreeBSD4.2では#!/usr/local/bin/perl#!/usr/bin/perlと編集する必要あり。 一応ヘルプが出る事を確認:
% ./CA.pl -help
usage: CA -newcert|-newreq|-newca|-sign|-verify

OpenSSLによる認証局(CA局)の立ち上げ

以下**** なんとか ****としてあるところには各々のパスワード/パスフレーズを決定して入力する。
% ./CA.pl -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Using configuration from /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
......................................++++++
...++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:**** CA pass phrase ****

Verifying password - Enter PEM pass phrase:**** CA pass phrase ****

-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto Pref.
Locality Name (eg, city) []:Kyoto City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yukawa Institute for Theoretical Physics
Organizational Unit Name (eg, section) []:High Energy Physics
Common Name (eg, YOUR name) []:Yukinori NAGATANI
Email Address []:nagatani(@)yukawa.kyoto-u.ac.jp
この結果 ./demoCA/以下のディレクトリ構造が生成される

サーバー鍵対(公開鍵/秘密鍵)の作成

% openssl req -new -keyout server.key -out server.csr
Using configuration from /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
.........++++++
..........++++++
writing new private key to 'server.key'
Enter PEM pass phrase:**** Server Pass Phrase ****

Verifying password - Enter PEM pass phrase:**** Server Pass Phrase ****

-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto Pref.
Locality Name (eg, city) []:Kyoto City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yukawa Institute for Theoretical Physics
Organizational Unit Name (eg, section) []:HEP
Common Name (eg, YOUR name) []:Y.Nagatani
Email Address []:nagatani(@)yukawa.kyoto-u.ac.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:**** Challenge Password ****
An optional company name []:ButsuriYa
この結果
-rw-r--r--   1 nagatani  nagatani   846 Mar  7 18:41 server.csr
-rw-r--r--   1 nagatani  nagatani   963 Mar  7 18:41 server.key
が生成される

署名済みサーバー証明書の作成

サーバー公開鍵server.csrにCA局が署名をした署名済みサーバー公開鍵=サーバー証明書server.crtを作成する
% openssl ca -in server.csr -out server.crt
Using configuration from /etc/ssl/openssl.cnf
Enter PEM pass phrase:**** CA pass phrase ****

Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'JP'
stateOrProvinceName   :PRINTABLE:'Kyoto Pref.'
localityName          :PRINTABLE:'Kyoto City'
organizationName      :PRINTABLE:'Yukawa Institute for Theoretical Physics'
organizationalUnitName:PRINTABLE:'HEP'
commonName            :PRINTABLE:'Y.Nagatani'
emailAddress          :IA5STRING:'nagatani(@)yukawa.kyoto-u.ac.jp'
Certificate is to be certified until Mar  7 09:41:52 2002 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
この結果server.crtが作成される。
-rw-r--r--   1 nagatani  nagatani  4106 Mar  7 18:42 server.crt
-rw-r--r--   1 nagatani  nagatani   846 Mar  7 18:41 server.csr
-rw-r--r--   1 nagatani  nagatani   963 Mar  7 18:41 server.key
DER形式のサーバ証明書の作成
% openssl x509 -inform pem -outform der < server.crt > server.der
まあ、これはやってもらやなくても、関係ないとは思うが…。

apache ディレクトリへ組み込みと実行

取りあえず、make certificate TYPE=customで作った古いファイルを保存しておく。
% cd /usr/local/etc/apache
% mkdir ssl_org
% mv ssl.crl ssl.crt ssl.csr ssl.key ssl.prm  ssl_org
% mkdir ssl.crl ssl.crt ssl.csr ssl.key ssl.prm
作業ディレクトリからssl.crt、ssl.csr、ssl.keyを当該のディレクトリへコピーする。
% copy /home/nagatani/ssl/server.crt ssl.crt
% copy /home/nagatani/ssl/server.csr ssl.csr
% copy /home/nagatani/ssl/server.key ssl.key
あとはapachectl startsslでサーバーを起動してnetscape等でサーバー認証と暗号化をチェックして完了。
最終更新: 2001/3/6(火)

永谷幸則@京都大学 基礎物理学研究所