会社からの帰宅中, メモ書きをしていると, 突然ハングアップした. 仕方ないのでリセットをかけてみたが, Emacsが動いてくれない.
いろいろ確認したところ, どうやら, SDカードにインストールしてあるものが全滅らしい (T_T)
とりあえずは帰宅するまでSDカードはアンマウントして放置し, 帰宅後PCでSDの内容吸い出しを試みることに.
まずは PC の Linux 環境でファイルシステムを dd で吸い出そうとしたが, I/O error がでて, 失敗.
となると, ディレクトリツリーをコピーするしかなさそうなので, tar で吸い出す. コンソールを見る限りでは, どうやら, 一部ファイルが消失している模様.
ぱっと気付いたのは *Messages* の原稿 *1 数日分で, これはサーバ側のデータから蘇生させることができ, 事無きを得る. 今のところ, 他に消失したファイルは確認できていないが, ここ数日の間に書き換えた内容に関しては, 消失した分は *Messages* の原稿だけのようなので, 復旧不能の事態だけは避けられた模様.
まずは SD Formatter でのフォーマットを試みる. が, しかし, フォーマットできない. ロックをかけているわけでもないのに, 「読み込み専用です」と返ってくる.
仕方ないので Windows の右クリックメニューから「フォーマット」を選択してみたところ, 最初は一見うまく動いているようにみえるものの, 最後に「失敗しました」と返ってくる.
どうも埒があきそうにないので, PC の Linux でパーティションを切り, mkfs してみたところ, エラーなく返ってきた. ここで, 先程吸い出したツリーを書き戻したところ, これもエラーなく終了. これはいけそう.
そこで, 書き戻したSDカードをZaurusに挿し, 中身を確認したところ, 書き戻せてない (T_T) 書いたはずのデータのうち, 一部しか書き戻せてないようだ.
どうやらSDカード自体がやられたっぽい. 購入時, 念のため延長保証をかけておいたのだが, 役に立つときがやってきたようだ. 明日は定時退社できるので, 持ち込むことにするか.
修理になってなかなか返ってこない事態を想定し, 仮に使える環境を構築. 元のSDカードは256MBのものなのだが, Zaurus環境として使用している部分は訳80MB程度. うち, QtPalmtop如何が約60MBのようなので,
させることに.
まず本体メモリに, QtPalmtop以外をコピー. 問題なく終了.
次に, QtPalmtop以下を64MBのSDカードに書き込む. しかし, 容量オーバー. 仕方ないので,
の手順でしのぐことに.
*1 1日1ファイルで管理してます
無鉄砲。ただし、とんこつは今回が今月初。
待合室らしきものができていた。入店待ちシステムも、行列から名前呼び出し型に変更されていた*1。
先週までのカレー祭り状態からは解放されたのか、普段どおりの手際よさに戻っていて、ひと安心。
*1 どうやら混乱があったらしく、また行列に戻ったという話もちらほら。
普段のメール環境はgouketsu.netで動いているSMTPとIMAP4を用いているのだが、ここ2年程は、sshで掘ったトンネル経由でメールの読み書きを行っていた。このままでもとくに不自由はなかったのだが、最近状況が一変。W-ZERO3[es]なんてアイテムを入手したからには、[es]からもIMAP4経由でメールの読み書きができるようにしたい。
だた、やはり、パスワードを平文で流すのは避けたい。ということで、gouketsu.netのIMAP4サーバをSSL化することに。
なお、以下の例は、Debian GNU/Linux を用い、IMAPサーバはdovecotを用いるものとする。
本格的にするとなれば、どこかちゃんとしたところから認証してもらう必要があるのだろうが、個人メールのやりとりだけできれば十分なので、今回はオレオレ認証局で認証した証明書を使う。そこで、まずはオレオレ認証局を作成する。
まずは、シェルで以下の操作を行う。
% sudo su # apt-get install openssl # cd /etc/ssl # /usr/lib/ssl/misc/CA.sh -newca
ここで、いろいろ入力を求められる。
CA certificate filename (or enter to create)
ここは何も入力せずにEnter押下。
Making CA certificate ... Generating a 1024 bit RSA private key .++++++ .........................................................++++++ writing new private key to './demoCA/private/./cakey.pem' Enter PEM pass phrase:
ここは何か適当にパスフレーズ。
Verifying - Enter PEM 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]:
都道府県名を入れておけばいい*1。"Nara"とした。
Locality Name (eg, city) []:
市町村名を入れておけばいい*2。"Kashihara"とした。
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
適当に。"gouketsu.net"とした。
Organizational Unit Name (eg, section) []:
何も入力せずEnter押下。
Common Name (eg, YOUR name) []:
これも適当に"gouketsu.net"とした。
Email Address []:
これも適当にメールアドレスを入力しておく。ただし人様に迷惑がかかるようなことだけはないように。
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:
何も入力せずEnter押下。
An optional company name []:
何も入力せずEnter押下。
Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/./cakey.pem:
最初に入力したパスフレーズを入力。あとは、
Check that the request matches the signature Signature ok Certificate Details: Serial Number: 2 (0x2) Validity Not Before: Sep 19 17:27:14 2006 GMT Not After : Sep 18 17:27:14 2009 GMT Subject: countryName = JP stateOrProvinceName = Nara organizationName = gouketsu.net commonName = gouketsu.net emailAddress = ********@gouketsu.net X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** X509v3 Authority Key Identifier: keyid:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** Certificate is to be certified until Sep 18 17:27:14 2009 GMT (1095 days) Write out database with 1 new entries Data Base Updated
とメッセージ出力があり、シェルに戻る。 あとは、サーバ証明書を作成。
# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt # openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der
両方とも行う必要はないとは思うが、一応やっておく。これらのうち、いずれかをクライアントにもっていき、証明書をインポートする。Windowsではダブルクリックすると、ダイアログに「証明書のインストール」ボタンがあるので押下。あとは、「証明書の種類に基づいて、自動的に証明書ストアを選択する」を選んでおけば、インポートできる。
# mkdir server # cd server # openssl req -new -out server.pem
ここで、CA作成時と同じような入力が必要だが、同じものを入れればいいので、割愛。
# openssl rsa -in privkey.pem -out server.key # cp -p server.key /etc/ssl/private
# openssl ca -out server.crt -infiles server.pem # cp -p server.crt /etc/ssl/certs
/etc/dovecot.dovecot.conf に
ssl_cert_file = /etc/ssl/certs/server.crt ssl_key_file = /etc/ssl/private/server.key
の2行を追記し、
# /etc/init.d/dovecot restart
でdovecotの再起動をかける。これで、SSLおよびSTARTTLSでの接続が可能となる。
本来なら、dovecotインストール時に、privateとcertsにdovecot.pemが生成されるのでこちらを用いるべきだとは思うが、今回は、手で作成したものを用いた。
SMTPも同様にSSLもしくはSTARTTLSでの接続を可能にしておきたい。
上記手順で、SSLもしくはSTARTTLS経由のIMAP4接続はできるようになった。が、SMTPのほうは何もしていない。submissionポートを開けておけば接続は可能だが、認証なしというのは怖いので、SASLの設定を行って認証をかける必要がある。その場合、パスワードを平文で流すのは避けたいので、IMAP4同様、SSLで暗号化しておく必要がある。
ということで、近いうちにSMTP接続をSSL化し、そのうえでSASLで認証をかけるようにすることにする。
主に、以下のサイトを見ながら設定を行いました。 著者各位に感謝致します。
*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナ の LIRSからも取得可能です。