2009年12月22日火曜日

WILLCOM のメールアドレスに迷惑メール

WILLCOM のメールアドレスに,12月15日から迷惑メールが届くようになった.サイトとかに登録しているメールアドレスでもないので,迷惑メールが届くようになるのはおかしい.そもそも,この現象についていろいろなブログが書いている.WILLCOM の方で,メールアドレスの流出があったのではないかと思ってしまう.

WILLCOM の迷惑メール対策機能は,残念ながらしょぼいので今回の件に対応できそうにない.WILLCOM の方での対策を待つしかない.WILLCOM からの音沙汰がないので,現状について何らかの発表をしてほしいなと思う.

参考文献:
WebDiary: Willcomでスパム爆発中!
何の変哲もない新婚生活…: @willcom.comあての迷惑メールが届くようになった.

2009年11月4日水曜日

Dell Inspiron Mini 12 無線 LAN 換装 Atheros AR5007EG (AR5BXB63)

Dell Inspiron Mini 12 に搭載されている無線 LAN モジュール Broadcom BCM94312MCG を Yahoo! オークションで購入した Atheros AR5007EG (AR5BXB63) に換装した.どちらも 802.11b/g 対応なのは変わらないが,FreeBSD をインストールして無線アクセスポイントとして使用したかったので,対応している Atheros のものにしたのだ.

FreeBSD 7.2-RELEASE で認識し,クライアントとして使用できることは確認できたが,FreeBSD 7.1-RELEASE では認識できなかった.Windows XP でも,Aspire One の無線 LAN ドライバをインストールすることで使用できることを確認した.(ダウンロードできるサイトは参考文献にある.)

以下,その作業手順.

1. バッテリーを外す.

2. 画面を最大まで開く.

3. 左側の F1 のあたりにある隙間を使ってヒンジカバーを浮かせて外していく.

4. ヒンジカバーを外したら,ヒンジカバーの陰に隠れていたキーボードを止めているネジを外す.

5. キーボードを外すときには,キーボードと本体を繋いでいるケーブルに注意する.

6. ケーブルのささっているところの左右のケーブルをロックしている茶色い部分を引き出してケーブルを外す.

7. 無線 LAN モジュールについている白黒のケーブルを外し,ネジを外す.

8. 無線 LAN モジュールが浮くので,交換したい無線 LAN モジュールに交換する.


簡単に交換できるので,802.11n に対応させたりしたい人はやってみるといいかもしれない.Intel Wireless WiFi Link 4965AGN なら普通に購入できるし,ドライバも簡単に手に入ると思う.Windows でクライアントとして使用することを前提としてだけどね.

関連製品:
Intel Wireless WiFi Link 4965AGN

参考文献:
へろへろ日記: Inspiron mini 12 分解
Dell: Inspiron 1210 サービスマニュアル
Acer Europe: Drivers for Aspire One 150

2009年10月30日金曜日

FreeBSD でサーバ構築 #18 Cyrus IMAP 編

林檎生活100: FreeBSD でサーバ構築 #17 UW IMAP 編の続き.今回は,Cyrus IMAP で IMAP サーバを構築してみる.

Cyrus IMAP は,メールボックスを1箇所で集中管理するタイプのサーバで,クウォータを設定できたり,サーバサイドでのメールフィルタ (Sieve) を使用できたりする.UW IMAP に比べ高機能で高性能だが,その分設定する項目も多くなっているので,導入は少し面倒である.このエントリでは,UW IMAP 編で UW IMAP を導入したときと同等の機能の IMAP サーバを構築することを目指すことにする.つまり,IMAP over SSL なサーバであり,クウォータやメールフィルタの設定は行わない.(そのような設定に付いては,参考文献を参照してほしい.)

Cyrus IMAP の動作は,UW IMAP の動作とは大きく異なる.UW IMAP のように UNIX のメール環境と共存するわけではなく,完全に独立したメールボックスを構成する.そのため,サーバにログインして mail コマンドでメールを読むことはできなくなる.あくまで IMAP(設定によっては POP も可能.)でメールボックスにアクセスする.UNIX のメール環境における,ローカルのメールボックス (/var/mail) とユーザのメールボックス (~/mbox) は使用しないのだ.Sendmail のローカル配信が Cyrus IMAP のメールボックスになるように設定するので,このような動作になる.

さて,さっそくインストールと設定をしていこう.

1. Ports からインストールする.
# cd /usr/ports/security/cyrus-sasl23
# make install clean



2. cyrus ユーザの所有権を持つ証明書と秘密鍵を /var/imap/certs などに配置する.

3. 設定ファイル (/usr/local/etc/imapd.conf) を変更する.下記設定項目について,該当行を変更する.
allowplaintext: yes
admins: root
sasl_pwcheck_method: saslauthd
sasl_mech_list: plain
tls_cert_file: /var/imap/certs/cert.pem
tls_key_file: /var/imap/certs/key.pem
tls_ca_file: /var/imap/certs/cacert.pem
tls_ca_path: /var/imap/certs

4. メールスプールなどを作成・設定するスクリプトを実行する.
# /usr/local/cyrus/bin/mkimap

5. /etc/rc.conf に次の行を追加する.
cyrus_imapd_enable="YES"

6.Cyrus IMAP を起動する.DB_ERROR ってのが大量に出るが,ユーザのメールボックスにメールが配信されると,そのメッセージはでなくなるので気にしない.
# /usr/local/etc/rc.d/imapd start

7. ユーザのメールボックスを作成する.
# cyradm --user root localhost
> createmailbox user.takuya
> quit

8. Sendmail のローカル配信を Cyrus IMAP にするので,設定ファイル (僕の環境では,/etc/mail/lucifer.legna.org.mc である.) に以下の行を追記する.
dnl Cyrus IMAP options
define(`confLOCAL_MAILER', `cyrusv2')
MAILER(`cyrusv2')

9. Sendmail に設定を反映し,再起動する.
# cd /etc/mail
# make install
# /etc/rc.d/sendmail restart


設定完了♪メールの送受信をしてテストしてみてほしい.WAN 側から接続するときは TCP の143番へのポートマッピングを設定すること.

残った問題として,IMAP over TLS の状態じゃなく,平文の状態でもログインができてしまうことがある.imapd.conf の allowplaintext を no にすればいいのだけど,そうすると cyradm が使えなくなる.うーん,どうしたらいいのかな.

次回は,メールのちょっとした設定などについて解説して,メール編は終わりの予定♪では,また.

参考文献:
Cyrus IMAP Server v2.3 Documentation
IMAP

2009年10月29日木曜日

FreeBSD 7.1-RELEASE on DELL Inspiron Mini 12

インストールしてみての雑感.

無線 LAN を認識しないのは痛い.比較的交換が楽なので,Atheros チップの無線 LAN モジュールに交換してみる予定.

snd_hda で,音は多分出る.未確認だけど.

SD カードをマウントできた.

Web カメラもデバイスとしては認識してるみたい.

トラックパッドは当然動くだろうな.

S3, S4 は動作せず.画面を閉じても液晶は消えるけどサスペンドには移行しない.

VGA ポートはわからん.FreeBSD で外部ディスプレイを使おうとしたことが無いからなぁ.

こいつをベースに無線 LAN ブロードバンドルータ兼サーバを作成する予定.お楽しみに.

Windows XP と FreeBSD デュアルブートメモ

Windows XP インストール済み PC (DELL Inspiron Mini 12) に,FreeBSD をインストールしてデュアルブートする方法についてのメモ.

GParted Live CD でパーティションを縮小し,空き領域を作成する.

空き領域に FreeBSD をインストールする.ブートマネージャを None にすると FreeBSD だけが起動するようになる.

FreeBSD に付属しているブートマネージャをインストールするなら,インストール時に BootMgr を選択すること.インストール後にブートマネージャをインストールするなら,次のコマンドを実行すること.
# boot0cfg -B /dev/da0

Windows XP 付属のブートマネージャを使用する場合は,次の手順を踏むこと.

1. FreeBSD を起動し,USB メモリ (/dev/da0s1) に FreeBSD のネイティブルートパーティション (/dev/ad0s2) の最初のセクタをファイル化したものを保存する.
# mount_msdosfs /dev/da0s1 /mnt
# cd /mnt
# dd if=/dev/ad0s2 of=/mnt/bootsect.bsd bs=512 count=1

2. Windows XP インストールディスクから回復コンソールを起動し,MBR を修復する.(ここらへんがあやふや.ブートの話なんてほとんど忘れてしまったなぁ.)
> fixmbr
> fixboot c:
> exit

3. FreeBSD の fdisk でアクティブパーティションを Windows XP の入ってるパーティションに変更する.
# fdisk -a

4. Windows XP が起動したら,コマンドプロンプトを起動し,先ほどの USB メモリ (F:) から bootsect.bsd を C ドライブにコピーする.
> copy F:\bootsect.bsd C:\

5. C:\boot.ini を開き,最終行に次の行を追加する.(なお,最終行のあとに空行が1行必要だった気がする.FreeBSD 7.1-RELEASE の部分は自由に命名できる.)
C:¥BOOTSECT.BSD="FreeBSD 7.1-RELEASE"

メモ書きなので,過信しないようにしてください.fixmbr と fixboot がよくわかっていないので,詳しい人教えてください.

追記(2009年10月31日):
fixmbr と fixboot はいらないらしい.アクティブパーティションが変更されているのが問題みたいだね.

2009年10月28日水曜日

LaCie 4big Quadra 修理

悪いことは重なるものだ.LaCie 4big Quadra のドライブがひとつお亡くなりになった.

そして,マウントできなくなった.RAID 5 + Spare 構成だから,自動的にリビルドがかかるから大丈夫なはずなんだが,リビルド中に電源を落としてしまったせいかも.(寝ぼけた頭で,認識しねぇなぁと思って,電源落としたんだよね.馬鹿でゴメンよ.)

まずいなってことで,Data Rescue II 体験版でサルベージできることを確認し,結局ダウンロード購入した.

重要なデータだけさくっとサルベージしたけど,全部取り出すには保存先がないってことで,あわてて外付けドライブを購入.これが届くのはだいぶ先になりそう…….

今後の運用計画.RAID5 について調べて,案外危ないらしいってことで,今度から RAID10 で使おうと考え中.そうすると Spare がなくなってしまうのだけど,RAID10 で壊れたら,今回購入予定の外付け HDD にディスクのクローンを作成してバックアップを取るという方法でいこうかなと.RAID10 で1台故障中でも使用はできるし,万が一もう1台壊れたとしても,外付け HDD へのバックアップがあるから,被害は最小限にとどめられると思ったから.それ以前に,外付け HDD へのバックアップも月1くらいで定期的に行った方が良さそうだなぁ.

バックアップ地獄だなwww

2009年10月27日火曜日

Intel SSDSA2MH080G1C5 修理

MacBook に使ってた Intel の SSD が壊れた…….

あれ,Mail が落ちた?って思ったらフリーズして,再起動しても起動しなくなった.ディスク自体は認識していて,パーティション切り直したりもできたけど,結局 OS インストール時にファイルがコピーできなくてダメ.

いまは,MacBook に元々入っていた Fujitsu の HDD 環境に戻った.修理には2〜3週間くらいかかるらしい.新しい方の SSD で帰ってきたらいいのになぁ.

それにしても,Time Machine のお陰で復旧がめちゃくちゃ早い.Time Machine 様々だねぇ.

2009年10月23日金曜日

FreeBSD でサーバ構築 #17 UW IMAP 編

林檎生活100: FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信の続き.今回は,UW IMAP で IMAP サーバを構築する.

UW IMAP は,ワシントン大学で開発された IMAP サーバで,リファレンス実装的な立場のものである.伝統的な UNIX のメール環境(FreeBSD のメール環境も含む.)に親和性が高く,導入が容易であるので,今回の IMAP サーバに選択した.とりあえず,IMAP over SSL が使用でき,IMAP の基本的な機能を持っているので十分だろう.ただ,ほかの IMAP サーバよりもメールボックスへのアクセスに時間がかかる(どちらかというと,サーバではなくメールボックス形式の問題.)ので,大量のメールを捌く必要があるのであれば,次回以降に解説する Cyrus IMAP を使用した方がいいかもしれない.なお,UW IMAP の持つ機能の詳細は,Web サイトや参考文献を参照してほしい.

UW IMAP の動作はとてもシンプルだ.メールクライアントが IMAP サーバへのアクセスを試みると inetd (TCP/UDP ポートを監視し,そのポートにパケットが届くと対応づけられたサーバを起動するデーモン.)によって起動され,メールボックスを操作したり,情報を返したりするように動作する.また,サーバが起動された際に,ローカルのメールボックス (/var/mail) からユーザのメールボックス (~/mbox) にメールを移動させる動作をする.(ただし,~/mbox が存在しない場合は,ローカルのメールボックスを IMAP サーバのメールボックスと見なす.)これによって,サーバ上でメールを mail コマンドで読んでも,メールクライアントで UW IMAP を経由してメールを読んでも,ユーザのメールボックスにメールが保持される.ゆえに,自然に IMAP サーバを導入することができる.

インストール方法は,次のとおりである.

1. Ports からインストールする.
SSL を使用しない場合は,SSL_AND_PLAINTEXT にチェックを入れること.デフォルトで,SSL を使用しない認証をはじくようにコンパイルされるため.
# cd /usr/ports/mail/imap-uw
# make install clean



2. inetd の設定ファイル /etc/inetd.conf の該当行を次のように有効化する.
# example entry for the optional imap4 server
#
imap4 stream tcp nowait root /usr/local/libexec/imapd imapd(コメントを外す.)

3. /etc/rc.conf に次の行を追加し, inetd を有効化する.
inetd_enable="YES"

4. inetd を起動する.
# /etc/rc.d/inetd start

5. 証明書を配置する.
# cd /etc/mail/certs
# mkdir /usr/local/certs
# umask 066
# cat key.pem cert.pem > /usr/local/certs/imapd.pem
# umask 022

鍵と証明書を同じファイルに記述して,/usr/local/certs に imapd.pem というファイル名で配置するだけ.(場所とファイル名は固定みたい.)

6. メールボックスのスケルトンを作っておく.
# touch /usr/share/skel/mbox

これは,新規ユーザを追加したときに自動的に mbox がホームディレクトリに作成されるようにするためだ.UW IMAP は,ホームディレクトリに mbox があると /var/mail からメールを取得してくるという仕様になっていて,mbox が無い場合は /var/mail のメールボックスを直接参照する.デフォルトのままユーザが使用すると,/var/mail 以下にメールが蓄積され,論理パーティションを切っている /var を圧迫することになりかねないので,このようなスケルトンを作成する.(まぁ,ssh や ftp でログインされて,mbox を消されたら,結局 /var/mail にメールがたまるわけだけどね.)

これで設定完了♪

外部から接続する場合は,TCP の143番に対してのポートマッピングを設定しよう.また,認証については,PAM を使用しているのだが,/etc/pam.d/imap の内容のままで問題ないので省略した.

次回は,Cyrus IMAP の設定について説明する.Cyrus IMAP には,振り回されたからなぁ.(自分のミスでwww)

参考文献:
University of Washington: IMAP Information Center
IMAP

2009年10月15日木曜日

FreeBSD でサーバ構築 #16 SMTP over SSL: TLS による暗号化通信

林檎生活100: FreeBSD でサーバ構築 #15 SMTP Authentication (SMTP-AUTH)の続き.前回は,認証のための機能を Sendmail に導入した.今回は,その認証のための通信を暗号化するために SMTP over SSL を導入する.

SMTP over SSL とは,SMTP セッションを SSL によって暗号化するものだ.(SSL と TLS については参考文献を参照してほしい.)これによって,メールクライアントからメールサーバへの通信は暗号化される.認証を行い,メールを受け渡すプロセスまでだ.しかし,メールサーバから次のメールサーバに転送される場合の通信の暗号化は保証されない.つまり,メールが最終配送先に届くまでの経路すべてが暗号化されるわけではないことに注意しよう.ここで暗号化の対象としているのは,メールの内容ではなく,認証時のユーザ名とパスワードなのだ.(メール本体の暗号化の問題は,全然別になるってことだね.)

さて,さっそくその機能を導入しよう.幸運なことに,この機能はすでに FreeBSD の Sendmail に入っているので,SSL 証明書を配置し,設定を変更するだけでいい.(生成については,林檎生活100: OpenSSL で自己署名証明書を作成する林檎生活100: Namecheap で格安 SSL 証明書を取得する方法を参考にしてほしい.)

1. /etc/mail/certs ディレクトリを作成する.
# mkdir /etc/mail/certs

2. /etc/mail/certs ディレクトリに証明書を配置(もしくは生成)し,アクセス権を次のように変更する.(秘密鍵のアクセス権に注意.証明書へのシンボリックリンクととなるハッシュのファイル名は,対象の証明書によって異なる.ちょっとここらへんの用途がわかってない.)
・自己署名証明書の場合
lrwxr-xr-x 1 root wheel 8 Oct 15 05:06 807f5ca7.0 -> cert.pem
-rw-r--r-- 1 root wheel 1172 Oct 13 05:41 cert.pem
-rw------- 1 root wheel 887 Oct 13 05:41 key.pem

・ルート CA による署名済み SSL 証明書の場合
lrwxr-xr-x 1 root wheel 10 Oct 15 05:05 594f1775.0 -> cacert.pem
-rw-r--r-- 1 root wheel 1162 Oct 13 05:41 cacert.pem
-rw-r--r-- 1 root wheel 1172 Oct 13 05:41 cert.pem
-rw------- 1 root wheel 887 Oct 13 05:41 key.pem

3. /etc/mail/lucifer.legna.org.mc(自分の環境に合わせた設定ファイルを変更すること.)を変更する.
3.1. まず,非暗号化通信時に認証を行わないように設定する.これによって,暗号化されていない状態での認証を防ぎ,ユーザ名やパスワードの漏洩を防止する.
dnl Set SASL options
TRUST_AUTH_MECH(`PLAIN')
define(`confAUTH_MECHANISMS', `PLAIN')
define(`confAUTH_OPTIONS', `p')(この行を追加する.)

3.2. 使用する SSL 証明書など,SMTP over SSL に関わるオプションを設定する.(上から順に,証明書ディレクトリへのパス,CA 証明書へのパス,サーバ証明書へのパス,サーバ秘密鍵へのパスである,最後のオプションは,クライアント検証を行わないというオプションである.クライアント認証うんぬんの話は割愛する.)
・自己署名証明書の場合
dnl SSL Options
define(`confCACERT_PATH',`/etc/mail/certs')
define(`confCACERT',`/etc/mail/certs/cert.pem')
define(`confSERVER_CERT',`/etc/mail/certs/cert.pem')
define(`confSERVER_KEY',`/etc/mail/certs/key.pem')
define(`confTLS_SRV_OPTIONS', `V')

・ルート CA による署名済み SSL 証明書の場合
dnl SSL Options
define(`confCACERT_PATH',`/etc/mail/certs')
define(`confCACERT',`/etc/mail/certs/cacert.pem')
define(`confSERVER_CERT',`/etc/mail/certs/cert.pem')
define(`confSERVER_KEY',`/etc/mail/certs/key.pem')
define(`confTLS_SRV_OPTIONS', `V')

4. 設定ファイルを更新し,Sendmail を再起動する.
# cd /etc/mail
# make install
# /etc/rc.d/sendmail restart

これで,SMTP over SSL による通信ができるようになったはずである.メールクライアントの設定を変更して,TLS による接続を試みてみるといい.また,暗号化していない状態での認証が棄却されることを確かめよう.

また,telnet で 250-STARTTLS が表示されることで設定されているか確認できる.STARTTLS というのは,暗号化通信を開始するコマンド名である.

正常に動作しないときは,/var/log/maillog を確認してみよう.エラーメッセージがファイルの最後あたりに出ていると思う.

以上.こんな感じで Sendmail を設定して,メールクライアントから見た場合の送信用サーバが完成した♪

WAN 側から接続する際には,TCP 25 番に対してポートマッピングを設定しよう.

次回は,メールクライアントから見た受信用サーバを構築の段階に入る.いまや自分用サーバで POP サーバを使う必要性は感じないので,IMAP サーバを対象とする.メジャーな IMAP サーバはいくつかあるが,この Blog では UW IMAP と Cyrus IMAP を取り上げる.導入な簡単な UW IMAP を先にさっくり構築してみて,その後で Cyrus-IMAP の構築をやる.少ない人数で大量のメールをさばかないのであれば,前者の UW IMAP で十分だと思う.UNIX のメールシステムとの親和性も高いので,すごく自然に導入できる.しかし,人数が多かったり大量のメールをさばかなければならないのであれば,後者の Cyrus IMAP を使用した方がいいだろう.クウォータを利用したい場合もこっちになる.

とりあえず,それぞれのサーバの特徴などは次回以降説明する.お楽しみに〜.

参考文献:
Wikipedia: Secure Sockets Layer
RFC2487: SMTP Service Extension for Secure SMTP over TLS
sendmail 第3版〈VOLUME1〉運用編
sendmail 第3版〈VOLUME2〉設定編
sendmailクックブック―設定と運用のためのレシピ集
FreeBSD Handbook

追記(2009年10月15日):
クライアント検証・認証についての補足.

今回の設定で,メールクライアントがサーバを検証することが可能になり,接続先メールサーバが保証されることになる.(自己署名の場合はダメだけどねw)しかし,メールサーバはクライアントを認証を通った誰かとしか感知しない.よって,サーバがクライアントを検証したい場合に,クライアント検証が必要になる.しかしながら,証明書を持って接続してくるクライアントを検証するという設定が今回のサーバに必要ないと思ったので,自動的に検証しようとする動作を無効化するオプションを付加した.(また,僕の理解が浅いので説明したくなかったというのもあるw)

クライアント認証というのは,クライアントの証明書をもとに認証する方法.これも使い方によっては便利だと思うのだが,僕が必要としなかったのと,その説明をきちんとできなさそうだったので説明していない.

加えて,今回設定したサーバがメールを転送する際には,別のサーバから見てクライアントになる.その際に証明書を呈示する設定もできるのだが,省略してある.これについても必要性を感じなかったからである.

今回の設定は,あくまでユーザ名とパスワードによる認証を暗号化することが目的なので,ほかの観点について抜けていて申し訳ない.

2009年10月12日月曜日

FreeBSD でサーバ構築 #A SSH と公開鍵認証

SSH の設定について,直接コンピュータを触れる環境であれば,特に SSH を使ってリモートからログインする必要はないわけだが,ファイルをコピーする必要があったり,外出先からログインする必要があったりするときには便利なので,その設定を解説する.

リモートからパスワードログインをするだけであれば,次のように設定するだけで,好きな SSH クライアントからアクセスできるようになる.

1. /etc/rc.conf に次の行を追加する.
sshd_enable="YES"

2. 再起動するか,次のコマンドを実行する.
# /etc/rc.d/sshd start

これだけだ.たとえば,Mac OS X のターミナルからログインしたい場合は,次のようなコマンドを打ち,プロンプトに従ってパスワードを入力するだけでいい.
$ ssh takuya@192.168.1.254(ユーザ名@ホスト名の形になる.)

はじめての接続のときに,yes/no のプロンプトがでるが,yes と答えておこう.これは,接続先ホストを known_hosts に加えるかという質問で,known_hosts に記述されているホストに再度接続しようとした場合に,そのホストが前回接続したホストと同一かということをチェックするための仕組みになっている.(同じホスト名で接続しても,実際のコンピュータが同一でなく,ログインパスワードを盗まれるようなダミーサーバに接続しているということが考えられるので,このような仕組みでチェックしている.)

しかしながら,このような方法だとパスワードが暗号化されているとはいえ,パスワードを入力するという作業が伴うため,ヒューマンエラーによってパスワードを露呈してしまう可能性がある.(たとえば,ログイン名としてパスワードを入力してしまうようなミス.)したがって,極力パスワードを入力せずにログインするようにしたい.

SSH には,そのためのログイン方法のひとつとして,公開鍵認証が含まれている.公開鍵認証についての説明はこのエントリ内で解説できる内容ではないので割愛する.また,SSH が公開鍵認証をどのように使っているかについても割愛する.詳細が知りたい方は,参考文献を読んでほしい.

ひとつ言えることは,公開鍵認証によって安全性が高まるということだ.公開鍵認証時に必要なのは,鍵となるファイルとその鍵を手元で複合するパスフレーズ(まあ,パスワードみたいなものだ.)となる.パスワードひとつだけよりも安全そうな気がすると思うw鍵もパスフレーズもネットワーク上を流れない認証方式なのでより安全ということだ.鍵を誰かに奪われても,パスフレーズがないと使えないしね.

では,公開鍵認証をできるように設定してみよう.前述の設定を行って,パスワード認証ができる状態であるとする.公開鍵認証の設定は,Mac OS X のターミナルから行う.

1. 鍵を生成する.
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/takuya/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

2. 鍵を配置する.鍵の保存用ディレクトリ(ssh の known_hosts なども入る.)を接続先ホストに作成し,そこに authorized_keys というファイルを作成し,公開鍵の情報を追記している.
$ ssh takuya@192.168.1.254 'mkdir .ssh'
$ cat .ssh/id_rsa.pub | ssh takuya@192.168.1.254 'cat >> .ssh/authorized_keys'


これで完了♪公開鍵認証で接続するときもコマンドは同じで,公開鍵認証が自動的に使用されるようになる.
$ ssh takuya@192.168.1.254


WAN からのアクセスも許容する場合は,公開鍵認証のみを使用するように設定しよう./etc/ssh/sshd_config の次の行を変更する.
# Change to no to disable PAM authentication
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no(この行を追記する.)

なんで,PasswordAuthentication no の追記でないのかということが気になると思う.不勉強なので正確性に欠けるかもしれないが,簡単に説明しよう.まず PasswordAuthentication は FreeBSD 7.1-RELEASE の SSH のデフォルト設定は no になっているので,パスワード認証はされない.しかし,ChallengeResponseAuthentication のデフォルト設定は yes になっている.さらに,チャレンジレスポンス認証は,UsePAM が yes になっているため PAM を使用するようになっているので,PAM のデフォルト設定上パスワード認証になるということだ.

あと,WAN からのアクセスを行う際に,間にルータがある場合は TCP 22番のポートマッピングを設定することを忘れないようにしよう.

以上,ざっと簡単に SSH の解説を行った.ちょっと適当に流してしまったので,ちゃんと勉強したい人はもっときちんと説明している Web サイトを参照したり,参考文献にあげた本を参照してね.

あー,そういえば,Leopard からキーチェーンと連動する ssh-agent っぽい機能が付いたみたいで,かなり便利♪裏側がどーなってるか知らないから,ちょっとわからない部分があってとまどうけどね…….

参考文献:
実用SSH 第2版―セキュアシェル徹底活用ガイド
ARAKI notes: ssh-copy-idがmacにないの不便だなあ,と一瞬おもったのでcopyしてくる

2009年10月9日金曜日

携帯シンク for Mac 5 で BAUM のアドレス帳と Snow Leopard のアドレスブックを同期

Willcom のケータイをネットインデックスの nico.neco から京セラの BAUM に機種変更して,Mac とアドレス帳の同期ができるぞと思って携帯シンク for Mac 5 を購入した♪BAUM 対応を謳ってはいないんだけど,どうやら Honey Bee 2 の設定でいけるらしいので,その設定を行った際のメモ.

○携帯シンク[電話帳]
1. メニューバー>携帯シンク[電話帳]>環境設定…をクリック.
2. 以下の項目を設定して,設定確認をクリック.
接続ケーブル:自動
携帯電話機種:WILLCOM HONEY BEE 2
暗証番号:●●●●(ケータイの設定にあわせてね.)

○iSync
1. 携帯シンクを起動.
2. メニューバー>携帯シンク>環境設定…をクリック.
3. 以下の項目を設定して,設定確認をクリック.
携帯電話機種:WILLCOM HONEY BEE 2
暗証番号:●●●●(ケータイの設定にあわせてね.)
4. メニューバー>アプリケーション>携帯シンク iSync 登録補助ツールをクリック.
5. USB mini-B ケーブル (WILLCOM) をクリック.
6. iSync が起動していたら終了させ,待ち受け画面を表示した BAUM と Mac を付属の USB ケーブルで接続.
7. BAUM の製造番号(ケータイの電池パックを外すとあるシールに記述されている.)を入力し,確認をクリック.
8. iSync のアイコンをクリックし,メニューバー>ファイル>情報を見るで“iSync”の情報を開き,32ビットモードで開くにチェックを入れる.(64ビットアプリケーションに携帯シンクが対応していないかららしい.)
9. iSync を起動し,メニューバー>デバイス>デバイスを追加…をクリック.
10. Honey Bee 2 (実際に接続されているケータイは BAUM だけどね.) が見つかって,アドレス帳を同期できるようになる.

iSync での同期が一番便利な気がする.iSync で同期される項目は次のとおり.(マニュアルの内容を参考にしている.)

○同期対象
・名前
・フリガナ
・電話番号
・メールアドレス
・住所
・誕生日
・メモ

○非同期対象
・グループ(ケータイのデータを保持.)
・血液型(ケータイのデータを保持.)
・趣味(ケータイのデータを保持.)
・メモリ番号(メモリ番号を再設定.)
・上記項目以外(初期値に設定.)

誕生日は,マニュアルではケータイのデータを保持だったが,実際には同期されていた.メモリ番号が変わるのは,メモリ番号によるショートカットを使ってる人には痛い仕様だと思う.

参考文献:
shigekix blog: BAUMとMacの電話帳連携

関連製品:
携帯シンク for Mac 5 FOMA 充電ケーブルセット
携帯シンク for Mac 5 au WIN専用充電ケーブルセット
携帯シンク for Mac 5 au 充電ケーブルセット
携帯シンク for Mac 5 PDC 充電ケーブルセット

2009年10月4日日曜日

MacBook (Late 2006) に Windows 7 RTM をインストール

MacBook (Late 2006) の Snow Leopard から Boot Camp を使って Windows 7 をインストールした.そのままでインストールできちゃったんだけど,ちょっとハマってしまったところもあったので,それについてメモっとこう.ちなみに使用した Windows 7 は,MSDN AA から取得した Windows 7 Professional 32bit なので,製品版と同じもののはず.

○Wireless Mighty Mouse の認識
そのままだと Bluetooth デバイスとして認識しなかった.写真とMacとiPhone: Windows 7 RCでWireless Mighty Mouseを使用によると.Bluetooth デバイス一覧に Wireless Mighty Mouse が出てきたら,右クリック(トラックパッドに2本指をおきながらクリックする.)してプロパティを選択し,HID準拠マウス(項目名があやふやだから間違ってるかもw)のチェックを入れる.これを設定すれば,普通に Bluetooth 接続のマウスとして使用できた.

○Wi-Fi の接続
AirMac Express と MacBook (Late 2006) の Atheros AR5006X の接続だったんだけど,無線モードが 802.11g のみだと接続できなかった.802.11b しか対応していないのかどーなのかよくわからないけど,AirMac Express の無線モードの設定を 802.11b/g 互換にすれば接続できた.

○Wireless Mighty Mouse のスリープ
10秒動かさないと,Wireless Mighty Mouse がスリープしてしまう.いちいちクリックしてから,マウスカーソルを動かすことになるので不便.対策できなかったので,だれか教えてください.

追記(2009年12月7日):
Wireless Mighty Mouse のスリープについて,ここに解決策が書いてあるとのコメントを貰った.僕は,SSD が壊れてから Windows 7 をインストールしてないので,動作を確認していないけど,もし困っている方がいれば試してみてね.

参考文献:
写真とMacとiPhone: Windows 7 RCでWireless Mighty Mouseを使用
La Loopa: Boot Camp 上の Windows 7 で Wireless Mighty Mouse を認識しない件について

2009年9月30日水曜日

MacBook (Late 2006) メモリ4GB増設(3GB認識)

MacBook (Late 2006) に BUFFALO の D2/N667-2GX2/E というメモリを増設した.Mac 対応を謳っていなかったけど,無事に2GBのメモリ2枚と認識している.だけど,実際には3GBのメモリとしての使用となる.(1GBは天使の取り分らしいw)

システムプロファイラで,2GBメモリ2枚が認識されていることが確認できる.アクティビティモニタで,3GBのメモリとして動作していることが確認できる.

VMware Fusion とか使ってると2GBじゃ微妙に足りなくなるからなぁ.最近の MacBook は,4GBをちゃんと認識するので4GB積むことをオススメする.MacBook (Late 2006) とか,3GB までしか使用できない場合は,財布とメモリ使用状況を天秤にかけてみよう.

関連製品:
BUFFALO D2/N667-2GX2/E

2009年9月28日月曜日

MacBook (Late 2006) Snow Leopard HDD vs. SSD

MacBook (Late 2006) に Snow Leopard をインストールするついでに SSD に換装したので,起動スピードの違いを調べてみた.Snow Leopard を標準インストールしたときの起動時間を動画に撮ってみた.

○実験環境
・MacBook (Late 2006)
Processor: 2 GHz Intel Core 2 Duo
Memory: 2 GB 667 MHz DDR2 SDRAM

・HDD
Fujitsu MHV2080BH

・SSD
Intel SSDSA2MH080G1C5

まず,HDD の場合.



だいたい,32秒くらい.

次に,SSD の場合.



だいたい,25秒くらい.

わかりきってたことだけど,体感できる速度差があるねw普通に使っていても,軽いなぁと思う.新しい Mac 買うより,MacBook なら SSD に換装した方が体感速度はよくなりそう♪

2009年9月25日金曜日

iCal (Mac OS X & iPhone) と Google カレンダーを CalDAV で同期する方法

iCal と Google カレンダーを CalDAV で同期する方法について.これによって,Google カレンダーを Mac OS X や iPhone から参照・編集できるようになる.(なので,厳密には同期じゃない.)

その手順は,以下の通り.

○iCal (Mac OS X)
1. メニューバーの iCal >環境設定…をクリックする.
2. アカウントタブをクリックし,+をクリックしてアカウントを追加する.
3. 説明(任意)を入力し,ユーザ名とパスワードに Google のアカウントを入力する.さらに,サーバオプションのアカウントの URL に以下のように入力し,追加ボタンをクリックする.

https://www.google.com/calendar/dav/YOUREMAIL@DOMAIN.COM/user(YOURMAIL@DOMAIN.COM を Gmail のメールアドレスに書き換えること.)

○iCal (iPhone)
1. 設定をタップする.
2. メール/連絡先/カレンダー>アカウントを追加…>その他>CalDAVアカウントを追加をタップする.
3. サーバとユーザ名,パスワード,説明を Mac OS X と同様に入力する.

こんなかんじで設定すると,Google カレンダーを編集できるようになる.

ちなみに,iCal に存在していたカレンダーを Google カレンダーに移行する場合は,まず,iCal で移行元のカレンダーを選択し,メニューバーのファイル>書き出し…をクリックして対象となるカレンダーを書き出す.次に,移行先のカレンダーを選択し,メニューバーのファイル>読み込み…をクリックしてその書き出したファイルを読み込むという手順を踏めばいい.

また,MobileMe には同期されないため,カレンダーを参照・編集したいそれぞれの端末でこの設定をする必要がある.

参考文献:
Google Calender Help: Get Started with CalDAV

2009年9月15日火曜日

FreeBSD でサーバ構築 #15 SMTP Authentication (SMTP-AUTH)

林檎生活100: FreeBSD でサーバ構築 #14 リレー設定の続き.今回は,SMTP に認証を付加する SMTP Authentication の設定を行う.これによって,認証に通ったものだけリレーするようになるので,前回の設定を使わなくてもよくなるw(前回の設定を解除する場合は,/etc/mail/access を空にし,make maps を実行する.)だけど,Sendmail に設定するのは少し面倒くさいんだなぁ…….

SMTP Authentication は,SMTP の拡張機能として RFC2554 で規定されている.Sendmail も V8.10 からサポートしているが,FreeBSD に付属している Sendmail は SMTP Authentication を組み込まれてコンパイルされていない.したがって,SMTP Authentication を組み込むために,Sendmail をリビルドする必要がある.

SMTP Authentication は,SASL (Simple Authentication and Security Layer) というフレームワークによって実現される.そのため,SASL ライブラリが必要になるので,Sendmail に SMTP Authentication を組み込むときによく使われる Cyrus SASL を使用する.(そもそも,ほかのライブラリを知らないw)

また,当然のことながら,認証の際にはユーザ名とパスワードが必要になる.今回は,FreeBSD のユーザ名とパスワードに連動するような方法をとる.(もちろん,独立したユーザ名とパスワードにすることも可能であるが,その方法については説明しない.そのような方法については,sasl auxprop というようなキーワードで検索してほしい.)

FreeBSD のユーザ名とパスワードに連動させる場合,saslauthd というデーモンが必要になる.これは,SASL ライブラリを使用した認証のためのデーモンである.このデーモンが,FreeBSD の PAM (Pluggable Authentication Modules) を使用して FreeBSD のユーザ名とパスワードでの認証を行う.(念のため言っておくと,PAM 以外を使用した認証のデーモンとして動作させることもできる.)つまり,Sendmail は SASL ライブラリを使用して,saslauthd に認証を依頼し,saslauthd が PAM を使用して FreeBSD のユーザ名とパスワードで認証を行い,その結果を Sendmail に返却する.というような仕組み.(たぶん…….)

さて,Sendmail に SMTP Authentication を組み込む作業をしていこう.

1. Cyrus SASL のインストール
cyrus-sasl2 と cyrus-sasl2-saslauthd という Port をインストールする.(cyrus-sasl2-saslauthd は cyrus-sasl2 に依存しているので,cyrus-sasl2-saslauthd をインストールするだけで両方インストールされる.)オプションとして,Berkeley DB を使うように BDB にチェックをいれる.(今後のエントリで書く予定の Cyrus IMAP でも Cyrus SASL を使用する予定で,そのインストール要件に Cyrus SASL を Berkeley DB を使用するようにコンパイルしておくことを強く推奨されてるためである.)
# cd /usr/ports/security/cyrus-sasl2-saslauthd
# make install clean



cyrus-sasl2-saslauthd をインストールすると,Sendmail.conf というものが /usr/local/lib/sasl2 に作成される.これは,Sendmail が Cyrus SASL を使用するときの設定ファイルで,pwcheck_method オプションが記述されており,認証に saslauthd を使用するように設定されている.

2. saslauthd の起動
rc.conf に次の行を追記する.
saslauthd_enable="YES"

そして,次のコマンドで起動する.いつものサーバと同じようなかんじだが,Ports からインストールしたので,/usr/local 以下に起動スクリプトが配置されている.
/usr/local/etc/rc.d/saslauthd start

3. Sendmail のコンパイルオプションの設定
/etc/make.conf に次の行を追記する.(FreeBSD Handbookの説明通り.)
SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2

4. Sendmail のリビルドとインストール
次の手順でリビルドとインストールを行う.(FreeBSD Handbookの説明通り.)&& は,左辺の実行が成功したら右辺を評価するという動作をする.
# cd /usr/src/lib/libsmutil
# make cleandir && make obj && make
# cd /usr/src/lib/libsm
# make cleandir && make obj && make
# cd /usr/src/usr.sbin/sendmail
# make cleandir && make obj && make && make install


5. FreeBSD の再起動
再起動して,Sendmail と saslauthd の自動起動を確認する.(saslauthd が起動していないというのが,認証時のハマりポイントだったりするので覚えていてほしい.)

6. Sendmail の設定
次のコマンドを実行することで,ホスト名.mc という設定ファイル(僕の環境では lucifer.legna.org.mc になる.)が生成される.
# cd /etc/mail
# make

その設定ファイルに次の行(バッククウォートとクウォートが対応していることに注意.)を追記する.SASL での認証に平文を使用するという設定である.(認証で最終的に PAM を使用するので,平文でないと認証できないため.)メールクライアントとして,Outlook Express を使用する場合 LOGIN という項目も追加する必要があるらしい.(/usr/ports/security/cyrus-sasl2/files/Sendmail.README を参照のこと.)
dnl Set SASL options
TRUST_AUTH_MECH(`PLAIN')
define(`confAUTH_MECHANISMS', `PLAIN')

設定ファイルをインストールし,Sendmail を再起動する.
# make install
# /etc/rc.d/sendmail restart

7. 設定の確認
次のコマンドを実行し,Compiled with 行に SASLv2 という項目があることを確認する.(sendmail を起動(デーモンとして起動するわけではない.)して最低限のデバッグ情報を出力するようにデバッグモードを設定し,/dev/null を標準入力させることで何も動作させずに終了させている.)
# sendmail -d0 < /dev/null

さらに,telnet で認証方式 250-AUTH PLAIN が表示されることを確認する.
# telnet localhost smtp
EHLO localhost
QUIT

LAN 内の PC で メールクライアントから SMTP Authentication による認証ができるか確認する.平文による認証なので,WAN 側から実行するのはセキュリティ上の問題がある.
また,次のサイトを利用して,不正リレーのチェックを実行する.

Abuse.net: Mail relay testing

これで,SMTP Authentication の設定は完了である./etc/mail/access を設定している場合は,ファイルの内容を空にして make maps を実行しておこう.さて,次回は,STARTTLS という機能を使用して,SMTP セッションを暗号化する方法について記述する.これで,平文による認証ごと暗号化できるので,WAN 側から SMTP サーバを安全に利用することができるようになるのだ♪

参考文献:
sendmail 第3版〈VOLUME1〉運用編
sendmail 第3版〈VOLUME2〉設定編
sendmailクックブック―設定と運用のためのレシピ集
FreeBSD Handbook

追記(2009年10月26日):
saslauthd が使用する PAM について.saslauthd を d オプションで起動して試してみるとわかるのだが,Sendmail から saslauthd を使用した場合,サービス名は smtp になる.しかしながら,/etc/pam.d には smtp がないので,デフォルトの other が使用される.その中身の説明は省くが,デフォルトのままだと UNIX 認証モジュールが使用されることになる.つまり,ログイン時のようにユーザ名とパスワードによる認証が裏で行われる.Sendmail での認証がログイン時のユーザ名とパスワードでできるのはこのためなのだ.

2009年9月14日月曜日

DVD プレーヤーのダウングレード

Apple 製 DVD プレーヤーのバージョンが,最近の Mac では5.1.0になっている.以前購入した Mac OS X Leopard に付属している DVD プレーヤーのバージョンは5.0.3である.

なぜか,5.1.0のバージョンから,VIDEO_TS フォルダを直接再生することができなくなった. そこで,5.1.0を5.0.3にダウングレードしてみた.

その手順は,5.0.3の入っている Mac から,5.1.0の入っている Mac へ,次のファイルをコピーして持ってくるだけ.これで,問題なく VIDEO_TS フォルダを再生できるようになる.
/System/Library/Frameworks/DVDPlayBack.framework
/Applications/DVD Player.app

Snow Leopard については,そのうち調査予定♪

2009年8月18日火曜日

Mac OS X Leopard: ターミナルの環境設定

Mac OS X Leopard のターミナルの環境設定メモ.Pro をベースに,フォントに「Osaka-等幅 14 pt.」を選択し,option キーに meta キーをマッピングするというかんじ.

普段使ってる環境はこういう見た目.



○環境設定

1. 起動時に開くウィンドウを Pro にする.


2. Pro をデフォルトにし,フォントを「Osaka-等幅 14 pt.」にする.


3. option キーに meta キーをマッピングするために,「メタキーとして option キーを使用」をチェックする.

2009年8月17日月曜日

Mac OS X の bash の環境設定ファイル

Mac OS X Leopard のデフォルトシェルである bash で,どのようにして PATH や MANPATH などの環境変数が設定されていくのかのメモ.

1. /etc/profile
ログインシェルを起動して,最初に実行される環境設定ファイル./usr/libexec/path_helper -s と /etc/bashrc を実行している.

2. /usr/libexec/path_helper -s
/etc/paths ファイルと /etc/paths.d ディレクトリのファイルを読み込み,そこに列挙されたパスを PATH 環境変数に設定する.(path_helper の実体は bash 用シェルスクリプト.bash に詳しければ読めるはず.path_helper の先頭にコメントで説明があるが,実行内容とかなり乖離していることに注意.)

3. /etc/bashrc
対話型シェルとして起動された場合,ホスト名とカレントディレクトリ名,ユーザ名,ドル記号(例えば,michael:~ takuya$ というような文字列.)をプロンプト文字列として設定する.また,bash がウィンドウサイズをコマンドごとにチェックし,必要であれば LINES 環境変数と COLUMNS 環境変数を変更するように,checkwinsize を設定する.

2009年8月16日日曜日

bash の環境設定ファイルの意味について .bash_profile .bash_login .profile .bashrc .bash_logout

bash の環境設定ファイルのそれぞれの意味についてのメモ.

○環境設定ファイル

/etc/profile ログインシェルとして起動されたときに実行される.
~/.bash_profile ログインシェルとして起動されたときに実行される.
~/.bash_login ログインシェルとして起動されたときに実行される.(.bash_profile が読めないとき.)
~/.profile ログインシェルとして起動されたときに実行される.(.bash_profile と .bash_login が読めないとき.)
~/.bashrc ログインシェルとして起動されなかったときに実行される.
~/.bash_logout ログインシェルを終了する前に実行される.

○実行順序
if [ -r /etc/profile ]; then
source /etc/profile
fi

if [ -r ~/.bash_profile ]; then
source ~/.bash_profile
elif [ -r ~/.bash_login ]; then
source ~/.bash_login
elif [ -r ~/.profile ]; then
source ~/.profile
fi

2009年8月5日水曜日

Microsoft Expression Web SuperPreview for Internet Explorer

Internet Explorer のバージョンごとに表示して,レンダリングを確かめられる Microsoft 製のツール.


Internet Explorer 6,Internet Explorer 7,Internet Explorer 8 のレンダリングを確認できる.最近のブラウザ事情からすると,IE については,6〜8まで対応していればいいんじゃないかなと思うので,必要充分じゃないかな.僕は Legna を IE6 と IE7 に対応させるために使用してみて便利だなと感じた.

関連サイト:
Microsoft Download Center: Expression Web SuperPreview for Internet Explorer

ヒラギノを TrueType フォント (TTF) に変換する

Apache FOP で,ヒラギノを使いたいと思ったんだけど,OS 付属のヒラギノは,OpenType フォント (OTF) なので,そのままでは使用することができない.なので,FontForge を使用して,TrueType フォントに変換してみた.これって,ライセンス上どうなんだろう…….まずいかな…….

まずは,いつもの MacPorts を使って,FontForge をインストールする.
$ sudo port -c install fontforge

結構時間がかかるので,先にやっておいてほかの作業を同時進行する.とりあえず,作業ディレクトリを用意して,そこに移動する.
$ mkdir ~/Documents/Fonts
$ cd ~/Documents/Fonts

今回は,ヒラギノ明朝 Pro W3 を変換してみるので,対象のフォントファイルを作業ディレクトリにコピーする.
$ cp /Library/Fonts/ヒラギノ明朝\ Pro\ W3.otf .

fontforge で対象のフォントファイルを開く.
$ fontforge ヒラギノ明朝\ Pro\ W3.otf

こんな画面が出ると思うけど,とりあえず「すべて選択 (A)」をクリックして,「はい (Y)」をクリックする.


このウィンドウが出たら,メニューの CID > 単一化 (F) をクリックする.(CID については,参考文献を参照のこと.)


そうするとこのように,グリフが表示される.Unicode 文字名に対応するかららしい.


最後に,ファイル > フォントを出力 (G)… クリックし,適当な名前をつけ,出力が TrueType になっていることを確認し,保存する.


こんな風に,比較的簡単に変換できる.FontForge を使って,斜体 (Oblique) フォントやボールド (Bold) フォントをつくる方法についてもそのうち説明したいと思う.

参考文献:
小悪魔な林檎♪: OTFからTTFのヒラギノ
FontForge: CID メニューと CID キー指定フォント

追記(2009年8月5日):
Xcode 3.1 が必要だったような気がする.インストールしたのがちょっと前だったので忘れてたけど,なんかメモっぽいのに書いてあった.Xcode 3.1 は,Apple Developer Connection からダウンロードできるよ.

2009年7月29日水曜日

Apache FOP エラー対策

DocBook を試してみていて,XSL-FO プロセッサが必要になったので,Apache FOP を MacPorts からインストールしてみた.FO ファイルから PDF ファイルを作成しようとしたら,次のようなエラーが出たので,その対策についてメモ.
2009/07/29 5:57:56 org.apache.fop.hyphenation.Hyphenator getHyphenationTree
致命的: Couldn't find hyphenation pattern en

なんか,ハイフネーションパターンがライセンスの問題で FOP に含まれていないかららしい.なので,それをインストールすればエラーはでなくなる.インストール手順は次のとおり.

1. Objects for Formatting Objectsからダウンロードする.
2. 解凍する.
3. fop-hyph.jar を /opt/local/share/java/fop/0.94/build/ にコピーする.(0.94というバージョン番号は変化する可能性がある.)

これで,エラーが出なくなる♪日本語を含む PDF を出力する話もしないとな.

関連サイト:
Apache FOP
Objects For Formatting Objects

参考文献:
Red Hat Bugzilla: Bug 479685

2009年7月27日月曜日

Twitter "Follow" Badge を貼ってみた

自分の Twitter へのリンクをバッジとして,ページに貼ることができる.右側のようにね.

GO2WEB20: Twitter "Follow" Badge for your site/blog

説明するまでもないけど,アカウント名とラベル,色,左右,表示ポジションを選択してコードを生成するだけ.あとは,生成された JavaScript を Blogger なら,レイアウト>HTMLの編集>テンプレートを編集の末尾,body終了タグの直前にコピーアンドペーストすればバッジが貼られる.

お試しあれ♪

2009年7月14日火曜日

Cyrus IMAP サーバ OTP エラー対策

Cyrus のエラーを解決するのをあきらめて,UW-IMAP を使ってたりするわけだけど,やっぱり Cyrus IMAP 使いたいよねってことで,エラーに改めて取り組むことに.林檎生活100: Cyrus IMAP Server エラーで書いたエラーとは違うけど,次のようなエラーの対策について.
Jul 14 06:36:32 lucifer imap[752]: OTP unavailable because can't read/write key
database /etc/opiekeys: Permission denied

OTP は,One Time Password のことで,それが有効になっているからこのエラーが出るらしい.なので,imapd.conf(FreeBSD なら /usr/local/etc/imapd.conf になる.)の次の行を有効にすることで,ひとまずは出なくなる.普通に使っているなら,この行はきちんと設定されているような気がするけど.
sasl_mech_list: cram-md5 digest-md5

さて,残りのエラーが問題なんだよなぁ…….

追記(2009年7月14日):
コメントで頂いた解決策について.security/cyrus-sasl2 をインストールする際に,config を OTP=off にすることでこのエラーはでなくなる.たしかに,OTP を使わないのであれば,OTP=off でのインストールという方がクールだね.

参考文献:
雨と樹海とFreeBSDと: Postfixのインストール

2009年7月12日日曜日

Namecheap で格安 SSL 証明書を取得する方法

林檎生活100: OpenSSL で自己署名証明書を作成するで,SSL 証明書を作成したが,きちんとした認証局によって署名された証明書ではないので,ブラウザやメーラからの SSL 接続時に警告が出てしまうという問題がある.

そこで今回は,ほとんどのブラウザで問題なく認証される SSL 証明書の発行サービスである RapidSSL で,SSL 証明書を取得する.この RapidSSL は,本家で$69,日本の正規販売パートナーで3,200円ということで非常に安い.でも,もっと安く済ませるために Namecheap という海外の販売サイトを使用して,$10.95という価格で取得してみることにする.

まず,最初ににやらなければならないことは,証明書署名要求 (CSR) を作成することだ.って偉そうに言ってるけど,SSL の仕組みはちゃんと理解してないので,参考文献にあげた本のとおりのコマンドだw
# cd /etc/mail/certs
# umask 066
# openssl req -new -x509 -nodes -out newcert.pem -keyout key.pem
# openssl x509 -x509toreq -in newcert.pem -signkey key.pem -out csr.pem
# rm newcert.pem

インタラクティブに入力が必要な部分は,自己署名証明書を作成するときと同じ.自己署名証明書と秘密鍵を作って,自己署名証明書から証明書署名要求を作成する.証明書署名要求を作成しさえすれば,自己署名証明書はいらないので削除する.(次の画像は,自己署名証明書を作成する部分のキャプチャ.)


生成された証明書署名要求 csr.pem ファイル中の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを RapidSSL で申請する際に使用する.

ということで,この証明書署名要求をコピー&ペーストできるようにしなければならない.そこで, SSH を有効にして,Mac のターミナルからログインすることにした.まず,FreeBSD 側の設定.
# vi /etc/rc.conf
sshd_enable="YES"(この行を追記する.)
# /etc/rc.d/sshd start

Mac のターミナルからの接続.
$ ssh takuya@192.168.1.254

というかんじ.いずれ,SSH の設定などのエントリを書きたいなぁ.ちなみに,無効化する時の手順はこの通り.
# /etc/rc.d/sshd stop
# vi /etc/rc.conf
sshd_enable="NO"(NO に書き換えるか,行を削除する.)

下準備は整ったので,Namecheap での作業に入ろう.


右側の "Login to your account" の "Signup for a Free Account" をクリックし,新規アカウントを作成する.




ヘッダメニューの "SSL Certificate" の "Low Cost SSL Certificate" をクリックする.


"Rapid SSL" の "Add to Cart" をクリックする.


"DURATION" を必要なら変更し,"UPDATE CHANGES" をクリックし,"Standard Checkout" をクリックする.



支払い方法は,適宜選択のこと.入金した資金から支払うか,直接クレジットカードで支払うかを選択できる.今回は,PayPal 経由で支払いたかったので,上の項目を選択した.


入金されてないので,"Add Funds to your account" をクリックして入金する.


入金の詳細は省略.





支払い完了.


黄色い通知メッセージの "SSL Certificate Page" をクリックする.


"Activate Now" をクリックする.


今回のは Web サーバ用じゃないので,"Other" を選択する.Web サーバ用なら,Web サーバ名に合ったものを選択する.そして,さっき作成した証明書署名要求 csr.pem の "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを貼り付ける.



"CSR Information" を確認し,"APPROVER EMAIL"(承認用メールアドレス)を選択する.届くメールアドレスであれば,好きなものを選んで OK.


連絡先情報を入力する.


申請完了.メールを待って(30分以内には来たはず.),メールに記述されている URL をクリックする.



「承認します」をクリックして,注文を承認する.


注文完了.メールを待って(1日以内には来たはず.),メールに記述されている "-----BEGIN CERTIFICATE REQUEST-----" から "-----END CERTIFICATE REQUEST-----" までを,cert.pem というファイルに記述して保存する.
# cd /etc/mail/certs
# vi cert.pem

CA のルート証明書を取得し,ハッシュ名のシンボリックリンクを作成する.
# cd /etc/mail/certs
# fetch -o cacert.pem http://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer
# ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem`.0

最後に,証明書を検証して,証明書が正しいかチェックする.OK なら csr.pem はいらないので,削除する.
# cd /etc/mail/certs
# openssl verify -CAfile cacert.pem cert.pem
# openssl verify -CApath . cert.pem
# rm csr.pem

以上で,格安の SSL 証明書の取得は完了♪メールサーバにこの証明書を使わせることで,警告は表示されなくなるはずだ.

関連サイト:
RapidSSL
Namecheap

参考文献:
sendmailクックブック―設定と運用のためのレシピ集