LUKS を使って Linux と Windows の両方から読み書きできる暗号化ボリュームを作成する

| トラックバック(0)

ファイルのオーナやパーミッションの情報を含め、Windows (とりあえず Windows XP かな) と Linux (最近のカーネル) で共有できる暗号化ボリュームを作成する。

  1. Linux: LUKS で暗号化ボリュームを作成する。
  2. Windows: FreeOTFE でマウントして NTFS でフォーマットする。
  3. Linux/Windows: ユーザマッピングを作成する。
  4. Linux: ntfs-3g を更新する。
  5. Linux: 暗号化ボリュームを NTFS としてマウントする。

※ここには手順の概略しか書いてないので、詳細は自分で確認してください。また、これを試したことで大事なデータを失ってもわたしは一切責任を持てません。

ファイルのオーナやパーミッションの情報を含め、Windows と Linux で共有できる暗号化ボリュームを作成する。

1. Linux: LUKS で暗号化ボリュームを作成する。

1.1. cryptsetup をインストールする。LUKS に対応したものであること。

  # apt-get install cryptsetup
あるいは
  # rpm -ivh cryptsetup-luks
など

1.2. 適当なディスク (以下 /dev/sdb) を設置する。

1.3. 不良ブロックの検査をする。

  # badblocks -c 10240 -s -w -t random -v /dev/sdb

1.4 (optional). ディスクをランダムデータで埋める (やりたければ)。

  # dd if=/dev/urandom of=/dev/sdb

1.5. 暗号化ボリュームにするパーティション (以下 /dev/sdb1) を切る。システムタイプは Linux にしておく (が、たぶんなんでもいい)。

  # fdisk /dev/sdb
  パーティションを作成して保存

1.6. パスフレーズを考える。20文字以上であること。スペースが入ってもよい。

1.7. /dev/sdb1 を LUKS ボリュームにする。

  # cryptsetup --verbose --verify-passphrase いろいろなオプション luksFormat /dev/sdb1
  「YES」(大文字) で確認してパスフレーズを入力して再度パスフレーズを入力

1.8. テスト。

  # cryptsetup luksOpen /dev/sdb1 luks1
  パスフレーズを入力

device-mapper によって、/dev/mapper/luks1 が作成される (他の場所に作成されるかもしれない)。

2. Windows: FreeOTFE でマウントして NTFS でフォーマットする。

2.1. FreeOTFE をインストールする。

2.2. FreeOTFE を起動し、メニューの [File]-[Linux Volume]-[Mount Partition] を選択。

2.3. パーティションを選択する。/dev/sdb1 は 2 番のディスク (Disk #1) の最初のパーティション。

2.4. パスフレーズ (1.6. 参照) を入力する。マウントするドライブ (以下 Z:) を選択する。

2.5. マウントする。

2.6. エクスプローラで Z: ドライブを選択し、NTFS でフォーマットする (クイックフォーマットでよい)。

2.7. テスト。Z: ドライブにファイルやディレクトリを作ってみる。

3. Linux/Windows: ユーザマッピングを作成する。

Windows の場合を示す。

3.1. ntfs-3g サイトから usermap ユーティリティをダウンロードする (4. で作成する ntfs-3g にも同梱されている)。

3.2. 暗号化ボリュームをマウントする (2.2.-2.5. 参照)。

3.2. コマンドラインプロンプトを起動し、usermap.exe を実行する。

  C:> usermap.exe Z:

いろいろ聞かれるが、最後の「ログインしているユーザ」の質問に自分の Unix ユーザ名、「グローバルグループを作るか」の質問に「y」を答えておけばよいだろう。

3.3. Z:\.NTFS-3G\UserMapping を適当に修正する。こんなふうにする:

  # Generated by usermap for Windows, v 1.1.0
  :users:S-1-5-21-2991617172-3329320597-2066345473-513
  nezumi:nezumi:S-1-5-21-2991617172-3329320597-2066345473-1008

4. Linux: ntfs-3g を更新する。

ntfs-3g の現在の安定版 (1.5130) はユーザマッピングに対応していない。対応するまで待つのが安全かもしれない。

4.1. 念のため、つぎのものを用意しておく。

  • ntfs-3g (および libntfs-3gXX が必要ならそれも) の現在のバイナリパッケージ。

4.2. 自分のインストールしているディストリビューションに ntfs-3g-1.5130AR.X があれば、それをインストールする。ないか (ないものが多い)、特定のディストリビューションを使わず Linux を自力でビルドしているのなら、Advanced NTFS-3G Features のページから ntfs-3g-1.5130AR.X をダウンロードし、ビルドし、インストールする (deb でパッケージ化したものがここにあるようだが動作は保証しない)。

4.3. リブートする。正常に起動することを確認する。

5. Linux: 暗号化ボリュームを NTFS としてマウントする。

5.1. 暗号化ボリュームの設置。

  # cryptsetup luksOpen /dev/sdb1 luks1
  パスフレーズを入力

hal がリムーバブルデバイスをサポートしていたりすると、ここで /dev/mapper/luks1 がなにか適当な場所 (/media/disk など) にマウントされるかもしれない。されないときは、自分でマウントする。

  # mount -t ntfs-3g /dev/mapper/luks1 /mnt

5.2. マウントされ、ファイルのオーナ、グループ、パーミッションがマップされていることを確認する。

  $ mount | grep /mnt
  $ ls -la /mnt

参照


続き

トラックバック(0)

トラックバックURL: http://hatuka.nezumi.nu/cgi-bin/mt/mt-tb.cgi/30

このブログ記事について

このページは、Hatuka*nezumiが2008年12月23日 12:37に書いたブログ記事です。

ひとつ前のブログ記事は「Sympa 日本語情報サイト」です。

次のブログ記事は「LUKS を使って Linux と Windows の両方から読み書きできる暗号化ボリュームを作成する (承前) Windows」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。