トップ(最新) | <前 | 次>

nDiki : 便利

2006年12月14日 (木)

TrueCryptUSB メモリWindowsLinux からアクセスできる仮想暗号化ドライブを このエントリーを含むはてなブックマーク

スポンサード リンク

USB メモリといえば、他人の PC とデータをやりとりする際によく使われるメディアだ。

最近どんどん大容量化していることもあり、ついいろいろなデータを入れっぱなしにしがち。

  • 「ファイルをもらうのに渡した USB メモリを、受け取って確認したら見られたくなかったファイルが入ったままだった。」
  • USB メモリにファイル入れて渡すのだけれど、今入っている見られたくないファイルを消すの面倒だな。後でまた入れておきたいし。」
  • 「紛失した時が心配」

など、そのまま入れておくのは不安なファイルもある。

ということでやっぱりいくつかのファイルは暗号化しておきたい。さて何かよい暗号ソフトウェアはないだろうか。

で調べたところ TrueCrypt が有名らしい。WindowsLinux の両方から使えるというのが良い。

ということで試してみた。

@ Linux

ライセンスの関係で Debian GNU/Linux には無いので、ビルドしてインストールする。

@ ビルド

まずはビルド

 tar zxvf truecrypt-4.2a-source-code.tar.gz
 cd truecrypt-4.2a/Linux
 fakeroot ./build.sh
@ インストール

次にインストール。apt-get install dmsetup してから ./install.sh を実行する。

 # ./install.sh
 Checking installation requirements...
 Testing truecrypt... Done.

 Install binaries to [/usr/bin]:
 Install man page to [/usr/share/man]:
 Install user guide and kernel module to [/usr/share/truecrypt]:
 Allow non-admin users to run TrueCrypt [y/N]: y
 Installing kernel module... Done.
 Installing truecrypt to /usr/bin... Done.
 Installing man page to /usr/share/man/man1... Done.
 Installing user guide to /usr/share/truecrypt/doc... Done.
 Installing backup kernel module to /usr/share/truecrypt/kernel... Done.
@ 仮想ドライブボリュームファイルを作成

ここからは実際の利用。まず最初にボリュームファイルを作成する。

 $ truecrypt -c vol.tc
 Volume type:
  1) Normal
  2) Hidden
 Select [1]:

 Filesystem:
  1) FAT
  2) None
 Select [1]:

 Enter volume size (bytes - size/sizeK/sizeM/sizeG): 128M

 Hash algorithm:
  1) RIPEMD-160
  2) SHA-1
  3) Whirlpool
 Select [1]:

 Encryption algorithm:
  1) AES
  2) Blowfish
  3) CAST5
  4) Serpent
  5) Triple DES
  6) Twofish
  7) AES-Twofish
  8) AES-Twofish-Serpent
  9) Serpent-AES
 10) Serpent-Twofish-AES
 11) Twofish-Serpent
 Select [1]:

 Enter password for new volume 'vol.tc':
 Re-enter password:

 Enter keyfile path [none]:

 TrueCrypt will now collect random data.

 Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]:

 Please move the mouse randomly until the required amount of data is captured...
 Mouse data captured: 100%

 Done: 125.85 MB  Speed: 15.66 MB/s  Left: 0:00:00
 Volume created.

基本的にはデフォルトで OK。確保容量とパスワードはそれぞれ決めて入力する。

@ 仮想ドライブをマウントしてみる

マウントポイントを作成してマウントする。 自分の場合ロケールを ja_JP.UTF-8 にしているので、日本語ファイル名を読み書きするために -M utf8 しておく必要がある。

 cd
 mkdir mnt
 truecrypt -M utf8,fmask=133 -u vol.tc mnt         # マウント
 Enter password for '/home/naney/vol.tc': # パスワード入力

マウントができたら後は普通に読み書きができる。読み書きが終わったら、truecrypt -d でアンマウント。

 truecrypt -l         # マウントされているもののリスト
 truecrypt -d mnt     # アンマウント
@ Windows

Windows 版は truecrypt-4.2a.zip を展開して、中に含まれているインストーラを使ってインストール

TrueCrypt を起動して、先ほど作成したボリュームファイルとつけたいドライブ名を指定してマウントすると、うまく中身を読み書きすることができた。

@ トラベラーモード

また TrueCrypt にはトラベラーモードというものがある。 メニューから [Tools] -> [Traveller Disk Setup] を実行して、指定したいメディア(ディレクトリ)に、インストールせずに実行するのに必要なファイル群を配置することができる(オプションで autorun.inf を作ることも可能)。

これを実行して USB メモリTrueCrypt を入れておけば、TrueCryptインストールしていない Windows PC 上でも TrueCrypt をトラベラーモードで実行してマウントできるようになる (ただし、管理者権限が必要)。

@ これから

母艦である Linux BOX からアクセスできるというのが便利。 Linux BOX に USB メモリを挿した後、truecrypt でマウントして Unison で同期してアンマウントまでの一連の処理を流れ作業でできるようにしたい。

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox


[ 12月14日全て ]

2006年12月15日 (金)

Perl スクリプトを PAR ファイルにして PAR リポジトリに登録する このエントリーを含むはてなブックマーク

PAR リポジトリから Perl モジュールをネットワーク配信するためには、以下の手順で PAR ファイルを作成する。

 perl Makefile.PL
 make
 make test
 perl -MPAR::Dist -e blib_to_par

blib ディレクトリ以下のファイルもとに PAR ファイルが作成されるので、でき上がった PAR ファイルを リポジトリに登録すれば良い(PAR::Repository でビルド済み Perl モジュールをネットワーク配信)。

ではちょっとした Perl スクリプトを PAR リポジトリからロードして使えるようにするにはどうすればよいか。もちろん h2xs などで一式そろえ make して blib ツリーを作るようにすればいいが、たった 1 つのスクリプトファイルだけの時などは大袈裟だ。

この場合は pp でいける。

 echo 'print "hello world!"' > myscript.pl
 pp -o myscript.par -p myscript.pl
 parrepo inject -r /tmp/PAR myscript.par -v 1.00 \
   -a MSWin32-x86-multi-thread -p 5.8.8 \
   --any-arch --any-version

スクリプトのメタデータがないので、parrepo に登録する際に明示的にオプションで指定してあげる必要がある。

-v
プログラムのバージョン番号
-a
アーキテクチャ
-p
Perl のバージョン
--any-arch
アーキテクチャ非依存で動くならば指定しておく
--any-version
任意の Perl のバージョンで動くならば指定しておく。

PAR ファイル(にした Perl スクリプト)が --any-arch で --any-version であっても、-a と -p は必須だ (PAR::Repository の中にアーキテクチャ/バージョンつきで登録された上でシンボリックリンクの形で any 扱いにされるため)。

これで PAR リポジトリからスクリプトを実行できるようになる。 スクリプトの更新もリポジトリ側で行うだけで良くなる。

 perl -e "use PAR { repository => 'http://www.example.com/PAR/',
                    run => 'myscript.pl'}"

お好みで実行形式ファイルにしておけば Perl をインストールすることなく実行できるようになるので便利。

 pp -o myscript.exe -M PAR::Repository::Client \
   -e "use PAR { repository => 'http://www.example.com/PAR/',
                 run => 'myscript.pl'}"

ちなみに PAR リポジトリを使わずに、直接 PAR ファイルを指定して実行できることもできる。

 perl -e "use PAR { file => 'http://www.example.com/myscript.par', \
                    run => 'myscript.pl' }

ちょっとした用途ではこちらでも良いけれど、アーキテクチャ別の管理やらモジュールの管理やらを考えると PAR リポジトリを作ってしまった方が楽。


[ 12月15日全て ]

2006年12月16日 (土)

USB メモリへのポータブルアプリケーションの詰め込み開始 このエントリーを含むはてなブックマーク

一昨日購入した USB フラッシュメモリに、ポータブルアプリケーションを詰め込んでいく。

@ PStart

まずはランチャとして有名どころの PStartインストールGNU GPL な ASuite と迷ったがまずは PStart にしてみた。

@ 追記

ASuite 1.3.1 も試してみたが、日本語がうまく表示されなかった(2006年12月18日)。

@ UnplugDrive Portable

USB メモリなどを安全に停止しするためのツール。 PStart を終了させる際に自動的に呼び出すように設定しておけば、「ハードウェアの取り外し」よりも手軽に USB メモリを抜ける状態にできる。 半透明ダイアログで表示するなど、見た目的に格好良い。

1度使うとクセになる便利さ。

@ 暗号化

先日試してみた TrueCrypt をトラベラーモードで入れておく。


[ 12月16日全て ]

2006年12月20日 (水)

NSIS 2.22 は Linuxビルドできず このエントリーを含むはてなブックマーク

Windows 用のインストーラ作成ツール NSIS は、スクリプトベースでインストーラを作っていくのが1つの特徴である。 NSIS スクリプトは、さすがインスーラ作成用だけあって

  • ファイル処理 (コピー、削除、……)
  • レジストリの読み書き
  • プログラムの実行

その他システム関連のコマンドが充実している。 コンパイルするとかなりコンパクトな実行形式ファイル (EXE) を生成してくれるので、ちょっとした処理を自動化するには便利である。

今回 USB メモリに入れておいて、そのドライブ上のいくつかのディレクトリに PATH が通った状態でコマンドプロンプトを開くツールを NSIS で書いておこうかと思って試す。

NSISPOSIX ベースシステムでビルドし実行でき、NSIS スクリプトをコンパイルできる。 ということで作業を Linux で作業をしていたのだが、どうやら System::Call が使えないようだ(スクリプトのコンパイルに失敗する)。

Debian パッケージが古いせい (2.19-1.1) かと思い、ソースパッケージビルドしてみたらまさに System 関連らしいところでコンパイルがこけている (そういう背景で Debian パッケージアップデートされていない?)。

ということでどうも最新の NSISLinux では駄目っぽい。

しょうがないので久しぶりに Wine

Wine 上に NSIS 2.22 をインストールして makensis.exe を実行してみたところ試した範囲ではうまく動いている。 ついでにでき上がった実行可能ファイルWine 上で試せる。

しばらくは Wine 上で NSIS スクリプト書きを楽しむことにしよう (最終的には Windows 上でコンパイルしなおして動作確認するのだけれども)。


[ 12月20日全て ]

2006年12月25日 (月)

クリスマスプレゼントに「はらぺこあおむし」のペンスタンドをいただいた このエントリーを含むはてなブックマーク

naney:332755416

研究開発チームのメンバの1人から、クリスマスプレゼントをいただいた。 誕生日プレゼントのお返しということらしい。感謝。

ステーショナリー好きということを知ってか、はらぺこあおむし (The Very Hungry Caterpillar)のペンスタンドだ。素敵。ナイス。

大仏に魅かれて「プラレール 江ノ電 海の見える旅セット」をチョイスしてしまった自分とは大違いだ。

デスクの上に転がっている常用ボールペンを指しておくのにとても便利。

「可動部はないの?」 -- ぐらさん

ソコ。すぐにそういう方面に走らないように。

image:ASIN:4033280103


[ 12月25日全て ]

2007年1月5日 (金)

USB コネクタの向きを変えるアダプタ サンワサプライ AD-3DUSB8 このエントリーを含むはてなブックマーク

naney:346523131

年末に買ったポータブル HDD HDMC-U12 であるが USB コネクタの向きに自由度がないため、ノート PC への直挿しは(ほとんどの機種で)無理がある。

このため延長ケーブル等を使うのが無難そうだ。 ということで、短い USB 延長ケーブルを買いにいったのだが、サンワサプライ3D USB アダプタ (AD-3DUSB8)というのが目についたので、こちらをチョイスしてみた。

3軸で回転できるので向きの変更の自由度が高い。

と思って ThinkPad X31 に挿したところ……どうがんばっても HDMC-U12 が逆さまになる形にしか挿すことができない。 可動域が 180°/180°/90°なため、任意の向きにできる訳ではないのである。 この向きだとアクセスランプが見えないため、イマイチな状態。

回転もちょっと渋く、いろいろな環境でフレキシブルに使うには今一歩という出来である。 コネクタを曲げたい向きとマッチすれば便利なのかもしれない。


[ 製品レポート ]


[ 1月5日全て ]

2007年1月6日 (土)

connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 このエントリーを含むはてなブックマーク

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また UnisonSubversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事Subversion の記事)。

しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。

調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。

 [クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
                                 gw.example.com    192.168.1.x

@ インストール

Debian なので apt-get で。

 apt-get install connect-proxy

@ SSH の設定

~/.ssh/config に以下の行を追加。

 Host 192.168.1.*
   ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p

192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。

@ SSHSOCKS サーバにする

autossh を使って SSHSOCKS サーバを立てる

 autossh -N -f -D8090 gw.example.com

これで準備 OK。

@ 使ってみる

@ SSH 接続
 ssh 192.168.1.x

で接続を確認。

@ Konqueror (KDE)
 fish://192.168.1.x/

で直接ブラウズ、読み書き可能なことを確認。

@ Unison

普通に 192.168.1.x と同期できることを確認。

@ CVS

普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認

@ Subversion

普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に

 FATAL: output (local) failed, errno=32

というエラーがでる。

@ 便利

Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。

これでかなり手軽に接続、転送できるようになった。 便利、便利。

@ 追記 (2009年2月23日)

一時的に connect.c を通らないで直接接続する際には 'ssh -o ProxyCommand=none' とする。

 例:
 SVN_SSH='ssh -o ProxyCommand=none' svn update

[ 1月6日全て ]

2007年1月26日 (金)

EasyPG で Emacs から .gpg ファイルを透過的に読み書き このエントリーを含むはてなブックマーク

パスワードを含むアカウント情報などは今のところ、テキストファイルに書いて GnuPG暗号化して記録している。 ……のはずなのだが、面倒なので GnuPG かけてないファイルも結構あったりして実はまずい。

Emacs で EasyPG を使うと gpg 拡張子を持ったファイルは自動的に暗号化/復号化してくれるようになって便利らしい。

例えば example.gpg という名前で新しいバッファを作りテキストを入力する。 ここで保存しようとすると暗号化する相手の鍵の選択画面が出る。自分の鍵で復号できればよいのでそのまま [OK] を選ぶ。 そうすると暗号化して保存してくれる。

逆に .gpg で終わるファイルを開くとパスフレーズの入力が求めらる。 正しく入力すると復号化されたテキストがバッファに表示される。 再編集して保存する場合も先と同様に暗号化の手順が出るので、また暗号化した状態で保存することができる。

easypg-0.0.9-1 Debian パッケージインストールして使ってみた。 便利便利。

ただ emacs-snapshot 20070122-1 (22.0.92.1) だと暗号化の際 coding の処理が正しくされないのか日本語を含んでいると文字化けしたテキストが暗号化されてしまい、復号化してももはや読むことができない。 ということで、ここしばらく Emacs 22 を使っていたのだけれど、Emacs 21 に戻すことにした。

こちらでは問題なく動作。


久しぶりに SSH の新しい鍵を作成し、複数利用できるように設定 このエントリーを含むはてなブックマーク

仕事であるサーバへアクセスするのに、 SSH公開鍵を送るように頼まれた。 そういえば今までずっと同じ鍵を使い続けていたけれど、いちおうこういのは管理上分けておいた方がいいかもしれない。

ということでかなり久しぶりに鍵を作成。5年ぶりぐらい?

@ 鍵の作成

 ssh-keygen -C <メールアドレス> -f id_rsa.hogehoge

@ リモートホストの authorized_keys への登録

手元のいくつかのサーバも新しい鍵を使えるように authorized_keys に追加しておく。 ssh-copy-id コマンドというものを今回初めてしった。 リモートホスト上の ~/.ssh/authorized_keys に、ローカルホストから直接公開鍵を追加することができる。こんな便利なものがあったとは。

 ssh-copy-id -i ~/.ssh/id_rsa.hogehoge naney@サーバ名

@ config への登録

デフォルトとは異なる新しい名前で作ったこの鍵もリモートホストへの接続に使えるようにするため、ローカルの ~/.ssh/config に設定を追加しておく。

 IdentityFile ~/.ssh/id_rsa.hogehoge

@ keychain への追加

それと ~/.profile の中で呼んでいる keychain の引数にも ~/.ssh/id_rsa.hogehoge を追加。


[ 1月26日全て ]

2007年1月31日 (水)

BBモバイルポイントを使ってみた このエントリーを含むはてなブックマーク

そういえば今契約しているプロバイダでは、ソフトバンクテレコム提供している公衆無線 LAN サービスBBモバイルポイント」を2007年3月31日まで無料で利用できるようになっている。

マクドナルドにきたついでに、接続してみた。 最初に近くの違うアクセスポイントにつながってしまったというミスはあったものの、無事接続。

新幹線の待ち合い室などで使えるので、無料期間中にいろいろ試して便利かどうか確認してみたい。


[ 1月31日全て ]

2007年2月2日 (金)

DiKickergrep 検索機能を追加 このエントリーを含むはてなブックマーク

DiKicker には自動リンクベースの記事串刺し表示機能があって、同じキーワードを含む記事をまとめて読むことができる。 結構便利なのだが、この機能ではキーワードの設定は Blog の書き手に委ねられている。

社内で DiKicker を一部使ってもらっているのだけれども、それら他人の Blog を読んでいると「あのキーワードで串刺し表示したいな」と思うことがしばしばあることに気がついた。 やはり任意の文字列で串刺し表示する機能が欲しい。

書き手にとっても「自動リンクキーワードにするような文字列ではないけれども、串刺しで読みたい/探したい/見せたい」と思うことが少なからずある。

ということで、検索ベースの串刺し表示機能を実装してみた。

@ grep ベース

実現には全文検索を行う必要があるが「設置・運用の手間」「ディスク容量」という点から、事前にインデックスを生成するような方法は今回は避けようと思う (www.naney.org 上で自分が使う上での制約からくる理由が一番大きかったりする)。

ということで今回は grep 型で実装することにした。 もともと WiKicker の方の検索機能も現在のところ grep 型である。 WiKicker では自前で WikiPage をスキャンしているが、DiKicker では grep コマンドに任せることにした。 こういうのは専用の grep を使った方が速いはず。呼び出しは

 grep -Flre $escaped_string dir...

というオプション指定。Web ページとしてのページングなどは、自動リンクによる串刺し表示機能のものを流用。

で試したところ www.naney.org サーバでは、load averages が 1 以下の時でだいたい50秒前後。対象ファイル数は 2800弱。予想より時間がかかる。

ただし1回実行した後、ファイルがファイルシステム/OSメモリ上にのっている状態では 0.1秒程度で完了する。

検索結果ページの permalink が検索エンジンにそれなりに捕捉されて、定期的にアクセスがあるようになれば、ファイルがメモリにのっている割合が増えるであろうから平均して実用に耐えられる速度が出るかもしれない。

今後は様子をみながら検索結果のキャッシュ等を処理を整備していく予定。


[ 2月2日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.261887s / load averages: 2.21, 2.64, 2.19
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)