LoginSignup
4
6

More than 5 years have passed since last update.

Debian8 でインストール後に暗号化パーティションを作成する

Posted at

概要

最近の Debian GNU/Linux では、インストール時に暗号化パーティションの作成を選択できるようになっているようです。しかし、インストール後に暗号化パーティションを作成する方法については、適切なドキュメントが見つからなかったので、少し試行錯誤してみました。

暗号化の単位

今回、調査してみたところ、暗号化する単位がいくつか存在することが分かりました。

  • ディレクトリ単位で暗号化
    • 例えば、あるユーザのホームディレクトリのみを暗号化します。ユーザはログイン時にパスフレーズを入力し、そのユーザのホームディレクトリのみを復号化してマウントします。
  • 物理ボリューム単位で暗号化
    • 物理ボリューム(例えば、/dev/sdb1)単位で暗号化します。システムには複数の物理ボリュームが存在する場合は、LVM の初期化時に複数回のパスフレーズの入力が必要になります。
  • 論理ボリューム単位で暗号化

今回の私の用途では、システムが起動している間は常にマウントした状態である必要があること、起動時にパスフレーズの問合せを受ける回数を最小限にしたかった、という2点から論理ボリューム単位で暗号化することにしました。

手順

暗号化論理ボリュームを用意してマウントする

最初に、論理ボリュームを用意するため、ボリュームグループ名を確認します。

# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg1    2   1   0 wz--n- 3.29t 1.29t

この例では、vg1 というボリュームグループに空き領域があるので、このボリュームグループに新たな論理ボリューム(容量100GB)を作成することにします。

# lvcreate -L 100G -n lv1 vg1

これで /dev/vg1/lv1 という論理ボリュームができているはずです。結果は、lvs コマンドで確認できます。

次に、論理ボリューム全体を暗号化します。cryptsetup パッケージのインストールが必要です。

# apt-get update
# apt-get install cryptsetup
# cryptsetup luksFormat /dev/vg1/lv1 

ここで暗号化のパスフレーズが聞かれるので、慎重に決定・入力してください。パスフレーズを忘れたら、この暗号化論理ボリューム上に格納されているデータは全て失われます。

暗号化した論理ボリュームを、システムに接続します。

# cryptsetup luksOpen /dev/vg1/lv1 secure

うまく接続できていれば、/dev/mapper/secure というデバイスができているはずです。後は、このデバイスを対象として、通常通りにファイルシステムの作成とマウントを行います。

# mkfs -t ext4 /dev/mapper/secure
# mkdir /secure
# mount /dev/mapper/secure /secure

起動時に自動的に暗号化論理ボリュームがマウントされるようにする

以下のように、/etc/crypttab と /etc/fstab を編集してください。

/etc/crypttab
# <target name> <source device>     <key file>  <options>
secure          /dev/vg1/lv1        none        luks
/etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/secure  /secure     ext4    defaults        0       0

起動時にパスフレーズが聞かれるので、正しく入力すると /secure にマウントされます。

未解決の問題

lvextend コマンドを使って論理ボリュームを拡張した場合に何が起きるのかは確かめていません。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6