cryptrootへのインストール

注意: 暗号化されたパーティションへのインストールについてのこのページのガイドを使うにあたって、いくつか警告しておくことがあります:

暗号化の例:

LVM グループの内部の暗号化

以下の例では LVM ボリューム内部を暗号化し、home を / のパーティションから分け、swap の使用にも複数のパスワードを必要としない設定を紹介します。aptosid-2010-03-apate 以降のリリースから有効にできます。

インストーラを実行する前に、インストールに使用するファイルシステムを準備しなくてはなりません。基本的な LVM パーティションについては Logical Volume Manager - LVM partitioning を参考にしてください。

最低限として、暗号化されていない /boot ファイルシステムと暗号化された / ファイルシステムが必要です。ここでは他に/home swap ファイルシステムも暗号化します。

  1. もし既存の LVM ボリュームグループを使わないつもりならば、普通の LVM グループを作成します。このページの例ではvg という名のボリュームグループに boot パーティションと暗号データを保存するように設定します。
  2. /boot と暗号化されたデータの論理ボリュームが必要なので lvcreate でボリュームグループ vg に望むサイズの論理ボリュームを作成します:
    lvcreate -n boot --size 250m vg
    lvcreate -n crypt --size 300g vg
    
    このコマンドで boot と crypt という名でそれぞれ 250MB と 300GB の論理ボリュームができました。
  3. /boot 用のパーティションにファイルシステムを作り、インストーラが書き込めるようにします:
    mkfs.ext4 /dev/mapper/vg-boot
    
  4. cryptsetup を使って vg-crypt を高速の xts オプションと最強の 512bit の長さのキーを使って暗号化し、これをオープンします。設定のために2回、3回目はオープンのためパスワードを入力するように求められます。ここでは起動時の cryptopts デフォルトのターゲット名、cryptroot で開きます。:
    cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/mapper/vg-crypt
    
    cryptsetup luksOpen /dev/mapper/vg-crypt cryptroot
    
  5. 今度は暗号化デバイス内部に LVM を使って swap/home に使う第二のボリュームグループを作成します。cryptroot を pvcreate コマンドで物理ボリュームにして、vgcreate で別のボリュームグループを作ります。ここではこれを cryptvg という名で呼びます:
    pvcreate /dev/mapper/cryptroot
    vgcreate cryptvg /dev/mapper/cryptroot
    
  6. 次に lvcreate を使って新たに暗号化された cryptvg ボリュームグループにお好みのサイズの / swap/home の論理ボリュームを作ります:
    lvcreate -n swap --size 2g cryptvg
    lvcreate -n root --size 40g cryptvg
    lvcreate -n home --size 80g cryptvg
    
    このコマンドでは論理ボリュームに swap、root、home と名前をつけてそれぞれ 2Gb、40Gb、80Gb のサイズ設定しました。
  7. cryptvg-swap、cryptvg-root、cryptvg-home にファイルシステムを作成しインストーラからアクセスできるようにします:
    mkswap /dev/mapper/cryptvg-swap
    mkfs.ext4 /dev/mapper/cryptvg-root
    mkfs.ext4 /dev/mapper/cryptvg-home
    
  8. これでインストーラを実行する準備ができました。ここでは:
    vg-boot/bootとして、
    cryptvg-root /として、
    cryptvg-home/homeとして、
    and cryptvg-swap for swap should be automagically recognised.

インストールが終わったとき、カーネルのコマンド行に次のようなオプションが含まれているはずです:

root=/dev/mapper/cryptvg-root cryptopts=source=/dev/mapper/vg-crypt,target=cryptroot,lvm=cryptvg-root

これで vg という名の LVM ボリュームグループの下に crypt と boot、パスワードで保護された暗号化デバイス内のボリュームグループ vgcrypt に root、home、swap という論理ボリュームができました。

cryptsetup luksOpen /dev/mapper/cryptvg-root cryptvg
vgchange -a y

従来のパーティショニングを暗号化する場合のノート

まず始めにに、どのようにパーティションをレイアウトしたいか決めます。暗号化されていない /boot を含むパーティションと、データの暗号化されたものと、最低二つのパーティションが必要です。

もう一つ、(これも暗号化されるべき) swap用の第三のパーティションも必要でしょうから、起動の際に swap 用のパスワードを別に入力する必要があるでしょう。(つまり起動時に二回パスワードの入力を求められるようになるでしょう。)

従来のパーティショニングを使っていても、暗号化されたシステムの内側から swap パーティションの暗号化キーを使うことも可能ではありますが、その場合はハードディスクへのサスペンドができなくなります。そのため、長期的にみて、LVM ボリュームを使って全部暗号化されたパーティションとキーを使う方が優れていると言えるでしょう。

基本的なケースの例:

パーティショニングが準備できたところで、インストーラに認識される暗号化パーティションを用意する必要があります。

GUI のパーティションエディタを使った場合、プログラムを終了し、暗号化はコマンドラインを使うのでコンソールを開いてください。

/boot パーティション

/boot パーティションを ext4 に作成します。まだできていなかったら次のコマンドで:

/sbin/mkfs.ext4 /dev/sda1
暗号化された swap

暗号化された swap のためにはまず、/dev/sda2 のデバイスを暗号化デバイスとしてフォーマットし、前述の vg-crypt デバイスの時のようにこれを swap という名前でオープンします。

  1. cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
    
  2. cryptsetup luksOpen /dev/sda2 swap
    
  3. echo "swap UUID=$(blkid -o value -s UUID /dev/sda2) none luks" >> /etc/crypttab
    

Format the created /dev/mapper/swap so it will be recognised by the installer:

/sbin/mkswap /dev/mapper/swap
暗号化された / パーティション

暗号化された / のためにはまず、/dev/sda3 のデバイスを前述の vg-crypt デバイスのときのように暗号化デバイスとしてフォーマットし、cryptroot の名前でオープンします。

cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 cryptroot

作成された /dev/mapper/cryptroot をフォーマットして、インストーラに認識されるようにします:

/sbin/mkfs.ext4 /dev/mapper/cryptroot

インストーラを開く

これでインストーラが実行できます。以下のパーティションを使って起動します:
sda1/boot として、
cryptroot for / and /home
swap should be automagically recognised.

インストールの終わったシステムは起動時のカーネルのコマンドラインとして次のようなオプションを含むものになっているはずです。(実際には違った UUID になります):

root=/dev/mapper/cryptroot cryptopts=source=UUID=12345678-1234-1234-1234-1234567890AB,target=cryptroot

これで /boot には通常のパーティション、暗号化されパスワードで保護された swap パーティションと暗号化された / と /home のパーティションが設定できました。

参考になる情報源:

必ず読むこと:

man cryptsetup

LUKS.

Redhat and Fedora .

Protect Your Stuff With Encrypted Linux Partitions.

KVM how to use encrypted images.

aptosid wiki.

Page last revised 06/09/2011 0920 UTC