最近では情報漏洩などが問題になっていたり、仕事上でデータに気を遣わないといけないことが多くなりましたね。私もUSBメモリやノートPCをよく持ち運んでいるので、仕事上まずいファイルを少しづつ暗号化しようと少し試してみました。Linuxにも暗号化ファイルシステムが用意されていて、割とお手軽に使えそうなのでメモ。
Linux上でファイルシステムやフォルダを暗号化する方法はいくつかあります。それぞれ使い勝手が異なりますが、cryptmountは割とわかりやすくストレートな方法です。GUIはありませんが逆に他のツールと組み合わせが楽そうです。またswapファイルや起動時にマウントさせることも出来ます。まあパフォーマンス的にどうかとは思うものの面白いです。試したのはUbuntu Gutsyです。
cryptmountのmanページはわかりやすく、使い方のメモのつもりがほとんどmanの訳になってしまいました...
- インストール
sudo apt-get install cryptmount
- モジュールのロード
sudo modprobe dm-mod
- ファイルシステムの準備
パーティションを一つ準備するか、パーティション代わりにする大きめのファイルを用意します。
dd if=/dev/zero of=cryptfile.fs bs=1M count=100MB
- 設定ファイルを準備
/etc/cryptmount/cmtabを以下のような内容で作成。hdc1はファイルでも可。cipherはデフォルトがaesらしいのでそのままでもいいかも。opaqueはこの暗号化ファイルシステムの名前になります。
opaque {
dev=/dev/hdc1 dir=/home/crypt
fstype=ext3 fsoptions=defaults cipher=twofish (デフォ:aes)
keyfile=/etc/cryptmount/opaque.key
keyformat=builtin
}
- キーの作成
sudo cryptmount --generate-key 32 opaque
- デバイスの用意など
sudo cryptmount --prepare opaque
これで/dev/mapper/opaqueが準備されます
- ファイルシステムの準備
mke2fs -j /dev/hdc1
sudo cryptmount --release opaque
- マウント
mkdir /home/crypt
- 使い方
マウント: cryptmount -m opaque
アンマウント: cryptmount -u opaque
このままでは毎回modprobeが必要になるので/etc/modulesにdm-modを追加。
私は試していませんが/home全体を暗号化したい場合やスワップファイルを暗号化したい場合/etc/defaults/cryptmountにファイルシステムや、スワップなどを指定出来るようになっています。
nautilusをお使いの方は、[ファイル]->[スクリプト]で開くフォルダにcryptmount -m <fsname>とかアンマウントする一行スクリプトを入れておけば手軽にマウント出来るかもしれません。
少し使った限りでは不安定な動作はなくいい感じのようです。特にUSBメモリでは比較的安全に持ち歩けて安心ですが、抜き差し時にはアンマウントが必要なのでご注意。ほかにはLinuxとWindowsとで暗号化したファイルシステムを共用できるTrueCryptやencfsを利用してユーザインターフェースが良さそうなconceal (crypt-manager)なんかが良さそうです。