Hatena::ブログ(Diary)

QT:くろぶろぐ東京編 このページをアンテナに追加 RSSフィード

2007-08-08

[] 早く言ってよ! 22:57  早く言ってよ!を含むブックマーク

D

感動した!

※ 追記:長袖の服には適用できないという脆弱性を発見した!><

トラックバック - http://d.hatena.ne.jp/qloopy/20070808

2007-08-07

[][] アドエスMacGoogle と Mac と アドエスと 23:50  アドエスと Mac と Google と Mac と アドエスとを含むブックマーク

アドエスと Mac

前使ってたエス(WS007SH)の時からの問題として、「Windows + Outlook が無いと、PC と ActiveSync する意味がほとんど無い」というものがあります。僕は Windows ユーザだけど Outlook(というか MS Office 製品)を持ってないので、まさにこの状態。

Windows と違って Mac には始めから使いやすいスケジューラ(iCal)もアドレス帳(アドレスブック)も用意されています。そうなると、Mac と Windows Mobile の同期ができればうれしいですよね。すばらしいことに、ちゃんとそういう製品があります。

f:id:qloopy:20070807224610p:image:w320:rightMissing Sync for Windows Mobile というのがそれ。Mac + PDA なユーザには有名というか、他に良い選択肢がないというか。

とにかくコレさえあれば Mac と W-ZERO3 が双方向に同期できます。アドレス帳やスケジュール以外にもいろいろ同期してくれますが、多すぎて意識して使ってません。

強いて言うならアドエスの時計を Mac に合わせてくれるのが便利ですね。Mac はデフォルトNTP での時刻補正をサポートしているので、アドエスの時計も正確さを保てます。

先のリンク先は英語のサイトですが、製品はちゃんと日本語表示をサポートしてます。国内ではミヤビックスとかが扱ってるんですが、Windows Mobile 6 に対応した最新版のバージョン4はまだ取り扱いが無いようなので今回は本家で購入しました。ちなみにお値段は $39.95。得られる利便性からすれば激安だと思います。

Mac と Google カレンダー

基本的に、僕は仕事のスケジュールを職場のグループウェアで管理してます。でもイントラネットからしか見れないので、出先や家で確認したり追加/削除したりすることができません。

そこで、グループウェアのスケジュールをいじるのと同時に Google カレンダー(長いので以下「gCal という」)にも登録したりして、とりあえず家でも自分のスケジュールを確認できるようにしています。

(ホントはグループウェアと gCal が自動で同期してくれれば楽なんだけど。システムの制約上仕方なくそうしてます。)

gCal の UI も良くできてますが、やっぱり iCal の方が使いやすいのでこれらを同期したい。一応、gCal の各カレンダーは iCalendar 形式でデータを公開できるので、これを iCal に読み込ませれば「gCal ビュアー」として使うことはできます。でもこれでは iCal 側から gCal のデータを編集することができないのでちょっと違う。

f:id:qloopy:20070807232233p:image:w320:rightそこでまたまた出てくるのが、gCal と iCal を双方向に同期してくれる Spanning Sync です。なんか名前がさっきと似てますが全く関係ありません。

インストールして初期設定をすると、常駐して定期的に gCal と iCal の同期を取ってくれます。これでこの問題も解決。お値段は年間 $25、または永久 $65。Missing Sync と比べると割高感が・・・しかし、これまた他に良いツールがまだないので甘んじて受け入れることにしましょう。

Mac と Gmail のアドレス帳?

ちなみに、Google(Gmail)とアドレス帳を同期することはやってませんし、そのための良い方法があるのかどうかも知りません。

そもそもアドレス帳の中身は電話番号とケータイメアドが主体なので、ケータイ以外から利用することが無いからです。Mac とアドエスを同期するのはバックアップとしての意味合いが強い。

一括でデータを編集したりするときには Mac でやった方が圧倒的に楽というメリットもありますが、どちらにせよ Mac でこのアドレス帳のデータを使って何か生産的なことをする、ということはほとんどありません。それは Gmail のアドレス帳が Mac やアドエスと同期されたとしても同じ事です。

で、アドエスと Google カレンダー

もうお気づきでしょうが、ここまでやると、Google カレンダーが(iCal 経由で)アドエスの予定表と双方向に同期されます。Mac がデジタルハブとしての役割を担っているわけです。なんか Mac は気がつくとこういうポジションにいることが多い。iPodiTunes の関係なんかも似てますよね。

話がそれましたが、実はアドエスと gCal を直接同期しようとするとなかなか難しいのです。そういうツールも沢山フリーソフトシェアウェアで出てはいます。でもいまいちコレと言うものが無い。

POsync っていう国産のフリーソフトがかなり良い線行ってます。でも同期作業を手動で、しかもカレンダーの数だけやらないといけないのがそれなりにメンドイ。他のツールは同期できるカレンダーが1個だけとか動作が不安定とか。

それだったら、今回の方法で半自動(普段はアドエスを Mac に USB 接続するだけ!)で同期できた方が便利。出費も全部で1万円程度になりますが、アドエスが本格的に PIM として使える事に魅力を感じるならオススメの方法です。

そんな感じで、僕的アドエスライフのご紹介でした。

[] おまけの Mac Tips 23:50  おまけの Mac Tipsを含むブックマーク

今日の記事を書いていて、「グラブ」でウィンドウをキャプチャしたら TIFF でしか保存できず困ったことに。はてダというかはてなフォトライフに画像をアップしようとすると別の形式に変換しないといけないのです。

Photoshop Elements も入れてないし今から入れるのメンドイし、なんか良い方法ないかなーと思ってググったら見つけたのがこれ。

複数ファイルを「フォルダアクション」で一括変換する(Apple Fan Beginner)

Mac OS X ではフォルダに特殊な機能を設定できるんですね。デフォルトで用意されているアクションに PNG に変換するものがあったので、それを使ったらあっという間にできました。こんな便利な機能を今まで知らずにいたなんて・・・。

トラックバック - http://d.hatena.ne.jp/qloopy/20070807

2007-08-05 じめじめ。

天気は良いのに洗濯物が乾かない・・・。

[] アドエス機種変 15:38  アドエスに機種変を含むブックマーク

f:id:qloopy:20070805150512j:image:w320:left Advanced/W-ZERO3 [es] って長過ぎませんかマツケン社長。しかももう WS011SH になってしまいましたけどいつまで "ZERO3" で行くのか。

そんなわけでつい換えてしまいました。しばらく静観するつもりでしたが、あまり悪い評判は聞かないし在庫もあったので。2年目にしてウィルコム3台目。

今のところ "9" との2台持ちです。でもアドエスのサイズならどうにかこれ1本でいけるかなと思ってます。まだメールの設定とかで悩んでてすぐには切り替えられない感じですが。別アドレスで受けて転送してたりするからややこしい。

今回、噂の W-VALUE SELECT で契約しました。24ヶ月分割払いで月額料金割引と故障・水没・盗難時の保証が付いてくる買い方。途中で機種変したり解約したりするとその時点で残りの代金を一括で支払わないといけないし、割引もそこで終わってしまうのです。そうは言ってもたぶん途中で換えちゃうんだろうな・・・。

トラックバック - http://d.hatena.ne.jp/qloopy/20070805

2007-07-21 うー。

なんか最近家にいても何もする気が起きないなぁ・・・。早くも夏バテかなぁ。肉もウナギも食ったのに。

[] 保守ドライブ 22:37  保守ドライブを含むブックマーク

たまには動かさないとと思って3週間ぶりくらいにクルマに乗った。案の定ブレーキディスクは真っ茶色。エンジンかけたらアイドリングが不安定・・・というより、自動空ぶかし状態で 1,000〜3,000rpm くらいを行ったり来たり。エンジンを切って掛け直しても直らないし、しょうがないからそのまま出発したら信号待ちが恥ずかしいのなんの。

しばらくそのまま走っていたら、なんか「ガンガン走りたいのに3週間もほっときやがって!」ってクルマがウズウズしてるような気がしてきた。試しにVTEC発動まで引っ張ってみたら、その後は嘘のように落ち着きました。さすが走りの遺伝子タイプR・・・。

ちっちきちぃちっちきちぃ 2007/07/24 05:23 来週あたり、行っちゃう?

qloopyqloopy 2007/07/27 00:06 行っちゃいましょう〜。

トラックバック - http://d.hatena.ne.jp/qloopy/20070721

2007-07-08

[] FreeBSD 6.2 + OpenVPN 2.0.6 で VPN 構築 00:19  FreeBSD 6.2 + OpenVPN 2.0.6 で VPN 構築を含むブックマーク

ここ半月くらいいろいろやってみて、とりあえずつながるようになったのでメモ。

検証した環境

(あとで図を作って貼りマス。)

  • OpenVPN クライアント
    • OS : FreeBSD 6.2-RELEASE
    • PC : 自作 AT 互換機
    • 備考
      • CATV 接続。DHCP。
      • ブロードバンドルータ(NAT)2段経由でインターネットに接続。
  • 共通
    • OpenVPN
      • tun or tap : tap
      • TCP or UDP : TCP

tap デバイスbridge デバイスの準備

VPN サーバは、VPN のセッションを張るのはもちろんですが、VPN と実際のローカルネットワークとのブリッジも構成する必要があります。FreeBSD にはカーネルの機能として tap デバイス(仮想ネットワークインターフェース)と bridge デバイスが実装されているのでこれを使います。

# kldload if_tap
# kldload bridge

とやると、それぞれ tap デバイスと bridge デバイスを使うためのカーネルモジュールがロードされます。

# kldstat
Id Refs Address Size Name
1 10 0xc0400000 6f6544 kernel
2 1 0xc0af7000 42e8 if_tap.ko
3 1 0xc0afc000 3f7c vmxnet.ko
4 1 0xc0b00000 80b0 bridge.ko
5 1 0xc0b09000 59f20 acpi.ko
6 1 0xc23df000 16000 linux.ko

こんな感じで(これはうちの例)if_tap.ko と bridge.ko が読み込まれていることを確認します。

さらに、

# sysctl net.link.tap
net.link.tap.debug: 0
net.link.tap.user_open: 0
# sysctl net.link.ether.bridge
net.link.ether.bridge.config:
net.link.ether.bridge.enable: 0
...

のような感じで、"unknown ..." というエラーにならずにそれぞれのステータスっぽいのが表示されれば正常に動作しています。ここまで確認できたら、/boot/loader.conf に、

if_tap_load="YES"
bridge_load="YES"

の2行を追加します。これで、OS の起動時に自動的にこれらのモジュールがロードされるようになります。

OpenVPN のインストール

OpenVPN の動作には、OpenSSH が必要です。また、LZO という圧縮ライブラリを入れておくと通信に圧縮をかけることができます(LZO は無くても動作可)。

僕の環境には portupgrade がインストールされているので、portinstall で入れてしまいました。普通に /usr/port 以下で make install clean するもよし、tar 玉を取ってきて ./configure; make; make install するもよし、です。

ちなみに、この作業はサーバ、クライアントとも共通です。

# portinstall openssl
# portinstall lzo
# portinstall openvpn

暗号鍵の準備

インストールが完了すると、/usr/local/share/doc/openvpn/ というディレクトリができて、その中に設定ファイルのサンプルや鍵生成ツールが入っています。

まず、/usr/local/share/doc/openvpn/easy-rsa に行って鍵の準備をします。

# cd /usr/local/share/doc/openvpn/easy-rsa
# vi vars

vars の中身は以下のようにします。

export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export KEY_SIZE=1024
export KEY_COUNTRY=JP
export KEY_PROVINCE=Tokyo
export KEY_CITY=Tokyo
export KEY_ORG="VPNSV-Test"
export KEY_EMAIL="root@vpnsv.example.net"

見てのとおり、これは環境変数を設定するためのシェルスクリプトです。

KEY_COUNTRY とか KEY_PROVINE とかは証明書や鍵に埋め込まれる住所を書きます。個人的に使うものなので適当でも問題ありません。

認証局証明書

# /bin/sh
# . ./vars
# ./clean-all
# ./build-ca

build-ca を実行するとなにやらつらつらとメッセージが出てきて、プロンプトが出て止まります。証明書に埋め込まれる住所を聞かれるのですが、先ほど vars ファイルに設定した値がデフォルト値として設定されているので、何も入力せずに Return キーを押して進めていきます。

ただし、

Common Name (eg, your name or your server's hostname) []: VPN_CA

だけは入力する必要があります。何でもかまいませんがそれっぽい名前を付けておきましょう。

サーバ証明書

# ./build-key-server server

これも先ほどと同じようにメッセージが出て、プロンプトで止まります。Return キーで進めて、

Common Name (eg, your name or your server's hostname) []: VPN_SERVER

だけ入力しましょう。

DH パラメータ

なんだかよくわかりませんが、Diffie Hellman パラメータというのが必要なんだそうです。これを生成します。

# ./build-dh

デフォルトだと 1024bit 長のパラメータが生成されるはずです。これはいまどきの PC ならすぐ終わりますが、設定を変更して 2048bit とかにすると数十分〜数時間かかるそうです。これは何も聞かれること無く完了します。

クライアント証明書

# ./build-key-pass client

今度は、まずパスフレーズを聞かれるところで止まりますので入力してください。これは、クライアントがサーバに接続を開始するときに入力するパスワードになります。

Enter PEM pass phrase: p@ssw0rd
Verifying - Enter PEM pass phrase: p@ssw0rd

住所の入力はデフォルトで進めて、例の Common Name を入力。

Common Name (eg, your name or your server's hostname) []: VPN_CLIENT

さらに、challenge password というのを聞かれますが、これは空白でもかまいません。というか僕は空白で進めたのでこれを入力すると運用時にどこで入力させられるのかわかりません。

なお、クライアントを複数接続したいときは、その分だけクライアント証明書が必要です。build-key-pass の引数と、Common Name の値を適当に変更して必要なだけ生成してください。

OpenVPN サーバの設定

server.conf

鍵ができあがったら、次に OpenVPN サーバの設定をします。/usr/local/share/doc/openvpn/sample-config-files/ 以下に設定ファイルのひな形がありますので、この中から server.conf をコピーして使います。

その前に、設定ファイルをおく場所を作っておきましょう。別にどこでもいいのですが、僕は /etc/openvpn/ にしました。

# mkdir /etc/openvpn
# cp /usr/local/share/doc/openvpn/sample-config-files/server.conf /etc/openvpn/
# mv /usr/local/share/doc/openvpn/easy-rsa/keys /etc/openvpn/

とディレクトリを作成した後ひな形をコピーします。ついでに鍵ファイルも /etc/openvpn/keys/ に移動しました。

今回設定した server.conf の中身はこんな感じです。

# 待ち受け TCP/UDP ポート
port 1194

# TCP と UDP どっち使う?
proto tcp

# 仮想 NIC は TAP か TUN か
dev tap

# 証明書、鍵ファイルのありか
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key

# Diffie hellman パラメータファイルのありか
dh /etc/openvpn/keys/dh1024.pem

# VPN クライアントに割りふった IP アドレスを覚えておくファイル
# ちょっと切れた後再接続したときなんかは、
# このファイルをみて同じクライアントには同じ IP アドレスを振ってくれる
ifconfig-pool-persist ipp.txt

# ブリッジする IP アドレスの設定
# server-bridge [サーバ側の仮想 NIC の IP アドレス] [ネットマスク] [VPN クライアントに割り振るアドレス範囲の先頭] [同アドレス範囲の末尾]
server-bridge 192.168.2.250 255.255.255.0 192.168.2.240 192.168.2.249

# DHCP サーバ機能で VPN クライアントに割り振る IP アドレスを
# 決め打ちにしたいときにその設定を書くファイルの置き場
client-config-dir ccd

# クライアント同士の通信を許可する
client-to-client

# キープアライブ。
# この設定では 10 秒おきに ping を打って、
# 120 秒間相手から反応がなかったら切断されたと判断して
# 再接続なりなんなりする。
keepalive 10 120

# lzo ライブラリを使って圧縮する
# lzo ライブラリがない場合は設定しない
comp-lzo

# なんだろこれ、よくわかんない
persist-key
persist-tun

# ステータスログファイル
status openvpn-status.log
# ログレベル。通常は 3 でいいみたい
verb 3

# デーモンがスタートしたときにブリッジを up させるスクリプト
up /etc/openvpn/bridge-up.sh

# デーモンがストップしたときにブリッジを down させるスクリプト
down /etc/openvpn/bridge-down.sh

最後に bridge-*.sh というのが出てきますが、これを設定しておくと、OpenVPN のデーモンが走るときと止まるときに自動的にネットワークブリッジを up/down してくれます。

bridge-up.sh

#!/bin/sh

/sbin/ifconfig tap0 inet 192.168.2.250 netmask 255.255.255.255 up
/sbin/sysctl -w net.link.ether.bridge.enable=1
/sbin/sysctl -w net.link.ether.bridge_cfg="lnc0 tap0"

bridge-down.sh

#!/bin/sh
/sbin/sysctl -w net.link.ether.bridge.enable=0
/sbin/sysctl -w net.link.ether.bridge_cfg=""

あと client-config-dir ccd を作っておきます。

# mkdir /etc/openvpn/ccd

これはどういう風に使うかというと、たとえば次のようなファイルをこのディレクトリに入れておきます。

/etc/openvpn/ccd/CLIENT1

ifconfig-push 192.168.2.253 255.255.255.0

すると、証明書に CLIENT1 という名前を付けたクライアントが接続したときは、そのクライアントの IP アドレスの設定は常に 192.168.2.253/24 になります。VPN クライアントに何らかのサービスをさせるため、IP アドレスを固定したいときに便利です。

あとはクライアント側・・・

続きはまた気が向いたときに〜。