暗号化ファイルシステム LUKS の使い方
(1)インストール
LUKS (Linux Unified Key Setup)はLinuxの暗号化ファイルシステムの標準規格。
Debianではcryptsetupがインストールしてあれば使える。入っていないようなら
# apt-get install cryptsetup
(Ubuntu系ではhashalotも必要かも…)
(2)暗号化コンテナの作成
まず、イメージファイルを作り、それをループバックデバイスを使って、ブロックデバイスにする。
(ハードディスクのパーティション等を暗号化する場合には不要なので(3)へ)
# dd if=/dev/zero of=luks_volume bs=1M count=100 (※1)
# losetup -f luks_volume (※2)
# losetup -a (※3)
/dev/loop0: [0812]:196734 (luks_volume)
/dev/loop/0: [0812]:196734 (luks_volume)
(※1) 「luks_volume」は自分が作るイメージファイルの名前およびその場所。
of=/luks_volume なら luks_volume というイメージファイルをルートディレクトリ上に作る。of=luks_volume なら自分のホームディレクトリに出来る(ホームディレクトリ上で打ち込んでる場合)。bsは単位で1k、1M、1Gなど。countはその作るファイルの大きさ。ここでは100なので、100Mのファイル。
(※2) 「losetup -f」は未使用のループバックデバイスを探して設定してくれる。
(注意) 直接、ループバックデバイスを指定することも出来るが、やらない方が良い。
# losetup /dev/loop0 luks_volume
として次に
# losetup /dev/loop0 test
としても、警告はまったく出ない。二重に同じループバックデバイスを指定してもそのままである。
# losetup -a
とやると最初に指定した方が表示されが、2つ目のは無視される。
これでそれぞれをマウントして作業すればとんでもないことになってしまう。
(※3) 「losetup -a」使われてるループバックデバイスの情報を表示。何も使われてなければ、何もでない。
(3)フォーマット
このループバックデバイスをLUKS形式にフォーマットする。ドライブ/パーティションを暗号化する場合は(※4)へ
# cryptsetup -c aes-cbc-essiv:sha256 luksFormat /dev/loop0 (※4)
WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.
Are you sure? (Type uppercase yes): YES ← 大文字で YES と入力。
Enter LUKS passphrase: ← ここにパスフレーズを入力。
(※4) 普通のハードディスク上のパーティションの場合は
# cryptsetup -c aes-cbc-essiv:sha256 luksFormat /dev/sdb
(/dev/sdbのところは実際のデバイス名を入れる。)
(4)LUKS暗号化デバイスを作成する
# cryptsetup luksOpen /dev/loop0 hogehoge
※ドライブを直接指定した場合は
# cryptsetup luksOpen /dev/sdb hogehoge
これで /dev/mapper の中に暗号化デバイス hogehoge が出来る。
lsコマンドで確認してみると
# ls /dev/mapper
control hogehoge
(5)フォーマット
暗号化デバイスにファイルシステムを作る。
# mkfs -t ext3 /dev/mapper/hogehoge
# tune2fs -c0 -i0 /dev/mapper/hogehoge
(6)暗号化デバイスのマウント
# mkdir /mnt/luks ←/mnt に luks というマウントポイントを作る
# mount /dev/mapper/hogehoge /mnt/luks
# ls /mnt/luks
lost+found
暗号化デバイスを停止するには
# umount /mnt/luks
# cryptsetup luksClose hogehoge
# ls /dev/mapper
control
# losetup -d /dev/loop0
# losetup -a
# ←ループバックデバイスが使われていなければ、何もでない
次回から、luks_volume を使うには
# losetup -f luks_volume
# losetup -a ←ここで luks_volume が使っているループバックデバイスを確認
# cryptsetup luksOpen /dev/loop0 hogehoge ←/dev/loop0が使われている場合
# mount /dev/mapper/hogehoge /mnt/luks
止めるのは
# umount /mnt/luks
# cryptsetup luksClose hogehoge
# losetup -d /dev/loop0
コメント